
LittleCorporal: एक C# स्वचालित Maldoc जनरेटर
LittleCorporal: एक C# स्वचालित मैलडॉक जनरेटर
C:\LittleCorporal\bin\Release>LittleCorporal.exe C:\beacon.bin explorer.exe
.____ .__ __ __ .__ _________ .__
| | |__|/ |__/ |_| | ____ \_ ___ \ _________________ ________________ | |
| | | \ __\ __\ | _/ __ \/ \ \/ / _ \_ __ \____ \ / _ \_ __ \__ \ | |
| |___| || | | | | |_\ ___/\ \___( <_> ) | \/ |_> > <_> ) | \// __ \| |__
| _______ \__||__| |__| |____/\___ >\______ /\____/|__| | __/ \____/|__| (____ /____/
\/ \/ \/ |__| \/
________
/ \
__ / (o)\__
/ ______\ \ I am the strongest debater in the whole Conseil.
| ____/__ __\____| I let myself be attacked, because I know how to defend myself.
[ --~~-- ] - Napoleon Bonaparte
| ( L )|
___----\ __ /----___
/ | < \____/ > | \
/ | < \--/ > | \
|||||| \ \/ / ||||||
| \ / o |
| | \/ === | |
| | |o ||| | |
| \______| +#* | |
| |o | |
\ | / /
|\__________|o / /
| | / /
[+] Parsed Arguments:
[>] Shellcode Path: C:\beacon.bin
[>] Target Process: explorer.exe
[+] Embedded shellcode in Loader.cs!
[+] Generated C# Loader artifact!
[+] Ran the .NET assembly through Donut!
[+] Donut artifact is located at: C:\LittleCorporal\Artifacts\payload.bin
[+] Path to Word document: C:\LittleCorporal\Artifacts\Form.doc
कृपया उपयोग से पहले पूरा README पढ़ें!
LittleCorporal एक उपयोगकर्ता-प्रदत्त तर्क स्वीकार करता है, जो उस दूरस्थ मशीन पर इंजेक्ट करने के लिए प्रक्रिया को निर्दिष्ट करता है जहाँ आप दुर्भावनापूर्ण Word दस्तावेज़ को निष्पादित करने की योजना बनाते हैं, और साथ ही .bin प्रारूप में संग्रहीत स्थानीय शेलकोड फ़ाइल का पथ भी स्वीकार करता है - जैसे कि आप जिस मशीन पर LittleCorporal चला रहे हैं, उस पर एक Beacon Stageless शेलकोड ब्लॉब। इसलिए, यदि आप इस प्रोजेक्ट से उत्पन्न मैलडॉक का उपयोग करना चाहते हैं, तो आपको उस मशीन पर पहले से चल रही एक प्रक्रिया निर्दिष्ट करनी होगी जिस पर आप मैलडॉक चलाने का इरादा रखते हैं (चाहे वह स्थानीय मशीन हो या कोई भिन्न मशीन)। explorer.exe के पास हमेशा एक इंस्टेंस होता है, इसलिए यदि आपको इस बात से कोई फर्क नहीं पड़ता कि आप किस प्रक्रिया में इंजेक्ट करते हैं, तो इसका उपयोग करें।
LittleCorporal शेलकोड और लक्ष्य प्रक्रिया नाम को Loader.cs में एम्बेड करता है, Loader.cs को तुरंत एक .NET .exe आर्टिफैक्ट में संकलित करता है, और फिर रिमोट प्रोसेस इंजेक्शन करने के लिए थ्रेड हाइजैकिंग का उपयोग करता है। .NET .exe आर्टिफैक्ट, जो थ्रेड हाइजैकिंग लोडर है, को Donut के माध्यम से पोज़िशन-इंडिपेंडेंट शेलकोड उत्पन्न करने के लिए भेजा जाता है, जो .exe को निष्पादित करेगा। Donut द्वारा उत्पन्न शेलकोड को फिर base64 एन्कोड किया जाता है, एक Word दस्तावेज़ उत्पन्न किया जाता है, और अंतिम Donut ब्लॉब को एक InlineShape.AlternativeText Word प्रॉपर्टी में संग्रहीत किया जाता है, जो पूरे पेलोड को धारण करने में सक्षम है। यह Word दस्तावेज़ में एक छवि (वर्तमान में एक खाली छवि, जो दस्तावेज़ को "खाली" रूप देती है) प्रॉपर्टी डालकर किया जाता है, जो छवि पर वैकल्पिक टेक्स्ट के रूप में होती है, जिसमें पेलोड होता है। LittleCorporal फिर एक VBA "टेम्पलेट" का लाभ उठाता है, जो इस प्रोजेक्ट में एक टेक्स्ट फ़ाइल के रूप में समाहित है, और इस मैक्रो को नवनिर्मित Word दस्तावेज़ में इंजेक्ट करता है। मैक्रो का नाम autoopen है, इसलिए यह दस्तावेज़ खुलने पर खुलता है, और फिर इसे पहले उत्पन्न छवि के वैकल्पिक टेक्स्ट का मान निकालने के लिए कॉन्फ़िगर किया जाता है, जिसमें अंतिम पेलोड होता है, इसे base64 डिकोड करता है, और अंत में VBA में Windows API कॉल का उपयोग करके Word में स्थानीय इंजेक्शन करता है। संक्षेप में, यह प्रोजेक्ट VBA में एक सरल "लोडर" का उपयोग करके Word में स्थानीय इंजेक्शन करता है, जो रिमोट प्रोसेस इंजेक्शन की तुलना में थोड़ा कम जाँचा जाता है, और फिर स्थानीय इंजेक्शन से निष्पादन का उपयोग करके Donut शेलकोड को निष्पादित करता है, जो एक अन्य लोडर है जो उपयोगकर्ता-प्रदत्त शेलकोड के अंतिम रिमोट प्रोसेस इंजेक्शन के लिए थ्रेड हाइजैकिंग करता है, जो उपयोगकर्ता-निर्दिष्ट प्रक्रिया में होता है। यह सब एक स्वचालित तरीके से किया जाता है, जिसमें Word दस्तावेज़ का निर्माण भी शामिल है।
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\ मौजूद है) और जिस लक्ष्य मशीन पर आप दस्तावेज़ चलाने की योजना बनाते हैं, दोनों पर .NET v2 स्थापित हो।LittleCorporal.exe चलाने की योजना बनाते हैं। ऐसा इसलिए है क्योंकि LittleCorporal को COM के माध्यम से Word के साथ इंटरैक्ट करने की आवश्यकता है। कृपया यह भी ध्यान दें कि उत्पन्न Word दस्तावेज़ इंटरनेट से एक खाली छवि खींचता है - जिसका अर्थ है कि आपको उस कंप्यूटर पर इंटरनेट एक्सेस की आवश्यकता होगी जिस पर आप LittleCorproal चलाते हैं और उस दूरस्थ मशीन पर जिस पर आप Word दस्तावेज़ को विस्फोट करने की योजना बनाते हैं।CONTEXT संरचना, जिसमें 64-बिट विशिष्ट डेटा प्रकार होते हैं। ऐसा इसलिए है क्योंकि थ्रेड हाइजैकिंग वर्तमान में केवल 64-बिट सिस्टम पर समर्थित है, क्योंकि इसे कस्टम शेलकोड की आवश्यकता होती है जो विशेष रूप से __fastcall कॉलिंग कन्वेंशन का पालन करता है। मैं थ्रेड हाइजैकिंग क्षमता का 32-बिट संस्करण लागू करने की योजना नहीं बनाता, लेकिन यदि अंततः 32-बिट समर्थन के लिए कोई पुल रिक्वेस्ट होती है, क्योंकि Microsoft Word के कई इंस्टॉलेशन 32-बिट हैं, तो मैं इसे पूरी तरह से संभावना से बाहर नहीं मानूंगा। तार्किक दृष्टिकोण से यह वर्तमान में कोई बड़ा सुधार नहीं होना चाहिए, यह मुद्दा स्टैक पर नज़र रखने का बोझ और झंझट बन जाता है जब __fastcall से __stdcall पर जाकर नए ऑफ़सेट की गणना की जाती है। यह तकनीकी दृष्टिकोण से जटिल नहीं है, लेकिन थोड़ा कठिन है।यदि आप इस प्रोजेक्ट का उपयोग सक्रिय रेड टीम ऑपरेशन के लिए करने की योजना बना रहे हैं, तो कृपया अपने शेलकोड के "Exit" कार्यक्षमता को थ्रेड एग्जिट के साथ "स्वच्छ" निकास करने के लिए सेट करने पर विचार करें, न कि उस प्रक्रिया को पूरी तरह से मारने पर, जिसमें शेलकोड रहता है। इसे msfvenom के माध्यम से EXITFUNC=thread के साथ कॉन्फ़िगर किया जा सकता है, और Cobalt Strike में Aggressor के माध्यम से भी इस प्रकार कॉन्फ़िगर किया जा सकता है।
bin\Release निर्देशिका में बदलें (cd C:\Path\to\LittleCorporal\bin\Release)। यदि आप इस प्रोजेक्ट को पुनः संकलित करने का निर्णय लेते हैं, तो Debug बिल्ड के बजाय Release बिल्ड का उपयोग करने की अनुशंसा की जाती है।LittleCorporal.exe चला रहे हैं, और उस मशीन पर पहले से चल रही प्रक्रिया जिस पर आप Word दस्तावेज़ निष्पादित करना चाहते हैं। (LittleCorporal.exe C:\Path\To\Shellcode.bin explorer.exe)LittleCorporal.exe cleanLittleCorporal.exebool FUNC1 = true;