關於cobalt strike,火起來也有好幾年了,首先感謝大佬們慷慨相助願意在網上分享和翻譯相關資料,讓這么好的滲透測試框架工具被更多人知道
那就來整理一下在使用這個框架的過程中我認為需要了解的小知識點
cobalt strike簡稱CS,是一款GUI框架式的滲透測試工具,集成了很多功能
最大的特點是可以團戰,有一個服務器,多個客戶端,每個客戶端就是一個攻擊者,攻擊者通過連接到服務端來共享攻擊資源和目標信息甚至session,服務器必須是Linux系統的
使用的大致流程是:創建團隊服務器->客戶端連接團隊服務器->創建監聽器->生成payload對應監聽器->靶機運行后門上線->后滲透
運行cs需要先有Java環境
演示環境 team server kali 192.168.1.16 (有VPS最好)
客戶端 win10 192.168.1.17
cs4.1 漢化版 (僅做功能演示和知識點小結,至於版本特征和后門不做討論)
0x00前言
在演示一些基本操作之前,先把說明和常用命令寫出來供參考,混個眼熟,后面演示會用到部分功能
選項卡說明(本例中漢化了,實際上是英文的,注意對應關系):
cobalt strike模塊
New Connection # 新建連接,支持連接多個服務器端
Preferences # 偏好設置,設置Cobal Strike界面、控制台、以及輸出報告樣式、TeamServer連接記錄
Visualization # 主要展示輸出結果的視圖,將主機以不同權限展示出來
VPN Interfaces # 設置VPN接口
Listenrs # 創建監聽器
Script Manager # 腳本管理,可以通過AggressorScripts腳本來加強自身,能夠擴展菜單欄,Beacon命令行,提權腳本等
Close # 退出連接,關閉於teamserver的連接
view模塊
Applications # 顯示受害主機的應用信息
Credentials # 顯示所有以獲取的受害主機的憑證,如hashdump、Mimikatz
Downloads # 查看已從受害主機中下載的文件
Event Log # 主機上線記錄以及團隊協作聊天記錄操作記錄
Keystrokes # 查看鍵盤記錄結果
Proxy Pivots # 查看代理模塊
Screenshots # 查看所有屏幕截圖
Script Console #控制台,加載第三方腳本以增強功能
Targets # 顯示所有受害主機
Web Log # 所有Web服務的日志
attack模塊
packages模塊
HTML Application # 基於HTML應用的payload模塊,生成(executable/VBA/powershell)這三種原理實現的惡意HTA木馬文件
MS Office Macro # 生成office宏病毒文件
Payload Generator # 生成各種語言版本的payload,如C ,C#,COM Scriptlet,Java,Perl,Python,PowerShell,Ruby,VBA.......
Windows Executable # 生成可執行exe木馬
Windows Executable(Stageless) # 生成無狀態的可執行exe木馬
(有的版本packages模塊還有USB/CD AutoPlay功能,用於生成利用自動播放運行的后門文件)
Web Drive-by模塊
Manage # 對開啟的web服務進行管理
Clone Site # 克隆網站,可以記錄受害者提交的數據
Host File # 提供文件下載,可以選擇Mime類型
Scripted Web Delivery #為payload提供web服務以便下載和執行,類似於Metasploit的web_delivery
Signed Applet Attack #使用java自簽名的程序進行釣魚攻擊(該方法已過時)
Smart Applet Attack #自動檢測java版本並進行攻擊,針對Java 1.6.0_45以下以及Java 1.7.0_21以下版本(該方法已過時)
System Profiler #用來獲取系統信息,如系統版本,Flash版本,瀏覽器版本等
Spear Phish # 魚叉釣魚郵件
reporting模塊
Activity Report # 活動報告
Hosts Report # 主機報告
Indicators of Compromise # IOC報告:包括C2配置文件的流量分析、域名、IP和上傳文件的MD5 hashes
Sessions Report # 會話報告
Social Engineering Report #社會工程報告:包括魚叉釣魚郵件及點擊記錄
Tactics, Techniques, and Procedures # 戰術技術及相關程序報告:包括行動對應的每種戰術的檢測策略和緩解策略
Reset Data # 重置數據
Export Data # 導出數據,導出.tsv文件格式
help模塊
Homepage # 官方主頁
Support # 技術支持
Arsenal # 開發者
System information # 版本信息
About # 關於
工具欄說明:
1.新建連接
2.斷開當前連接
3.監聽器
4.改變視圖為Pivot Graph(視圖列表)
5.改變視圖為Session Table(會話列表)
6.改變視圖為Target Table(目標列表)
7.顯示所有以獲取的受害主機的憑證
8.查看已下載文件
9.查看鍵盤記錄結果
10.查看屏幕截圖
11.生成無狀態的可執行exe木馬
12.使用java自簽名的程序進行釣魚攻擊
13.生成office宏病毒文件
14.為payload提供web服務以便下載和執行
15.提供文件下載,可以選擇Mime類型
16.管理Cobalt Strike上運行的web服務
17.幫助
18.關於
beacon指令大全:
browserpivot 注入受害者瀏覽器進程
bypassuac 繞過UAC
cancel 取消正在進行的下載
cd 切換目錄
checkin 強制讓被控端回連一次
clear 清除beacon內部的任務隊列
connect 通過tcp連接beacon
covertvpn 部署Covert VPN客戶端
cp 復制文件
dcsync 從DC中提取密碼哈希
desktop 遠程VNC
dllinject 反射DLL注入進程
dllload 使用LoadLibrary將DLL加載到進程中
download 下載文件
downloads 列出正在進行的文件下載
drives 列出目標盤符
elevate 嘗試提權
execute 在目標上執行程序(無輸出)
execute-assembly 在目標上內存中執行本地.NET程序
exit 退出beacon
getprivs 獲取當前beacon包含的所有權限
getsystem 嘗試獲取SYSTEM權限
getuid 獲取用戶ID
hashdump 轉儲密碼哈希值
help 幫助
inject 在特定進程中生成會話
jobkill 殺死一個后台任務
jobs 列出后台任務
kerberos_ccache_use 從ccache文件中導入票據應用於此會話
kerberos_ticket_purge 清除當前會話的票據
kerberos_ticket_use 從ticket文件中導入票據應用於此會話
keylogger 鍵盤記錄
kill 結束進程
link 連接到指定通信管道上的beacon
logonpasswords 使用mimikatz轉儲憑據和哈希值
ls 列出文件
make_token 創建令牌以傳遞憑據
mimikatz 運行mimikatz
mkdir 創建一個目錄
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執行命令
powershell 通過powershell.exe執行命令
powershell-import 導入powershell腳本
ps 顯示進程列表
psexec 使用服務在主機上生成會話
psexec_psh 用powershell在主機上生成會話
psinject 在特定進程中執行PowerShell命令
pth 使用Mimikatz進行傳遞哈希
pwd 當前目錄位置
reg Query the registry
rev2self 恢復原始令牌
rm 刪除文件或文件夾
rportfwd 端口轉發
run 在目標上執行程序(返回輸出)
runas 以另一個用戶權限執行程序
runasadmin 在高權限下執行程序
runu 在另一個PID下執行程序
screenshot 屏幕截圖
setenv 設置環境變量
shell cmd執行命令
shinject 將shellcode注入進程
shspawn 生成進程並將shellcode注入其中
sleep 設置睡眠延遲時間
socks 啟動SOCKS4代理
socks stop 停止SOCKS4
spawn 生成一個會話
spawnas 作為其他用戶生成會話
spawnto 將可執行文件設置為衍生進程
spawnu 在另一個PID下生成會話
ssh 使用ssh連接遠程主機
ssh-key 使用密鑰連接遠程主機
steal_token 從進程中竊取令牌
timestomp 將一個文件時間戳應用到另一個文件
unlink 斷開與父beacon的連接
upload 上傳文件
wdigest 使用mimikatz轉儲明文憑據
winrm 使用WinRM在主機上生成會話
wmi 使用WMI在主機上生成會話
argue 進程參數欺騙
0x01一個與目標主機交互的流程
1.部署teamserver
(前提是有Java環境啊,進入文件目錄看看要用的文件有沒有執行權限)
cs中有很多文件和文件夾:
agscript:拓展應用腳本
c2lient:用於檢查profile的錯誤和異常
cobaltstrike&cobaltstrike.jar:客戶端程序
logs:日志,包括很多內容比如web日志、beacon日志、截圖日志、下載日志、鍵盤記錄等等
update & update.jar :用於更新
data:用於保存當前CS的一些數據
啟動服務器(正常是要把CS服務器部署到公網上的,窮啊,就部署在本地演示了)
連接密碼 lcx123
2.客戶端啟動cobaltstrike.jar,這里用了bat腳本啟動
主界面
3.建立listener
點耳機🎧圖標打開listeners面板
4.執行payload
點擊scripted web delivery,並選擇剛剛生成的監聽器
復制生成的payload
在目標機器192.168.1.17中運行生成的payload(當然這個操作正常來說會被目標機器的殺軟攔截的)
可見目標機器上線了
5.與目標主機交互
右鍵目標機器,選擇進入beacon,進入主機交互模式
然后就可以輸入一些命令了,具體命令在前面寫過了,比如shell whoami
就是我本人,執行成功
0x03 Cobalt Strike有哪些神奇的功能
1.Listener
這里的payload和3.1版本的有區別,dns、http、https、smb、tcp、extc2六種方式的監聽器,foreign為外部監聽器,區別在於傳輸方法不一樣
有外部監聽器就可以與msf或者empire聯動將目標主機權限反彈給CS了,而內部監聽器就是beacon
舉個例子,比如說:通過CS反彈shell給msf
創建一個外部監聽器
在msf中監聽
進入之前上線的機器的beacon,在命令區輸入spawn msf
可見msf中接收到了目標機器的反彈shell
2.Delivery
最主要的還是這個scripted web delivery,生成payload的
URL路徑/URI Path 在訪問URL時payload的位置
主機地址/local host team server服務器地址
端口/local port team server服務器開啟的端口
監聽器/listener 監聽器
類型/type 即scripted web delivery的種類,共四種:bitsadmin\exe\powershell\python
3.Manage
忘了生成的payload也不要怕,點一下管理,copy一下URL即可
這個模塊主要是管理團隊服務器的,除了上邊提到的scripted web delivery生成的payload,還可以有beacon的相關信息,還可以kill掉某個不順眼的服務
4.Payload
還可以用另一種方法生成各種語言的shellcode,然后嵌入相應語言對應的代碼(shellcode執行盒,這個可以自己寫,寫不了的GitHub上有很多很多,后續有時間想寫的時候再寫寫這部分吧),在目標機器上執行代碼,可以回彈一個beacon
還有windows executable用於生成exe格式的、基於服務的exe的(將文件添加到服務中)、dll的
額,還有,注意下面的那個windows executable(S)不太一樣,有一些新選項
當然還可以生成別的什么東西,比如Windows宏病毒啥的
5.后滲透
后滲透要做的事情,比如提權、掃端口、橫向移動、端口轉發、權限持久化什么的,CS基本都能做
先看一下有啥功能
例如
當然也可以在beacon中執行如 elevate uac-token-duplication 用於bypassUAC
還有其他功能太多了,不演示了
總之可以利用黃金票據升到域管理員權限,或者令牌竊取,或者dump hashs,或者調用mimikatz,或者psexec橫向,又或者調用socks,調用端口轉發等等等等
網上也有不少文章講這部分的內容,講得很詳細,我就不說了
6.beacon中常用的一些命令
上面前言部分有列舉過beacon中的很多命令
列舉幾個挺有用的命令,仔細說一下:
sleep 更改回連時間,如sleep 2 就是2秒回連,不然默認beacon響應時間1分鍾,在實際操作中會感受到特別漫長,懂的都懂
getuid 查看當前用戶權限
getsystem 獲得system權限,啊想法很好,msf中meterpreter也有此功能
getprivs 查看當前beacon包含的所有權限
(后續等我補充一些插件的使用)
未完待續......
----------------------------------------------------------------------------------------------------------
2021.5.13補充
鑒於包括CS在內的很多工具框架已經被識別標記了,如果不進行特征修改基本用不了
可嘗試如下幾種思路進行特征修改:
1.改默認端口
2.去除證書特征
3.設置混淆配置文件
4.部署nginx反向代理
5.https上線
詳細參考:https://xz.aliyun.com/t/9542
隨便轉載,請標明作者出處