
डार्कहोटल "डबल स्टार" एपीटी एक्सप्लॉइट चेन का एक व्यक्तिगत/उन्नत पुनर्निर्माण, जिसमें विंडोज 8.1 पर विशेष ध्यान दिया गया है और मेरी अपनी कुछ तकनीकों को भी मिलाया गया है।
________ . . _________ __
_____ \ ____ __ _ | | | ____ / // | _____ _______
| | \ / _ \ | | | __ \ | | / __ \ _ \ \ \ \ _ __
| ` ( <_> )| | /| _\ | |\ / / \ | | / __ _| | /
/____ / _/ |/ | /|/ ___ > /___ / || (____ /||
/ / / / /
Windows 8.1 IE/Firefox RCE -> सैंडबॉक्स एस्केप -> SYSTEM EoP एक्सप्लॉइट चेन
______________
| Remote PAC |
|____________|
^
| HTTPS
_______________ RPC/ALPC _______________ RPC/ALPC _______________ | firefox.exe | ----------> | svchost.exe | -----------> | spoolsv.exe | || || <----------- || | RPC/Pipe | _______________ | | malware.exe | <---| Execute impersonating NT AUTHORY\SYSTEM ||
~
उपयोग
इस एक्सप्लॉइट चेन को चलाने के लिए, पूर्ण रिलीज़/फ़ोल्डर संरचना को एक बिना-पैच वाली Windows 8.1 x64 मशीन पर डाउनलोड करें और इंटरनेट से कनेक्ट रहते हुए इन दो .html फ़ाइलों में से किसी एक को लोड करें:
प्रारंभिक RCE या तो IE या FF के माध्यम से चलाया जा सकता है, और इसके परिणामस्वरूप NT AUTHORY\SYSTEM विशेषाधिकारों के साथ आपके उपयोगकर्ता सत्र में एक cmd.exe प्रक्रिया निष्पादित होगी।
व्यक्तिगत एक्सप्लॉइट्स को निम्नलिखित संदर्भ में सफलतापूर्वक परीक्षण किया गया है:
ध्यान दें कि जहाँ व्यक्तिगत एक्सप्लॉइट्स स्वयं Windows के कई संस्करणों पर काम कर सकते हैं, वहीं पूरी चेन केवल Windows 8.1 पर ही काम करेगी।
~
अवलोकन
यद्यपि यह एक्सप्लॉइट चेन दो (अब पैच किए गए) 0day एक्सप्लॉइट्स का उपयोग करती है, इसमें एक सैंडबॉक्स एस्केप और EoP तकनीक भी शामिल है जो 5/4/2021 तक अभी भी पैच नहीं की गई हैं, और आज भी भविष्य के अटैक चेन में एकीकरण के लिए व्यवहार्य बनी हुई हैं।
Darkhotel APT समूह (जिसके दक्षिण कोरिया से उत्पन्न होने का अनुमान है) ने 2020 की शुरुआत में स्पीयर फ़िशिंग और लक्ज़री होटल नेटवर्क की हैकिंग के संयोजन के माध्यम से चीनी और जापानी व्यावसायिक अधिकारियों तथा सरकारी अधिकारियों के विरुद्ध एक अभियान चलाया। उनके द्वारा उपयोग किए गए एक्सप्लॉइट्स (CVE-2020-0674 और CVE-2019-17026, जिन्हें सामूहिक रूप से "Double Star" कहा गया) 2019 के पुराने/मौजूदा एक्सप्लॉइट्स के हल्के 0day रूपांतर थे: विशेष रूप से लीगेसी JavaScript इंजन (jscript.dll) में UAF बग और Firefox IonMonkey इंजन में एलियासिंग बग।
इन 0day के उपयोग को दिलचस्प बनाने वाली बात Internet Explorer और Firefox वेब ब्राउज़र के माध्यम से RCE प्राप्त करने की उनकी क्षमता से परे थी: विशेष रूप से CVE-2020-0674 (लीगेसी jscript.dll इंजन में एक UAF) किसी भी प्रक्रिया में शोषणीय है जिसमें jscript.dll के माध्यम से लीगेसी JS कोड निष्पादित किया जा सकता है। 2017 के अंत में, Google Project Zero ने "aPAColypse now: Exploiting Windows 10 in a Local Network with WPAD/PAC and JScript" [1] शीर्षक से एक ब्लॉग पोस्ट जारी किया।
इस शोध ने एक अत्यंत रोचक अटैक वेक्टर को उजागर किया जो (उस समय) Windows 7 से आगे के सभी संस्करणों को प्रभावित करता था: WPAD सेवा (या "WinHTTP Web Proxy Auto-Discovery Service") में एक प्राचीन कार्यक्षमता शामिल है जो एक "PAC" फ़ाइल के माध्यम से प्रॉक्सी कॉन्फ़िगरेशन को अपडेट करती है। कोई भी उपयोगकर्ता जो RPC के माध्यम से WPAD सेवा (LOCAL SERVICE के रूप में svchost.exe प्रक्रिया के भीतर चल रही) से संवाद कर सकता है, उसे एक दूरस्थ URL से PAC फ़ाइल डाउनलोड करने के लिए मजबूर कर सकता है, जिसमें JS कोड होता है जो उपयोगकर्ता द्वारा आपूर्ति किए गए URL के लिए सही प्रॉक्सी कॉन्फ़िगरेशन सेट करने के लिए ज़िम्मेदार होता है। सबसे उल्लेखनीय रूप से, इन PAC फ़ाइलों को पार्स करने के लिए लीगेसी jscript.dll इंजन का उपयोग किया जाता है। इसने एक अटैक वेक्टर खोल दिया जिसमें कोई भी प्रक्रिया (सीमित उपयोगकर्ता विशेषाधिकारों या यहाँ तक कि सैंडबॉक्सिंग की परवाह किए बिना) ALPC के माध्यम से स्थानीय WPAD सेवा से कनेक्ट हो सकती थी और उसे दूरस्थ URL से jscript.dll एक्सप्लॉइट युक्त एक दुर्भावनापूर्ण PAC फ़ाइल डाउनलोड करने के लिए मजबूर कर सकती थी। इसके परिणामस्वरूप LOCAL SERVICE के संदर्भ में कोड निष्पादन होता।
Darkhotel ने इस अवधारणा को लिया और Firefox या Internet Explorer के माध्यम से RCE प्राप्त करने के बाद इसे अपने सैंडबॉक्स एस्केप के रूप में उपयोग किया। उनकी अटैक चेन का अगला चरण अस्पष्ट है: ऐसा प्रतीत होता है कि उन्होंने किसी तरह अपने विशेषाधिकारों को LOCAL SERVICE से SYSTEM तक बढ़ाया और इसी संदर्भ से अपने मैलवेयर को निष्पादित किया। Darkhotel Double Star अटैक चेन के सभी विश्लेषणों में, मैं यह विस्तृत स्पष्टीकरण खोजने में सक्षम नहीं था कि उन्होंने यह कैसे हासिल किया, हालाँकि यह मानना सुरक्षित है कि उनकी तकनीक को 0day एक्सप्लॉइट होने की आवश्यकता नहीं थी। LOCAL SERVICE खाते द्वारा लॉन्च की गई प्रक्रियाओं को डिफ़ॉल्ट रूप से SeImpersonate विशेषाधिकार प्रदान किया जाता है और इस प्रकार यदि वे नेम्ड पाइप्स या ALPC के माध्यम से स्वयं के लिए एक विशेषाधिकार प्राप्त कनेक्शन को मजबूर कर सकते हैं तो वे अपने सुरक्षा संदर्भ को बढ़ा सकते हैं।
यह संभावना है कि Darkhotel APT समूह ने LOCAL SERVICE से अपने EoP के लिए Rotten Potato का उपयोग किया, क्योंकि यह कई वर्षों पहले व्यापक रूप से उपयोग में आने वाली सबसे सरल और सबसे सामान्य तकनीक थी (साथ ही Google Project Zero के "aPAColypse now" शोध में उपयोग की गई तकनीक भी), हालाँकि मैंने इसके बजाय एक अधिक मजबूत/आधुनिक तकनीक को चुना: Print Spooler से मजबूर किए गए RPC कनेक्शन का नेम्ड पाइप इम्पर्सनेशन [2]। इस तकनीक ने एक पुराने RPC इंटरफ़ेस को संयोजित किया जो Red Teamers के बीच अनकॉन्स्ट्रेन्ड डेलिगेशन सक्षम वातावरण में TGT हार्वेस्टिंग के लिए लोकप्रिय है (उर्फ "Printer Bug"), साथ ही स्थानीय विशेषाधिकार वृद्धि के लिए अनुकूलित एक इम्पर्सनेशन/Rotten Potato शैली का अटैक।
इसके अतिरिक्त, Windows 7 को लक्षित करने के बजाय, मैंने Windows 8.1 पर ध्यान केंद्रित करने का निर्णय लिया, क्योंकि यह अपनी उन्नत सुरक्षा शमन तकनीकों जैसे कि नॉन-डिटरमिनिस्टिक LFH, हाई एंट्रॉपी ASLR और Control Flow Guard (CFG) द्वारा प्रस्तुत चुनौती के कारण रोचक था।
~
CVE-2020-0674
CVE-2020-0674 UAF एक्सप्लॉइट युक्त दुर्भावनापूर्ण PAC फ़ाइल - RPC ट्रिगर के माध्यम से WPAD सेवा svchost.exe (LOCAL SERVICE) में डाउनलोड की जाती है। इसमें स्टेज तीन शेलकोड (Spool Potato EoP) शामिल है। यह एक्सप्लॉइट IE11 64-bit के माध्यम से प्रारंभिक RCE अटैक वेक्टर के रूप में भी दोहरे उद्देश्य की पूर्ति कर सकता है।
_______________ RPC _______________ CVE-2020-0674 ________________ | firefox.exe | -----> | svchost.exe | ---------------> | Spool Potato | || || | shellcode | |______________| ~
CVE-2019-17026
Firefox 64-bit IonMonkey JIT/Type Confusion RCE। यह प्रारंभिक अटैक वेक्टर का प्रतिनिधित्व करता है जब कोई उपयोगकर्ता Firefox के कमजोर संस्करण के साथ किसी संक्रमित वेब पेज पर जाता है। इस घटक में स्टेज एक (egg hunter) और स्टेज दो (WPAD सैंडबॉक्स एस्केप) शेलकोड शामिल है, जिनमें से बाद वाला WPAD के लिए हार्डकोडेड RPC IDL इंटरफ़ेस विवरणों के कारण केवल Windows 8.1 पर प्रभावी है।
_______________ JIT spray ______________ DEP bypass _______________________ | firefox.exe | -----------> | Egg hunter | ------------> | WPAD sandbox escape | |___________| | shellcode | | shellcode (heap) | |________| |___________________|
~
पेलोड्स
इस एक्सप्लॉइट चेन में तीन शेलकोड पेलोड हैं, जो इस रिपॉज़िटरी में Payloads\Compiled\JS के अंतर्गत उनके JavaScript एन्कोडेड शेलकोड रूप में पाए जाते हैं:
जब IE को प्रारंभिक RCE अटैक वेक्टर के रूप में उपयोग किया जाता है, तो केवल स्टेज दो और तीन शेलकोड्स की आवश्यकता होती है। जब FF को प्रारंभिक RCE अटैक वेक्टर के रूप में उपयोग किया जाता है, तो तीनों का उपयोग किया जाता है।
मैंने परीक्षण उद्देश्यों के लिए कई अतिरिक्त शेलकोड्स भी शामिल किए हैं (एक MessageBoxA और WinExec शेलकोड)। ध्यान दें कि इनका उपयोग करते समय Firefox CVE-2019-17026 के मामले में, शेलकोड को Uint8Array के रूप में प्रस्तुत किया जाना चाहिए जिसके आगे निम्नलिखित egg QWORD लगा हो: 0x8877665544332211। CVE-2020-0674 के मामले में, शेलकोड को DWORD ऐरे के रूप में प्रस्तुत किया जाना चाहिए।
यह भी ध्यान दें कि Firefox CVE-2019-17026 के साथ WinExec या MessageBoxA पेलोड का उपयोग करते समय, आपको पहले "about:config" में सैंडबॉक्स कंटेंट स्तर को घटाकर 2 करना होगा।
~
श्रेय
maxpl0it - Linux OS पर केंद्रित CVE-2019-17026 के लिए प्रारंभिक विश्लेषण और PoC लिखने के लिए, और Windows 7 x64 पर IE8/11 पर केंद्रित CVE-2020-0674 के लिए प्रारंभिक विश्लेषण और PoC लिखने के लिए।
0vercl0k - एलियासिंग और GVN के संबंध में IonMonkey आंतरिक कार्यप्रणाली का दस्तावेजीकरण करने के लिए।
HackSys Team - WPAD सेवा और निम्न-स्तरीय JS डिबगिंग पर सुझावों के लिए।
itm4n - RPC प्रिंटर बग को नेम्ड पाइप इम्पर्सनेशन के साथ संयोजित करने के मूल शोध के लिए।
~
लिंक
[1] https://googleprojectzero.blogspot.com/2017/12/apacolypse-now-exploiting-windows-10-in_18.html [2] https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/