
LogArchive से iOS Airborne कमजोरियों के लॉग आर्टिफैक्ट निकालने वाला CVE-2025-24252
यह स्क्रिप्ट .logarchive बंडल से iOS सिस्टम लॉग क्वेरी करके "Airborne" भेद्यताओं के सेट (मुख्य रूप से Apple के AirPlay प्रोटोकॉल को प्रभावित करने वाले) के संभावित निशानों की पहचान करने में मदद करने के लिए डिज़ाइन की गई है। यह उन विसंगतियों को खोजने के लिए तैयार किए गए कई log show कमांडों के निष्पादन को स्वचालित करती है जो इन भेद्यताओं से संबंधित हो सकती हैं।
अस्वीकरण: यह उपकरण केवल सूचनात्मक और जांच उद्देश्यों के लिए है। इन क्वेरी से मेल खाने वाले लॉग प्रविष्टियों की उपस्थिति किसी समझौते की निश्चित पुष्टि नहीं करती है। लॉग प्रविष्टियों का विश्लेषण संदर्भ में किया जाना चाहिए। निष्कर्षों की अनुपस्थिति यह गारंटी नहीं देती कि कोई उपकरण सुरक्षित है। हमेशा सुनिश्चित करें कि आपके उपकरण नवीनतम OS संस्करणों में अपडेट हैं।
यह स्क्रिप्ट एंटोन शुस्तिकोव ([email protected], अब ceo cakescats) द्वारा CakesCats परियोजना के भाग के रूप में विकसित की गई थी।
CakesCats एक पहल है जो इस पर केंद्रित है:
एंटोन शुस्तिकोव एक सूचना सुरक्षा और फिनटेक सलाहकार हैं, जिनके पास सुरक्षा प्रणालियाँ बनाने का व्यापक अनुभव है। वह गैर-वाणिज्यिक शैक्षिक परियोजना CakesCats के संस्थापक हैं और फोर्ब्स और "Xakep" पत्रिका जैसे प्रकाशनों में लेख योगदान करते हैं। उनके काम में अक्सर डिजिटल खतरों की जांच करना और डिजिटल स्वच्छता को बढ़ावा देना शामिल है।
"Airborne" एक नाम है जो भेद्यताओं के एक सेट को दिया गया है (जिसे ओलिगो सिक्योरिटी ने अपने मूल शोध में खोजा था) जो Apple के AirPlay प्रोटोकॉल और AirPlay सॉफ्टवेयर डेवलपमेंट किट (SDK) को प्रभावित करता है। ये भेद्यताएँ Apple उपकरणों (iPhone, iPad, Mac, Apple TV, आदि) और AirPlay SDK का उपयोग करने वाले तृतीय-पक्ष उपकरणों (जैसे स्मार्ट स्पीकर, रिसीवर) की एक विस्तृत श्रृंखला को प्रभावित कर सकती हैं।
"Airborne" प्रकार की भेद्यताओं के प्रमुख पहलू:
rapportd जैसी संबंधित सेवाएँ भी जो डिवाइस-टू-डिवाइस संचार को संभालती हैं।यह स्क्रिप्ट सावधानीपूर्वक तैयार किए गए विधेय का उपयोग करके log show कमांडों की एक श्रृंखला निष्पादित करती है। ये विधेय iOS सिस्टम लॉग में जानकारी की विशाल मात्रा को फ़िल्टर करने के लिए डिज़ाइन किए गए हैं ताकि समझौते के संभावित संकेतकों या असामान्य गतिविधि को इंगित किया जा सके जो "Airborne" प्रकार की भेद्यताओं से संबंधित हो सकती है।
स्क्रिप्ट इसके लिए देखती है:
mediaserverd, AirPlayXPCHelper, rapportd, mDNSResponder)।प्रत्येक क्वेरी का आउटपुट एक टाइमस्टैम्प्ड परिणाम निर्देशिका के भीतर एक अलग, वर्णनात्मक रूप से नामित टेक्स्ट फ़ाइल में सहेजा जाता है, जो विभिन्न प्रकार की संभावित कलाकृतियों के केंद्रित विश्लेषण की अनुमति देता है।
log show उपयोगिता और यह स्क्रिप्ट macOS पर चलाने के लिए हैं।.logarchive): आपको उस डिवाइस से एक iOS सिस्टम लॉग संग्रह (एक बंडल, जो तकनीकी रूप से एक निर्देशिका है) की आवश्यकता है जिसका आप विश्लेषण करना चाहते हैं। यह आमतौर पर इसके माध्यम से प्राप्त किया जा सकता है:
sysdiagnose: iPhone पर sysdiagnose ट्रिगर करें (आमतौर पर एक साथ Volume Up + Volume Down + Side बटन दबाकर, लेकिन संयोजन मॉडल और iOS संस्करण के अनुसार भिन्न हो सकते हैं)। sysdiagnose जनरेट होने के बाद (इसमें कई मिनट लग सकते हैं), इसे Mac पर AirDrop किया जा सकता है या Mac के साथ iPhone को सिंक करते समय एक्सेस किया जा सकता है (अक्सर Finder में iPhone के सिंक स्थान के भीतर .tar.gz फ़ाइल में पाया जाता है)। .logarchive निकाले गए sysdiagnose सामग्री के भीतर होगा।bash के लिए लिखी गई है।स्क्रिप्ट को सहेजें:
स्क्रिप्ट कोड (ऊपर दिया गया) को airborne_artifact_extractor.sh (या .sh एक्सटेंशन वाले किसी अन्य नाम) के रूप में सहेजें।
इसे निष्पादन योग्य बनाएं: अपना टर्मिनल एप्लिकेशन खोलें, उस निर्देशिका पर जाएँ जहाँ आपने स्क्रिप्ट सहेजी है, और निम्न कमांड चलाएँ:
chmod +x airborne_artifact_extractor.sh
macOS संगरोध विशेषता की जाँच करें (डाउनलोड की गई स्क्रिप्ट के लिए महत्वपूर्ण): यदि आपने यह स्क्रिप्ट इंटरनेट से डाउनलोड की है, तो macOS इसे संगरोध कर सकता है, जो इसे सही ढंग से या बिल्कुल भी चलने से रोक सकता है।
xattr airborne_artifact_extractor.sh
com.apple.quarantine शामिल है, तो इस विशेषता को चलाकर हटाएँ:
xattr -d com.apple.quarantine airborne_artifact_extractor.sh
यदि आपको अभी भी स्क्रिप्ट चलाने में समस्या आती है, विशेष रूप से यदि यह ~/Downloads जैसी निर्देशिका में स्थित है, तो सुनिश्चित करें कि आपके टर्मिनल एप्लिकेशन के पास स्क्रिप्ट के स्थान और लॉग संग्रह तक पहुँचने के लिए आवश्यक अनुमतियाँ हैं (जैसे, सिस्टम सेटिंग्स -> गोपनीयता और सुरक्षा में "पूर्ण डिस्क पहुँच")।
^M त्रुटियाँ (जैसे, /bin/bash^M: bad interpreter: No such file or directory)यदि स्क्रिप्ट को निष्पादित करने का प्रयास करते समय आपको bash: ./your_script_name.sh: /bin/bash^M: bad interpreter: No such file or directory, /usr/bin/env: ‘bash\r’: No such file or directory, या \r या ^M वर्णों से संबंधित समान संदेश जैसी त्रुटि का सामना करना पड़ता है, तो यह संभवतः Windows-शैली लाइन एंडिंग (CRLF - कैरिज रिटर्न लाइन फीड) के बजाय Unix-शैली लाइन एंडिंग (LF - लाइन फीड) के कारण होता है।
यह आमतौर पर तब होता है जब स्क्रिप्ट फ़ाइल Windows सिस्टम पर बनाई या संपादित की गई थी और फिर लाइन एंडिंग को परिवर्तित किए बिना macOS या Linux में स्थानांतरित की गई थी। Unix सिस्टम केवल LF को लाइन टर्मिनेटर के रूप में अपेक्षा करते हैं, और अतिरिक्त CR वर्ण (\r या ^M) को इंटरप्रेटर पथ या कमांड के भाग के रूप में गलत समझा जाता है।
समाधान: dos2unix के साथ लाइन एंडिंग परिवर्तित करें
इसे ठीक करने का सबसे आसान तरीका dos2unix उपयोगिता का उपयोग करना है।
dos2unix स्थापित करें:
macOS पर (Homebrew का उपयोग करके): यदि आपके पास Homebrew नहीं है, तो पहले इसे brew.sh से स्थापित करें। फिर चलाएँ:
brew install dos2unix
Debian/Ubuntu-आधारित Linux वितरणों पर:
sudo apt update
sudo apt install dos2unix
Fedora/RHEL-आधारित Linux वितरणों पर:
sudo dnf install dos2unix # (या पुराने संस्करणों के लिए yum)
स्क्रिप्ट फ़ाइल को परिवर्तित करें:
airborne_artifact_extractor.sh वाली निर्देशिका पर जाएँ और चलाएँ:
dos2unix airborne_artifact_extractor.sh
यह कमांड लाइन एंडिंग को उसी स्थान पर परिवर्तित कर देगा।
वैकल्पिक समाधान (यदि dos2unix उपलब्ध/पसंदीदा नहीं है):
sed का उपयोग करना:
sed -i.bak 's/\r$//' airborne_artifact_extractor.sh
(यह कमांड फ़ाइल को उसी स्थान पर संशोधित करता है और एक बैकअप airborne_artifact_extractor.sh.bak बनाता है। sed के कुछ संस्करणों पर, विशेष रूप से macOS पर, -i विकल्प को बैकअप फ़ाइल के लिए एक एक्सटेंशन की आवश्यकता होती है, जैसे -i '.bak' या यदि समर्थित हो तो कोई बैकअप नहीं करने के लिए -i ''। macOS के लिए, आपको sed -i '' 's/\r//g' airborne_artifact_extractor.sh की आवश्यकता हो सकती है)
tr का उपयोग करना:
tr -d '\r' < airborne_artifact_extractor.sh > airborne_artifact_extractor_unix.sh
chmod +x airborne_artifact_extractor_unix.sh
# फिर airborne_artifact_extractor_unix.sh का उपयोग करें
टेक्स्ट एडिटर: अधिकांश आधुनिक टेक्स्ट एडिटर (जैसे VS Code, Sublime Text, Atom, Notepad++) आपको लाइन एंडिंग बदलने की अनुमति देते हैं। स्क्रिप्ट फ़ाइल खोलें, लाइन एंडिंग के लिए सेटिंग ढूँढें (आमतौर पर स्टेटस बार या फ़ाइल/एडिट मेनू में), और इसे "CRLF" या "Windows" से "LF" या "Unix" में बदलें। फिर फ़ाइल को फिर से सहेजें।
लाइन एंडिंग को परिवर्तित करने के बाद, स्क्रिप्ट को फिर से चलाने का प्रयास करें। यह सुनिश्चित करना भी याद रखें कि इसमें निष्पादन अनुमतियाँ हैं (chmod +x airborne_artifact_extractor.sh)।
टर्मिनल से स्क्रिप्ट निष्पादित करें, .logarchive बंडल का पथ और वैकल्पिक समय सीमा पैरामीटर प्रदान करें:
./airborne_artifact_extractor.sh /path/to/your/iphone_logs.logarchive [time_range_parameters]
तर्क:
R1 (आवश्यक): .logarchive फ़ाइल/बंडल का पूर्ण या सापेक्ष पथ।[time_range_parameters] (वैकल्पिक): मानक log show समय सीमा पैरामीटर। यदि इन्हें छोड़ दिया जाता है, तो स्क्रिप्ट डिफ़ॉल्ट रूप से --last 7d (पिछले 7 दिन) लॉग का विश्लेषण करेगी।
--last 24h (पिछले 24 घंटों के लिए)--last 3d (पिछले 3 दिनों के लिए)--start "YYYY-MM-DD HH:MM:SS" --end "YYYY-MM-DD HH:MM:SS" (एक विशिष्ट समय सीमा के लिए)। महत्वपूर्ण: सुनिश्चित करें कि दिनांक-समय स्ट्रिंग उद्धरणों में संलग्न है।समय क्षेत्र कॉन्फ़िगरेशन: स्क्रिप्ट में शीर्ष पर समय क्षेत्र सेटिंग्स शामिल हैं, जिन्हें आप संशोधित कर सकते हैं:
TZ_SETTING: उस समय क्षेत्र को परिभाषित करता है जिसका उपयोग आपके द्वारा प्रदान किए गए --start और --end तर्कों की व्याख्या करने के लिए किया जाता है। उदाहरण के लिए, यदि "Etc/GMT-7" (जो UTC+7 से मेल खाता है) पर सेट है, और आप --start "2025-04-10 00:00:00" का उपयोग करते हैं, तो इसे UTC+7 समय क्षेत्र में 10 अप्रैल की मध्यरात्रि के रूप में माना जाएगा। यदि आप चाहते हैं कि स्क्रिप्ट इन तर्कों के लिए आपके Mac के वर्तमान स्थानीय समय क्षेत्र का उपयोग करे, तो आप TZ_SETTING="" सेट कर सकते हैं या उस पंक्ति को टिप्पणी कर सकते हैं।TIMEZONE_DISPLAY: log show --timezone विकल्प के माध्यम से आउटपुट लॉग फ़ाइलों में टाइमस्टैम्प को प्रारूपित करने के लिए समय क्षेत्र निर्दिष्ट करता है। उदाहरण: "Asia/Bangkok" UTC+7 के लिए। अपने सिस्टम द्वारा मान्यता प्राप्त एक समय क्षेत्र नाम चुनें।कमांड उदाहरण:
पिछले 7 दिनों के लॉग का विश्लेषण करें (डिफ़ॉल्ट व्यवहार):
./airborne_artifact_extractor.sh /Volumes/ExternalHD/iOS_Logs/iPhone13_archive.logarchive
पिछले 48 घंटों के लॉग का विश्लेषण करें:
./airborne_artifact_extractor.sh ./My_iPhone_Sysdiagnose.logarchive --last 48h
एक विशिष्ट दिनांक और समय सीमा के लॉग का विश्लेषण करें (समय की व्याख्या TZ_SETTING के अनुसार की जाएगी):
./airborne_artifact_extractor.sh ../Log_Archives/device_XYZ.logarchive --start "2025-04-05 00:00:00" --end "2025-04-06 23:59:59"
स्क्रिप्ट स्क्रिप्ट के समान निर्देशिका में (या यदि स्क्रिप्ट की निर्देशिका लिखने योग्य नहीं है तो आपकी वर्तमान कार्यशील निर्देशिका में) airborne_traces_YYYYMMDD_HHMMSS नामक एक नई निर्देशिका बनाएगी (जहाँ YYYYMMDD_HHMMSS वर्तमान दिनांक और समय है)। इस फ़ोल्डर के अंदर, आपको कई .txt फ़ाइलें मिलेंगी, जिनमें से प्रत्येक में एक विशिष्ट क्वेरी का आउटपुट होगा। फ़ाइल नाम ऑर्डरिंग के लिए संख्याओं के साथ उपसर्ग किए गए हैं:
01_critical_process_errors.txt: महत्वपूर्ण प्रक्रियाओं के लिए दोष और त्रुटियाँ।02_process_termination_exceptions.txt: मुख्य प्रक्रियाओं में अप्रत्याशित समाप्ति या अपवाद।03_kernel_panics.txt: कर्नेल पैनिक घटनाएँ।04_airplay_subsystem_errors.txt: AirPlay सबसिस्टम में त्रुटियाँ और दोष।05_mdns_errors.txt: mDNSResponder (Bonjour) में त्रुटियाँ और दोष।06_airplay_pairing_auth_failures.txt: AirPlay/rapportd पेयरिंग, प्रमाणीकरण या कनेक्शन के साथ समस्याएँ।07_network_connection_errors.txt: प्रासंगिक प्रक्रियाओं से नेटवर्क कनेक्शन त्रुटियाँ।08_networkd_errors.txt: सिस्टम networkd सेवा में त्रुटियाँ।09_sandbox_violations.txt: सैंडबॉक्स उल्लंघनों से संबंधित संदेश।10_profile_activity.txt: कॉन्फ़िगरेशन प्रोफाइल से संबंधित गतिविधि।rapportd लॉग में ECONNRESET (अक्सर 06_... या 07_... में): ये अचानक TCP कनेक्शन समाप्ति का संकेत देते हैं। जबकि ये सौम्य नेटवर्क मुद्दों (खराब वाई-फाई, राउटर समस्याएँ) के कारण हो सकते हैं, "Airborne" भेद्यताओं की जांच के संदर्भ में, ये करीबी जांच की मांग करते हैं। ये आपके डिवाइस या सहकर्मी डिवाइस पर एक प्रयासित शोषण के कारण अस्थिरता, या नेटवर्क हस्तक्षेप का संकेत दे सकते हैं।mediaserverd, AirPlayXPCHelper (अक्सर 01_..., 02_... में) में क्रैश (दोष या पैनिक प्रकार) या कर्नेल पैनिक (03_...) आम तौर पर सिस्टम अस्थिरता के मजबूत संकेतक हैं जो शोषण-संबंधी हो सकते हैं यदि वे अप्रत्याशित रूप से या "Airborne" द्वारा लक्षित नेटवर्क इंटरैक्शन के दौरान होते हैं।बेझिझक इस रिपॉजिटरी को फोर्क करें, सुधार सुझाएँ, मुद्दों की रिपोर्ट करें, या अधिक विशिष्ट क्वेरी जोड़ें जो ऐसी भेद्यताओं के निशानों की पहचान करने में सहायक हो सकती हैं।