君子藏器于身待時而動,安全不露圭角覆盂之安。
——AnonySec
https://payloads.cn

前言
Cobalt Strike 一款以Metasploit為基礎的GUI框架式滲透測試工具,集成了端口轉發(fā)、服務掃描,自動化溢出,多模式端口監(jiān)聽,exe、powershell木馬生成等。
釣魚攻擊包括:站點克隆,目標信息獲取,java執(zhí)行,瀏覽器自動攻擊等。
Cobalt Strike 主要用于團隊作戰(zhàn),可謂是團隊滲透神器,能讓多個攻擊者同時連接到團體服務器上,共享攻擊資源與目標信息和sessions。
Cobalt Strike 作為一款協(xié)同APT工具,針對內(nèi)網(wǎng)的滲透測試和作為apt的控制終端功能,使其變成眾多APT組織的首選。


基本功能
安裝
Cobalt Strike 分為客戶端和服務端,可分布式操作、協(xié)同作戰(zhàn)。服務器端只能運行在Linux系統(tǒng)中,可搭建在VPS上。
服務端
服務端關鍵的文件是teamserver以及cobaltstrike.jar,將這兩個文件放到服務器上同一個目錄,然后運行:
chmod +x teamserver
./teamserver 10.11.42.202 test123
# 服務端真實IP(不能使用0.0.0.0或127.0.0.1)和連接密碼

客戶端
客戶端在Windows、Linux、Mac下都可以運行 (需要配置好Java環(huán)境)。啟動Cobalt Strike客戶端,輸入服務端的IP以及端口、連接密碼,用戶名可以任意設置。

在控制臺所有操作指令都會被記錄保留在Cobalt Strike目錄logs下。
參數(shù)詳情
Cobalt Strike

New Connection #新的連接(支持連接多個服務器端)
Preferences #偏好設置(設置Cobal Strike界面、控制臺、以及輸出報告樣式、TeamServer連接記錄等)
Visualization #窗口視圖模式(展示輸出結果的形式)
VPN Interfaces #VPN接入
Listenrs #監(jiān)聽器(創(chuàng)建Listener)
Script Manager #腳本管理
Close #關閉
View

Applications #應用(顯示受害者機器的應用信息)
Credentials #憑證(通過hashdump或Mimikatz抓取過的密碼都會儲存在這里)
Downloads #下載文件
Event Log #事件日志(主機上線記錄以及團隊協(xié)作聊天記錄)
Keystrokes #鍵盤記錄
Proxy Pivots #代理模塊
Screenshots #截圖
Script Console #腳本控制臺(可以加載各種腳本,增強功能https://github.com/rsmudge/cortana-scripts)
Targets #顯示目標主機
Web Log #Web日志
Attacks
Packages

HTML Application #生成惡意的HTA木馬文件
MS Office Macro #生成office宏病毒文件
Payload Generator #生成各種語言版本的payload
USB/CD AutoPlay #生成利用自動播放運行的木馬文件
Windows Dropper #捆綁器,能夠對文檔類進行捆綁
Windows Executable #生成可執(zhí)行Payload
Windows Executable(S) #把包含payload,Stageless生成可執(zhí)行文件(包含多數(shù)功能)
Web Drive-by

Manage #對開啟的web服務進行管理
Clone Site #克隆網(wǎng)站(可記錄受害者提交的數(shù)據(jù))
Host File #提供Web以供下載某文件
Scripted Web Delivery #提供Web服務,便于下載和執(zhí)行PowerShell Payload,類似于Metasploit的web_delivery
Signed Applet Attack #啟動一個Web服務以提供自簽名Java Applet的運行環(huán)境
Smart Applet Attack #自動檢測Java版本并利用已知的exploits繞過security
System Profiler #用來獲取一些系統(tǒng)信息,比如系統(tǒng)版本,F(xiàn)lash版本,瀏覽器版本等
Reporting

0. Activity report #活動報告
1. Hosts report #主機報告
2. Indicators of Compromise #威脅報告
3. Sessions report #會話報告
4. Social engineering report #社會工程學報告
5. Tactics, Techniques, and Procedures #策略、技巧和程序
Reset Data #重置數(shù)據(jù)
Export Data #導出數(shù)據(jù)
Help

Homepage #官方主頁
Support #技術支持
Arsenal #開發(fā)者
System information #版本信息
About #關于
右鍵菜單

