0x00--前文
有技術交流或滲透測試培訓需求的朋友歡迎聯系QQ/VX-547006660,需要代碼審計、滲透測試、紅藍對抗網絡安全相關業務可以看置頂博文
2000人網絡安全交流群,歡迎大佬們來玩
群號820783253
Cobaltstrike系列教程(一)簡介與安裝
[url]https://bbs.ichunqiu.com/thread-52937-1-1.html[/url]
Cobaltstrike系列教程(二)Listner與Payload生成
[url]https://bbs.ichunqiu.com/thread-52982-1-1.html[/url]
0x01-Beacon詳解
1.Beacon命令
大家通過系列教程(二)的學習,配置好Listner,讓目標機執行我們的Payload/后門程序后,即可發現目標機已經上線
右鍵目標interact來使用Beacon,我們用它來執行各種命令
※在Cobalt Strike中它的心跳默認是60s(即sleep時間為60s,每一分鍾目標主機與teamserver通信一次), 這會讓我們執行命令或進行其他操作響應很慢。。。
我剛開始沒設置sleep時間甚至以為是cobaltstrike壞了--||。如果sleep時間過長,在下載文件面前更為明顯,所以在測試時會把時間降低一點 。所以拿到beacon我一般先執行sleep 5,大家可以根據實戰環境來調節,建議不要太快,不然流量會很明顯。
※注意: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 進程參數欺騙
2.多種beacon
以下beacon使用前均需要開啟對應的Listener,Listener如何開啟請看上一節
①http beacon&tcp beacon
這兩種beacon都是比較普通的,個人感覺講解的意義不是很大。只不過是主機與teamserver的通信協議不同而已。
②SMB beacon
1.簡介
官網介紹:SMB Beacon使用命名管道通過父級Beacon進行通訊,當兩個Beacons鏈接后,子Beacon從父Beacon獲取到任務並發送。
因為鏈接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB Beacon相對隱蔽,繞防火牆時可能發揮奇效。
這張圖很好的詮釋了SMB beacon的工作流程
②smb beacon使用
※這種beacon要求具有SMB Beacon的主機必須接受端口445上的連接.
派生一個SMB Beacon方法:在Listner生成SMB Beacon>目標主機>右鍵> spawn as>選中對應的Listener>上線
或在beacon中使用命令spawn smb(smb為我的smb listener名字)
運行成功后外部可以看到∞∞這個字符,這就是派生的SMB Beacon。
當前是連接狀態,你可以Beacon上用link
這種beacon在內網橫向滲透中運用的很多,橫向滲透留到日后再講。在內網環境中可以使用ipc $生成的SMB Beacon上傳到目標主機執行,但是目標主機並不會直接上線的,需要我們自己用鏈接命令(link
③DNS Beacon
DNS Beacon 在繞過防火牆 權限維持上非常有效,DNS beacon 可謂是是最受歡迎的Cobalt Strike功能之一。 官網給出的原理示意圖如下
使用DNS Beacon首先的有一個域名,域名建議用國外的,省去一些不必要的麻煩,也防止被查水表。。。域名使用一些通用平常的即可,整個配置過程配置非常簡單一條A記錄和幾條NS記錄即可
首先進入到域名管理界面(自己的域名過期了,用一下404師傅的圖)
配置A記錄指向服務器ip -->ns記錄都指向A記錄域名
配置好了我們可以用 nslookup 或者 dig +trace 來測試下 是否成功
如果返回的IP地址與你的服務器ip地址對應是正確的,那我們就可以開始配置dns beacon的監聽器了
Host那里最好填域名(A記錄解析那個),不要填服務器的ip地址
然后確定填上ns記錄 英文逗號隔開 ,然后生成后門測試效果
這是主機欄上出現了一個黑屏的logo,經過一段時間的等待,目標主機即可上線。
④SSH beacon
當內網有Linux時Cobalt Strike也是考慮到的提供了ssh連接,大家可以通過metasploit爆破內網的ssh賬號密碼,然后用目標機的beacon去連接就可以了。
目前有兩種SSH Beacon連接方法
1.密碼直接連接
Beacon命令: ssh [target:port] [user] [pass]
2.ssh密匙連接
ssh [target:port] [user] [/path/to/key.pem]
鏈接成功后,如圖會出現一個子beacon