君子藏器于身待時(shí)而動(dòng),安全不露圭角覆盂之安潜沦。
——AnonySec
https://payloads.cn
前言
Cobalt Strike 一款以Metasploit為基礎(chǔ)的GUI框架式滲透測(cè)試工具,集成了端口轉(zhuǎn)發(fā)绪氛、服務(wù)掃描唆鸡,自動(dòng)化溢出,多模式端口監(jiān)聽枣察,exe争占、powershell木馬生成等。
釣魚攻擊包括:站點(diǎn)克隆序目,目標(biāo)信息獲取臂痕,java執(zhí)行,瀏覽器自動(dòng)攻擊等猿涨。
Cobalt Strike 主要用于團(tuán)隊(duì)作戰(zhàn)握童,可謂是團(tuán)隊(duì)滲透神器,能讓多個(gè)攻擊者同時(shí)連接到團(tuán)體服務(wù)器上叛赚,共享攻擊資源與目標(biāo)信息和sessions舆瘪。
Cobalt Strike 作為一款協(xié)同APT工具,針對(duì)內(nèi)網(wǎng)的滲透測(cè)試和作為apt的控制終端功能红伦,使其變成眾多APT組織的首選英古。
基本功能
安裝
Cobalt Strike 分為客戶端和服務(wù)端,可分布式操作昙读、協(xié)同作戰(zhàn)召调。服務(wù)器端只能運(yùn)行在Linux系統(tǒng)中,可搭建在VPS上。
服務(wù)端
服務(wù)端關(guān)鍵的文件是teamserver以及cobaltstrike.jar唠叛,將這兩個(gè)文件放到服務(wù)器上同一個(gè)目錄只嚣,然后運(yùn)行:
chmod +x teamserver
./teamserver 10.11.42.202 test123
# 服務(wù)端真實(shí)IP(不能使用0.0.0.0或127.0.0.1)和連接密碼
客戶端
客戶端在Windows、Linux艺沼、Mac下都可以運(yùn)行 (需要配置好Java環(huán)境)册舞。啟動(dòng)Cobalt Strike客戶端,輸入服務(wù)端的IP以及端口障般、連接密碼调鲸,用戶名可以任意設(shè)置。
在控制臺(tái)所有操作指令都會(huì)被記錄保留在Cobalt Strike目錄logs下挽荡。
參數(shù)詳情
Cobalt Strike
New Connection #新的連接(支持連接多個(gè)服務(wù)器端)
Preferences #偏好設(shè)置(設(shè)置Cobal Strike界面藐石、控制臺(tái)、以及輸出報(bào)告樣式定拟、TeamServer連接記錄等)
Visualization #窗口視圖模式(展示輸出結(jié)果的形式)
VPN Interfaces #VPN接入
Listenrs #監(jiān)聽器(創(chuàng)建Listener)
Script Manager #腳本管理
Close #關(guān)閉
View
Applications #應(yīng)用(顯示受害者機(jī)器的應(yīng)用信息)
Credentials #憑證(通過hashdump或Mimikatz抓取過的密碼都會(huì)儲(chǔ)存在這里)
Downloads #下載文件
Event Log #事件日志(主機(jī)上線記錄以及團(tuán)隊(duì)協(xié)作聊天記錄)
Keystrokes #鍵盤記錄
Proxy Pivots #代理模塊
Screenshots #截圖
Script Console #腳本控制臺(tái)(可以加載各種腳本于微,增強(qiáng)功能https://github.com/rsmudge/cortana-scripts)
Targets #顯示目標(biāo)主機(jī)
Web Log #Web日志
Attacks
Packages
HTML Application #生成惡意的HTA木馬文件
MS Office Macro #生成office宏病毒文件
Payload Generator #生成各種語(yǔ)言版本的payload
USB/CD AutoPlay #生成利用自動(dòng)播放運(yùn)行的木馬文件
Windows Dropper #捆綁器,能夠?qū)ξ臋n類進(jìn)行捆綁
Windows Executable #生成可執(zhí)行Payload
Windows Executable(S) #把包含payload,Stageless生成可執(zhí)行文件(包含多數(shù)功能)
Web Drive-by
Manage #對(duì)開啟的web服務(wù)進(jìn)行管理
Clone Site #克隆網(wǎng)站(可記錄受害者提交的數(shù)據(jù))
Host File #提供Web以供下載某文件
Scripted Web Delivery #提供Web服務(wù)青自,便于下載和執(zhí)行PowerShell Payload株依,類似于Metasploit的web_delivery
Signed Applet Attack #啟動(dòng)一個(gè)Web服務(wù)以提供自簽名Java Applet的運(yùn)行環(huán)境
Smart Applet Attack #自動(dòng)檢測(cè)Java版本并利用已知的exploits繞過security
System Profiler #用來(lái)獲取一些系統(tǒng)信息,比如系統(tǒng)版本延窜,F(xiàn)lash版本恋腕,瀏覽器版本等
Reporting
0. Activity report #活動(dòng)報(bào)告
1. Hosts report #主機(jī)報(bào)告
2. Indicators of Compromise #威脅報(bào)告
3. Sessions report #會(huì)話報(bào)告
4. Social engineering report #社會(huì)工程學(xué)報(bào)告
5. Tactics, Techniques, and Procedures #策略、技巧和程序
Reset Data #重置數(shù)據(jù)
Export Data #導(dǎo)出數(shù)據(jù)
Help
Homepage #官方主頁(yè)
Support #技術(shù)支持
Arsenal #開發(fā)者
System information #版本信息
About #關(guān)于
右鍵菜單
Access
Dump Hashes #獲取hash
Elevate #提權(quán)
Golden Ticket #生成黃金票據(jù)注入當(dāng)前會(huì)話
Make token #憑證轉(zhuǎn)換
Run Mimikatz #運(yùn)行 Mimikatz
Spawn As #用其他用戶生成Cobalt Strike偵聽器
Explore
Browser Pivot #劫持目標(biāo)瀏覽器進(jìn)程
Desktop(VNC) #桌面交互
File Browser #文件瀏覽器
Net View #命令Net View
Port Scan #端口掃描
Process List #進(jìn)程列表
Screenshot #截圖
Pivoting
SOCKS Server #代理服務(wù)
Listener #反向端口轉(zhuǎn)發(fā)
Deploy VPN #部署VPN
Spawn
外部監(jiān)聽器(如指派給MSF需曾,獲取meterpreter權(quán)限)
Session
Note #備注
Remove #刪除
Sleep #指定被控端休眠時(shí)間吗坚,默認(rèn)60秒一次回傳,讓被控端每10秒來(lái)下載一次任務(wù)呆万。實(shí)際中頻率不宜過快,容易被發(fā)現(xiàn)商源。
Exit #退出
Interact(打開beacon)
beacon> help
Beacon Commands
===============
Command Description
------- -----------
argue 進(jìn)程參數(shù)欺騙
blockdlls 阻止子進(jìn)程加載非Microsoft DLL
browserpivot 注入受害者瀏覽器進(jìn)程
bypassuac 繞過UAC提升權(quán)限
cancel 取消正在進(jìn)行的下載
cd 切換目錄
checkin 強(qiáng)制讓被控端回連一次
clear 清除beacon內(nèi)部的任務(wù)隊(duì)列
connect Connect to a Beacon peer over TCP
covertvpn 部署Covert VPN客戶端
cp 復(fù)制文件
dcsync 從DC中提取密碼哈希
desktop 遠(yuǎn)程桌面(VNC)
dllinject 反射DLL注入進(jìn)程
dllload 使用LoadLibrary將DLL加載到進(jìn)程中
download 下載文件
downloads 列出正在進(jìn)行的文件下載
drives 列出目標(biāo)盤符
elevate 使用exp
execute 在目標(biāo)上執(zhí)行程序(無(wú)輸出)
execute-assembly 在目標(biāo)上內(nèi)存中執(zhí)行本地.NET程序
exit 終止beacon會(huì)話
getprivs Enable system privileges on current token
getsystem 嘗試獲取SYSTEM權(quán)限
getuid 獲取用戶ID
hashdump 轉(zhuǎn)儲(chǔ)密碼哈希值
help 幫助
inject 在注入進(jìn)程生成會(huì)話
jobkill 結(jié)束一個(gè)后臺(tái)任務(wù)
jobs 列出后臺(tái)任務(wù)
kerberos_ccache_use 從ccache文件中導(dǎo)入票據(jù)應(yīng)用于此會(huì)話
kerberos_ticket_purge 清除當(dāng)前會(huì)話的票據(jù)
kerberos_ticket_use Apply 從ticket文件中導(dǎo)入票據(jù)應(yīng)用于此會(huì)話
keylogger 鍵盤記錄
kill 結(jié)束進(jìn)程
link Connect to a Beacon peer over a named pipe
logonpasswords 使用mimikatz轉(zhuǎn)儲(chǔ)憑據(jù)和哈希值
ls 列出文件
make_token 創(chuàng)建令牌以傳遞憑據(jù)
mimikatz 運(yùn)行mimikatz
mkdir 創(chuàng)建一個(gè)目錄
mode dns 使用DNS A作為通信通道(僅限D(zhuǎn)NS beacon)
mode dns-txt 使用DNS TXT作為通信通道(僅限D(zhuǎn) beacon)
mode dns6 使用DNS AAAA作為通信通道(僅限D(zhuǎn)NS beacon)
mode http 使用HTTP作為通信通道
mv 移動(dòng)文件
net net命令
note 備注
portscan 進(jìn)行端口掃描
powerpick 通過Unmanaged PowerShell執(zhí)行命令
powershell 通過powershell.exe執(zhí)行命令
powershell-import 導(dǎo)入powershell腳本
ppid Set parent PID for spawned post-ex jobs
ps 顯示進(jìn)程列表
psexec Use a service to spawn a session on a host
psexec_psh Use PowerShell to spawn a session on a host
psinject 在特定進(jìn)程中執(zhí)行PowerShell命令
pth 使用Mimikatz進(jìn)行傳遞哈希
pwd 當(dāng)前目錄位置
reg Query the registry
rev2self 恢復(fù)原始令牌
rm 刪除文件或文件夾
rportfwd 端口轉(zhuǎn)發(fā)
run 在目標(biāo)上執(zhí)行程序(返回輸出)
runas 以其他用戶權(quán)限執(zhí)行程序
runasadmin 在高權(quán)限下執(zhí)行程序
runu Execute a program under another PID
screenshot 屏幕截圖
setenv 設(shè)置環(huán)境變量
shell 執(zhí)行cmd命令
shinject 將shellcode注入進(jìn)程
shspawn 啟動(dòng)一個(gè)進(jìn)程并將shellcode注入其中
sleep 設(shè)置睡眠延遲時(shí)間
socks 啟動(dòng)SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another PID
ssh 使用ssh連接遠(yuǎn)程主機(jī)
ssh-key 使用密鑰連接遠(yuǎn)程主機(jī)
steal_token 從進(jìn)程中竊取令牌
timestomp 將一個(gè)文件的時(shí)間戳應(yīng)用到另一個(gè)文件
unlink Disconnect from parent Beacon
upload 上傳文件
wdigest 使用mimikatz轉(zhuǎn)儲(chǔ)明文憑據(jù)
winrm 使用WinRM橫向滲透
wmi 使用WMI橫向滲透
使用
Listeners簡(jiǎn)介
在本版本Cobalt Strike 3.14中,提供了如圖9種 Listener (監(jiān)聽器)谋减。
windows/beacon_dns/reverse_dns_txt
windows/beacon_dns/reverse_http
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https
windows/beacon_smb/bind_pipe
windows/beacon_tcp/bind_tcp
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp (3.13版后增加牡彻,支持linuxSSH會(huì)話)
- beacon_xx 系列為Cobalt Strike自身,包括 dns出爹、http庄吼、https、smb 四種方式的監(jiān)聽器严就。
- foreign 系列為外部監(jiān)聽器总寻,通常與MSF或者Armitage聯(lián)動(dòng)。
在Cobalt Strike 3.13版本后增加了一個(gè)新的 Listeners (windows/beacon_tcp/bind_tcp)
梢为,它支持linuxSSH會(huì)話渐行。具體更新內(nèi)容可以查閱 官網(wǎng) 轰坊。
創(chuàng)建一個(gè)服務(wù)
首先配置一個(gè)監(jiān)聽器
選擇 Attacks > Packages > Windows Executable
上線成功,在 Event Log 處出現(xiàn)上線信息祟印。
Beacon
右鍵目標(biāo)interact
來(lái)使用Beacon
肴沫,用它來(lái)執(zhí)行各種命令。在Cobalt Strike中蕴忆,默認(rèn)心跳為60s颤芬,執(zhí)行命令的響應(yīng)很慢,在下載文件時(shí)更加明顯套鹅,所以根據(jù)實(shí)戰(zhàn)環(huán)境把時(shí)間降低站蝠,建議不要太快,否則流量會(huì)相對(duì)明顯芋哭。
在這里設(shè)置sleep 10
沉衣,同時(shí)在beacon中郁副,如果想對(duì)目標(biāo)進(jìn)行命令管理减牺,需要在前面加上shell
,如shell whoami
存谎、shell ipconfig
等拔疚。
總結(jié)
這里只是簡(jiǎn)單描述CobaltStrike的用法,其中還有很多功能的使用既荚,需要實(shí)際操作中去發(fā)現(xiàn)稚失。更核心的地方在于理解CobaltStrike的Beacon在內(nèi)網(wǎng)中的通信過程,這對(duì)于滲透者能否更進(jìn)一步深入內(nèi)網(wǎng)起到重要作用恰聘,也是神器的價(jià)值所在句各。
在滲透過程中,不要僅限于單一模式的思路晴叨,根據(jù)實(shí)際的情況凿宾,選擇更優(yōu)的方法來(lái)進(jìn)行下一步的滲透測(cè)試。