Access
Dump Hashes #獲取hash
Elevate #提權
Golden Ticket #生成黃金票據(jù)注入當前會話
Make token #憑證轉換
Run Mimikatz #運行 Mimikatz
Spawn As #用其他用戶生成Cobalt Strike偵聽器
Explore
Browser Pivot #劫持目標瀏覽器進程
Desktop(VNC) #桌面交互
File Browser #文件瀏覽器
Net View #命令Net View
Port Scan #端口掃描
Process List #進程列表
Screenshot #截圖
Pivoting
SOCKS Server #代理服務
Listener #反向端口轉發(fā)
Deploy VPN #部署VPN
Spawn
外部監(jiān)聽器(如指派給MSF,獲取meterpreter權限)
Session
Note #備注
Remove #刪除
Sleep #指定被控端休眠時間,默認60秒一次回傳,讓被控端每10秒來下載一次任務。實際中頻率不宜過快,容易被發(fā)現(xiàn)。
Exit #退出
Interact(打開beacon)
beacon> help
Beacon Commands
===============
Command Description
------- -----------
argue 進程參數(shù)欺騙
blockdlls 阻止子進程加載非Microsoft DLL
browserpivot 注入受害者瀏覽器進程
bypassuac 繞過UAC提升權限
cancel 取消正在進行的下載
cd 切換目錄
checkin 強制讓被控端回連一次
clear 清除beacon內(nèi)部的任務隊列
connect Connect to a Beacon peer over TCP
covertvpn 部署Covert VPN客戶端
cp 復制文件
dcsync 從DC中提取密碼哈希
desktop 遠程桌面(VNC)
dllinject 反射DLL注入進程
dllload 使用LoadLibrary將DLL加載到進程中
download 下載文件
downloads 列出正在進行的文件下載
drives 列出目標盤符
elevate 使用exp
execute 在目標上執(zhí)行程序(無輸出)
execute-assembly 在目標上內(nèi)存中執(zhí)行本地.NET程序
exit 終止beacon會話
getprivs Enable system privileges on current token
getsystem 嘗試獲取SYSTEM權限
getuid 獲取用戶ID
hashdump 轉儲密碼哈希值
help 幫助
inject 在注入進程生成會話
jobkill 結束一個后臺任務
jobs 列出后臺任務
kerberos_ccache_use 從ccache文件中導入票據(jù)應用于此會話
kerberos_ticket_purge 清除當前會話的票據(jù)
kerberos_ticket_use Apply 從ticket文件中導入票據(jù)應用于此會話
keylogger 鍵盤記錄
kill 結束進程
link Connect to a Beacon peer over a named pipe
logonpasswords 使用mimikatz轉儲憑據(jù)和哈希值
ls 列出文件
make_token 創(chuàng)建令牌以傳遞憑據(jù)
mimikatz 運行mimikatz
mkdir 創(chuàng)建一個目錄
mode dns 使用DNS A作為通信通道(僅限DNS beacon)
mode dns-txt 使用DNS TXT作為通信通道(僅限D beacon)
mode dns6 使用DNS AAAA作為通信通道(僅限DNS beacon)
mode http 使用HTTP作為通信通道
mv 移動文件
net net命令
note 備注
portscan 進行端口掃描
powerpick 通過Unmanaged PowerShell執(zhí)行命令
powershell 通過powershell.exe執(zhí)行命令
powershell-import 導入powershell腳本
ppid Set parent PID for spawned post-ex jobs
ps 顯示進程列表
psexec Use a service to spawn a session on a host
psexec_psh Use PowerShell to spawn a session on a host
psinject 在特定進程中執(zhí)行PowerShell命令
pth 使用Mimikatz進行傳遞哈希
pwd 當前目錄位置
reg Query the registry
rev2self 恢復原始令牌
rm 刪除文件或文件夾
rportfwd 端口轉發(fā)
run 在目標上執(zhí)行程序(返回輸出)
runas 以其他用戶權限執(zhí)行程序
runasadmin 在高權限下執(zhí)行程序
runu Execute a program under another PID
screenshot 屏幕截圖
setenv 設置環(huán)境變量
shell 執(zhí)行cmd命令
shinject 將shellcode注入進程
shspawn 啟動一個進程并將shellcode注入其中
sleep 設置睡眠延遲時間
socks 啟動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連接遠程主機
ssh-key 使用密鑰連接遠程主機
steal_token 從進程中竊取令牌
timestomp 將一個文件的時間戳應用到另一個文件
unlink Disconnect from parent Beacon
upload 上傳文件
wdigest 使用mimikatz轉儲明文憑據(jù)
winrm 使用WinRM橫向滲透
wmi 使用WMI橫向滲透
使用
Listeners簡介
在本版本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會話)
- beacon_xx 系列為Cobalt Strike自身,包括 dns、http、https、smb 四種方式的監(jiān)聽器。
- foreign 系列為外部監(jiān)聽器,通常與MSF或者Armitage聯(lián)動。
在Cobalt Strike 3.13版本后增加了一個新的 Listeners (windows/beacon_tcp/bind_tcp) ,它支持linuxSSH會話。具體更新內(nèi)容可以查閱 官網(wǎng) 。
創(chuàng)建一個服務
首先配置一個監(jiān)聽器

選擇 Attacks > Packages > Windows Executable

上線成功,在 Event Log 處出現(xiàn)上線信息。

Beacon
右鍵目標interact來使用Beacon,用它來執(zhí)行各種命令。在Cobalt Strike中,默認心跳為60s,執(zhí)行命令的響應很慢,在下載文件時更加明顯,所以根據(jù)實戰(zhàn)環(huán)境把時間降低,建議不要太快,否則流量會相對明顯。

在這里設置sleep 10,同時在beacon中,如果想對目標進行命令管理,需要在前面加上shell,如shell whoami、shell ipconfig等。
總結
這里只是簡單描述CobaltStrike的用法,其中還有很多功能的使用,需要實際操作中去發(fā)現(xiàn)。更核心的地方在于理解CobaltStrike的Beacon在內(nèi)網(wǎng)中的通信過程,這對于滲透者能否更進一步深入內(nèi)網(wǎng)起到重要作用,也是神器的價值所在。
在滲透過程中,不要僅限于單一模式的思路,根據(jù)實際的情況,選擇更優(yōu)的方法來進行下一步的滲透測試。