Cobalt Strike系列教程第二章:Beacon詳解


上周更新了Cobalt Strike系列教程第一章:簡介與安裝,文章發布后,深受大家的喜愛,遂將該系列教程的其他章節與大家分享,提升更多實用技能!

Cobalt Strike系列教程第二章:Beacon詳解

 

第二章:Beacon詳解

一、Beacon命令

大家通過上一篇內容的學習,配置好Listner,執行我們的Payload后,即可發現目標機已經上線。

Cobalt Strike系列教程第二章:Beacon詳解

 

右鍵目標interact來使用Beacon,我們用它來執行各種命令。

Cobalt Strike系列教程第二章:Beacon詳解

 

※在Cobalt Strike中它的心跳默認是60s(即sleep時間為60s,每一分鍾目標主機與teamserver通信一次), 這會讓我們執行命令或進行其他操作響應很慢。

如果sleep時間過長,在下載文件面前更為明顯,所以在測試時會把時間降低一點 。拿到Beacon后,我一般先執行sleep 5,大家可以根據實戰環境來調節,建議不要太快,不然流量會很明顯。

Cobalt Strike系列教程第二章:Beacon詳解

 


注意:Beacon中不能直接輸入cmd命令,比如要讓目標機執行ipconfig這條cmd命令,對應的Beacon命令是shell ipconfig。


其他的Beacon命令,大家可以在Beacon中輸入help來獲取。


在這貼出一部分漢化的命令:

Beacon Commands
Command Description
------- -----------
browserpivot 注入受害者瀏覽器進程
bypassuac 繞過UAC
cancel 取消正在進行的下載
cd 切換目錄
checkin 強制讓被控端回連一次
clear 清除beacon內部的任務隊列
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 嘗試提權
execute 在目標上執行程序(無輸出)
execute-assembly 在目標上內存中執行本地.NET程序
exit 退出beacon
getprivs Enable system privileges on current token
getsystem 嘗試獲取SYSTEM權限
getuid 獲取用戶ID
hashdump 轉儲密碼哈希值
help 幫助
inject 在特定進程中生成會話
jobkill 殺死一個后台任務
jobs 列出后台任務
kerberos_ccache_use 從ccache文件中導入票據應用於此會話
kerberos_ticket_purge 清除當前會話的票據
kerberos_ticket_use 從ticket文件中導入票據應用於此會話
keylogger 鍵盤記錄
kill 結束進程
link Connect to a Beacon peer over a named pipe
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腳本
ppid Set parent PID for spawned post-ex jobs
ps 顯示進程列表
p**ec Use a service to spawn a session on a host
p**ec_psh Use PowerShell to spawn a session on a host
psinject 在特定進程中執行PowerShell命令
pth 使用Mimikatz進行傳遞哈希
pwd 當前目錄位置
reg Query the registry
rev2self 恢復原始令牌
rm 刪除文件或文件夾
rportfwd 端口轉發
run 在目標上執行程序(返回輸出)
runas 以另一個用戶權限執行程序
runasadmin 在高權限下執行程序
runu Execute a program under another PID
screenshot 屏幕截圖
setenv 設置環境變量
shell 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轉儲明文憑據
winrm 使用WinRM在主機上生成會話
wmi 使用WMI在主機上生成會話
argue 進程參數欺騙

二、多種Beacon

以下Beacon使用前均需要開啟對應的Listener。

Http Beacon&tcp Beacon

這兩種Beacon都是比較普通的,個人感覺是主機與teamserver的通信協議不同而已。

Cobalt Strike系列教程第二章:Beacon詳解

 

SMB Beacon

1、簡介

官網介紹:SMB Beacon使用命名管道通過父級Beacon進行通訊,當兩個Beacons連接后,子Beacon從父Beacon獲取到任務並發送。

因為連接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB Beacon相對隱蔽,繞防火牆時可能發揮奇效。

這張圖很好的詮釋了SMB beacon的工作流程:

Cobalt Strike系列教程第二章:Beacon詳解

 

2、SMB Beacon使用

這種Beacon要求具有SMB Beacon的主機必須接受端口445上的連接。

派生一個SMB Beacon方法:在Listner生成SMB Beacon>目標主機>右鍵> spawn as>選中對應的Listener>上線

或在Beacon中使用命令spawn smb(smb為我的smb listener名字)

Cobalt Strike系列教程第二章:Beacon詳解

 

Cobalt Strike系列教程第二章:Beacon詳解

 

運行成功后外部可以看到∞∞這個字符,這就是派生的SMB Beacon。

當前是連接狀態,你可以Beacon上用link <ip>命令鏈接它或者unlink <ip>命令斷開它。

Cobalt Strike系列教程第二章:Beacon詳解

 


這種Beacon在內網橫向滲透中運用的很多,橫向滲透請關注公眾號后續推送文章。在內網環境中可以使用ipc $生成的SMB Beacon上傳到目標主機執行,但是目標主機並不會直接上線的,需要我們自己用鏈接命令(link <ip>)去連接它。

3、DNS Beacon

DNS Beacon在繞過防火牆 權限維持上非常有效,DNS beacon可謂是最受歡迎的Cobalt Strike功能之一。

官網給出的原理示意圖如下:

Cobalt Strike系列教程第二章:Beacon詳解

 

使用DNS Beacon首先要有一個域名,域名建議用國外的,省去一些不必要的麻煩,也防止被查水表。域名使用一些通用平常的即可,整個配置過程非常簡單,一條A記錄和幾條NS記錄即可。

首先進入到域名管理界面(自己的域名過期了,用一下404師傅的圖)

配置A記錄指向服務器ip -->ns記錄都指向A記錄域名

Cobalt Strike系列教程第二章:Beacon詳解

 


配置好了我們可以用nslookup或者dig +trace來測試下是否成功:

Cobalt Strike系列教程第二章:Beacon詳解

 

如果返回的IP地址與你的服務器IP地址對應是正確的,那我們就可以開始配置dns beacon的監聽器了。

Cobalt Strike系列教程第二章:Beacon詳解

 


Host那里最好填域名(A記錄解析那個),不要填服務器的IP地址。

Cobalt Strike系列教程第二章:Beacon詳解

 


然后確定填上ns記錄,英文逗號隔開,然后生成后門測試效果。

Cobalt Strike系列教程第二章:Beacon詳解

 


這是主機欄上出現了一個黑屏的logo,經過一段時間的等待,目標主機即可上線。

4、SSH beacon

當內網有Linux時Cobalt Strike也是考慮到的提供了SSH連接,大家可以通過metasploit爆破內網的SSH賬號密碼,然后用目標機的Beacon去連接就可以了。

目前有兩種SSH Beacon連接方法:

①密碼直接連接

Beacon命令: ssh [target:port] [user] [pass]

②SSH密匙連接

ssh [target:port] [user] [/path/to/key.pem]

連接成功后,如圖就會出現一個子Beacon:

Cobalt Strike系列教程第二章:Beacon詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM