
DCOM लैटरल मूवमेंट POC जो IMsiServer इंटरफ़ेस का दुरुपयोग करता है - दूरस्थ रूप से पेलोड अपलोड और निष्पादित करता है
DCOM लेटरल मूवमेंट POC जो IMsiServer इंटरफ़ेस का दुरुपयोग करता है
https://www.deepinstinct.com/blog/forget-psexec-dcom-upload-execute-backdoor
समाधान में 2 प्रोजेक्ट शामिल हैं
DCOMUploadExec - एक C++ प्रोजेक्ट जो लेटरल मूवमेंट अटैक कोड को होस्ट करता है
AssemblyPayload - एक .NET DLL जो MessageBox दिखाता है। यह डिफ़ॉल्ट पेलोड है जिसे DCOMUploadExec उपयोग करता है
समाधान को कंपाइल करें
Usage: DCOMUploadExec.exe [domain]\[user]:[password]@[address]
Local Usage: DCOMUploadExec.exe LOCALHOST (इसे व्यवस्थापक के रूप में चलाएँ)
DCOMUploadExec.exe निम्न कार्य करेगा:
डिफ़ॉल्ट पेलोड DLL, AssemblyPayload, को दूरस्थ PC पर अपलोड करेगा
DLL को दूरस्थ MSIEXEC.exe प्रक्रिया में लोड करेगा
DLL से एक एक्सपोर्ट निष्पादित करेगा
एक्सपोर्ट से परिणाम प्राप्त करेगा
पेलोड एक strong-named .NET असेंबली होनी चाहिए
PayloadConfig.h का उपयोग उस पेलोड को कॉन्फ़िगर करने के लिए किया जाता है जिसे DCOMUploadExec उपयोग करेगा।
यह डिफ़ॉल्ट रूप से AssemblyPayload के आउटपुट पर सेट होता है।
कस्टम पेलोड का उपयोग करने के लिए:
एक strong-named .NET असेंबली बनाएँ जो InitializeEmbeddedUI नाम का एक फ़ंक्शन एक्सपोर्ट करती है - यह वह फ़ंक्शन होगा जिसे DCOMUploadExec अंततः दूरस्थ लक्ष्य पर निष्पादित करेगा
अपने कस्टम पेलोड का विवरण PayloadConfig.h में भरें:
PAYLOAD_ASSEMBLY_PATH = // आपके बनाए गए पेलोड का स्थानीय पथ
ASSEMBLY_NAME = // असेंबली का नाम
ASSEMBLY_BITNESS = // x64 पेलोड के लिए "64", x86 पेलोड के लिए "32";
ASSEMBLY_VERSION = // sigcheck.exe -n PAYLOAD_ASSEMBLY_PATH से प्राप्त मान
ASSEMBLY_PUBLIC_KEY = // से प्राप्त मान
sn.exe -T PAYLOAD_ASSEMBLY_PATH
DCOMUploadExec को कंपाइल करें और इसका उपयोग करें
हमलावर और पीड़ित मशीनें एक ही डोमेन या फ़ॉरेस्ट में होनी चाहिए।
हमलावर और पीड़ित मशीनें DCOM Hardening patch के अनुरूप होनी चाहिए - यानी पैच दोनों सिस्टम पर लागू हो या दोनों पर अनुपस्थित हो।
असेंबली पेलोड के पास strong-name होना चाहिए।
असेंबली पेलोड या तो x86 या x64 होना चाहिए (AnyCPU नहीं हो सकता)।