CobaltStrike的使用
01CobaltStrike
CobaltStrike是一款滲透測試神器,被業界人稱為CS神器。CobaltStrike分為客戶端與服務端,服務端是一個,客戶端可以有多個,可被團隊進行分布式協團操作。
CobaltStrike集成了端口轉發、服務掃描,自動化溢出,多模式端口監聽,windows exe 木馬生成,windows dll 木馬生成,java 木馬生成,office 宏病毒生成,木馬捆綁。釣魚攻擊包括:站點克隆,目標信息獲取,java 執行,瀏覽器自動攻擊等等強大的功能!
02CobaltStrike的安裝
我這里以Kali安裝為例:
先去下載jdk版本
上傳到Kali中,解壓:tar -xzvf jdk-8u191-linux-x64.tar.gz 移動到opt目錄下:mv jdk1.8.0_191/ /opt/ 進入jdk目錄:cd /opt/jdk1.8.0_191 執行 vim ~/.bashrc , 並添加下列內容 # install JAVA JDK export JAVA_HOME=/opt/jdk1.8.0_191 export CLASSPATH=.:${JAVA_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 保存退出 執行: source ~/.bashrc 執行: update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 1 update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_191/bin/javac 1 update-alternatives --set java /opt/jdk1.8.0_191/bin/java update-alternatives --set javac /opt/jdk1.8.0_191/bin/javac 查看結果: update-alternatives --config java update-alternatives --config javac
安裝好了java之后,我們就去安裝CobaltStrike了!
上傳到Kali中,解壓:unzip cobaltstrike-linux.zip 進入cobalstrike中:cd cobaltstrike-linux/
啟動服務端:
啟動服務端:./teamserver 192.168.10.11 123456 #192.168.10.11是kali的ip地址,123456是密碼 后台運行,關閉當前終端依然運行:nohup ./teamserver 192.168.10.11 123456 &
這里CobaltStrike默認監聽的是50050端口,如果我們想修改這個默認端口的話,可以打開teamserver文件,將其中的50050修改成任意一個端口號
啟動客戶端:
./cobaltstrike
這里host填kali的ip,密碼就是剛剛我們啟動的密碼。
啟動后的客戶端:
我們也可以打開windows下的cobaltstrike客戶端,然后把ip設置為我們的啟動時候的ip即可。
03CobaltStrike的使用
創建監聽器:
點擊左上方CobaltStrike選項——>在下拉框中選擇 Listeners ——>在下方彈出區域中單機add
name:為監聽器名字,可任意
payload:payload類型
Host: shell反彈的主機,也就是我們kali的ip
Port: 反彈端口
這里Payload有9種選項,如下:
內部的Listener
- windows/beacon_dns/reverse_dns_txt
- windows/beacon_dns/reverse_http
- windows/beacon_http/reverse_http
- windows/beacon_https/reverse_https
- windows/beacon_smb/bind_pipe
外部的Listener
- windows/foreign/reverse_dns_txt
- windows/foreign/reverse_http
- windows/foreign/reverse_https
- windows/foreign/reverse_tcp
Beacon為內置的Listener,即在目標主機執行相應的payload,獲取shell到CS上;其中包含DNS、HTTP、HTTPS、SMB。Beacon可以選擇通過DNS還是HTTP協議出口網絡,你甚至可以在使用Beacon通訊過程中切換HTTP和DNS。其支持多主機連接,部署好Beacon后提交一個要連回的域名或主機的列表,Beacon將通過這些主機輪詢。目標網絡的防護團隊必須攔截所有的列表中的主機才可中斷和其網絡的通訊。通過種種方式獲取shell以后(比如直接運行生成的exe),就可以使用Beacon了。
Foreign為外部結合的Listener,常用於MSF的結合,例如獲取meterpreter到MSF上。
不同的beacon支持的系統位數也不同,如下:
創建Attacks:
點擊中間的Attacks——>Packages
這里Attacks有幾種,如下:
- HTML Application 生成一個基於powershell的惡意HTML Application木馬,后綴格式為 .hta
- MS Office Macro 生成office宏病毒文件;
- Payload Generator 生成各種語言版本的payload;
- USB/CD AutoPlay 生成利用自動播放運行的木馬文件;
- Windows Dropper 捆綁器,能夠對文檔類進行捆綁;
- Windows Executable 生成可執行exe木馬;
- Windows Executable(S) 生成無狀態的可執行exe木馬
點擊中間的Attacks——>Web Drive-by(網站釣魚攻擊)
- Manage 對開啟的web服務進行管理;
- Clone Site 克隆網站,可以記錄受害者提交的數據;
- Host File 提供一個文件下載,可以修改Mime信息;Host File 可以配合DNS欺騙實現掛馬效果使用
- Scripted Web Delivery 類似於msf 的web_delivery ;
- Signed Applet Attack 啟動一個Web服務以提供自簽名Java Applet的運行環境;
- Smart Applet Attack 自動檢測Java版本並l利用已知的exploits繞過security;
- System Profiler 用來獲取一些系統信息,比如系統版本,Flash版本,瀏覽器版本等。
- Spear Phish 用來郵件釣魚的模塊
視圖View:
點擊中間的View
- Applications 顯示受害者機器的應用信息;
- Credentials 顯示受害者機器的憑證信息,能更方便的進行后續滲透;
- Downloads 文件下載;
- Event Log 可以看到事件日志,清楚的看到系統的事件,並且團隊可以在這里聊天;
- Keystrokes 查看鍵盤記錄;
- Proxy Pivots 查看代理信息;
- Screenshots 查看屏幕截圖;
- Script Console 在這里可以加載各種腳本以增強功能,腳本地址:https://github.com/rsmudge/cortana-scripts
- Targets 查看目標;
- Web Log 查看web日志。
- Reporting 主要就是出報告用的
04對被控主機的操作
Interact 打開beacon
Access
dump hashes 獲取hash
Elevate 提權
Golden Ticket 生成黃金票據注入當前會話
MAke token 憑證轉換
Run Mimikatz 運行 Mimikatz
Spawn As 用其他用戶生成Cobalt Strike的beacon
Explore
Browser Pivot 劫持目標瀏覽器進程
Desktop(VNC) 桌面交互
File Browser 文件瀏覽器
Net View 命令Net View
Port scan 端口掃描
Process list 進程列表
Screenshot 截圖
Pivoting
SOCKS Server 代理服務
Listener 反向端口轉發
Deploy VPN 部署VPN
Spawn 新的通訊模式並生成會話
Session 會話管理,刪除,心跳時間,退出,備注
抓取hash和dump明文密碼
這兩項功能都需要管理員或System權限
抓取密碼哈希:右鍵被控主機——>Access——>Dump Hashes
利用mimikatz抓取明文密碼:右鍵被控主機——>Access——>Run Mimikatz
默認有三個提權payload可以使用,分別是MS14-058、uac-dll、uac-token-duplication 。
我們選中MS14-058,點擊Launch
之后就彈回來一個system權限的beacon
我們也可以自己加入一些提權腳本進去。在Github上有一個提權工具包,使用這個提權工具包可以增加幾種提權方法:https://github.com/rsmudge/ElevateKit 。我們下載好該提權工具包后
如下:
再打開我們的提權,可以看到多了幾種提權方式了
利用被控主機建立Socks4代理
當我們控制的主機是一台位於公網和內網邊界的服務器 ,我們想利用該主機繼續對內網進行滲透,於是,我們可以利用CS建立socks4A代理
右鍵被控主機——>Pivoting——>SOCKS Server
這里是SOCKS代理運行的端口,任意輸入一個未占用的端口即可,默認CS會給出一個,我們直接點擊Launch即可
於是,我們在自己的主機上設置Socks4代理。代理ip是我們CS服務端的ip,端口即是 38588。
如果我們想查看整個CS代理的設置,可以點擊View——>Proxy Pivots
進程列表(注入進程,鍵盤監控)
右鍵被控主機——>Explore——>Process List
即可列出進程列表
選中該進程,Kill為殺死該進程,Refresh為刷新該進程,Inject 則是把beacon注入進程,Log Keystrokes為鍵盤記錄,Screenshot 為截圖,Stea Token為竊取運行指定程序的用戶令牌
這里着重講一下注入進程和鍵盤記錄
Inject注入進程
選擇進程,點擊Inject,隨后選擇監聽器,點擊choose,即可發現CobaltStrike彈回了目標機的一個新會話,這個會話就是成功注入到某進程的beacon會話。該功能可以把你的beacon會話注入到另外一個程序之中,注入之后,除非那個正常進程被殺死了,否則我們就一直可以控制該主機了。
鍵盤記錄
任意選擇一個進程,點擊Log Keystrokes,即可監聽該主機的鍵盤記錄
查看鍵盤記錄結果:點擊鑰匙一樣的按鈕,就可以在底下看到鍵盤記錄的詳細了,會監聽所有的鍵盤記錄,而不只是選中的進程的鍵盤記錄
鍵盤監聽記錄,也可以直接輸入 keylogger
待更新生成黃金票據注入當前會話(Golden Ticket) 和憑證轉換(Make Token)以及CobaltStrike更多的用法。