Cobalt Strike是一款超級好用的滲透測試工具,擁有多種協定主機上線方式,內建了提權,憑據導出,端口轉發,socket代理,office攻擊,檔案捆綁,釣魚等多種功能。同時,Cobalt Strike還可以調用Mimikatz等其他知名工具,是以廣受技術大佬的喜愛。
Cobalt Strike是由美國Red Team開發,官網位址:cobaltstrike.com。
筆者認為學會使用這款“神器”可以在我們滲透的過程中起到事半功倍的作用,于是分享了一些學習心得,希望給各位一點幫助。
這個工具的社群版是大家熟知的Armitage(一個MSF的圖形化界面工具),而Cobalt Strike大家可以了解其為Armitage的商業版。
早期版本Cobalt Srtike依賴Metasploit架構,而現在Cobalt Strike已經不再使用MSF而是作為單獨的平台使用,它分為用戶端(Client)與服務端(Teamserver),服務端是一個,用戶端可以有多個,團隊可進行分布式協團操作。
Cobalt Strike架構
筆者使用的是Cabalt Strike3.13版本,雖然官方已經更新到3.14版本,但是3.14版本并不穩定,是以不推薦使用。
3.13版本檔案架構如下:
- Scripts 使用者安裝的插件
- Log 每天的日志
- c2lint 檢查profile的錯誤異常
- cobaltstrike
- cobaltstrike.jar 用戶端程式
- icon.jpg LOGO
- license.pdf 許可證檔案
- readme.txt
- releasenotes.txt
- teamserver 服務端程式
- update
- update.jar 更新程式
- third-party 第三方工具,裡面放的vnc dll
當然,強大的CS也支援使用者來擴充其功能:私人定制
①Cobalt Strike可以使用AggressorScripts腳本來加強自身,使其更加豐滿,能夠擴充菜單欄,視圖Beacon指令行,提權腳本等;
②Cobalt Strike通信配置檔案是Malleable C2,你可以修改CS的通訊特征,Beacon payload的一些行為;
③Cobalt Strike可以引用其他的通訊架構ExternalC2,ExternalC2是由Cobalt Strike提出的一套規範/架構,它允許黑客根據需要對架構提供的預設HTTP(S)/DNS/SMB C2 通信通道進行擴充。
總的來說CS的自定義功能很強大,使用起來很靈活,後期會講到相關的使用。
Cobaltstrike teamserver的啟動
開啟Cobaltstrike teamserver和運作GUI界面均需要Java環境,是以老哥們必須先把電腦上的Java裝好,這個百度上都寫的很詳細,在此就不贅述了。
1、Windows下啟動teamserver
①下載下傳keytool.exe并将其複制到Cobaltstrike檔案夾下,連結:
http://www.onlinedown.net/soft/614989.htm
②切換到Cobaltstrike目錄執行如下指令:
Keytool.exe -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias cobaltstrike -dname "CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, S=Cyberspace, C=Earth"
③執行指令
teamserver.bat 8.8.8.8 123456
8.8.8.8為你的伺服器外網IP,123456為Coabltstrike的用戶端密碼。
④輕按兩下cobaltstrike.bat,填寫伺服器外網IP和teamserver密碼,即可登入:
2、Linux下啟動teamserver和用戶端
①cd切換到Cobaltstrike目錄下
②執行指令
③執行如下指令即可看到GUI界面
Javaw -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
Listner(監聽器)介紹
1、Cobaltstrike Listner簡介
Listner(監聽器):專門用于對其他對象身上發生的事件或狀态改變進行監聽和相應處理的對象,當被監視的對象發生情況時,立即采取相應的行動。
在許多的滲透測試工具中,例如empire,metasploit,cobaltstrike中都有Listner的存在。大家可以簡單地了解為Listner就是用來接收目标主機權限的子產品。
建立Listener的步驟:Cobaltstrike-->監聽器
目前我用的是Cobaltstrike3.13版本,其中内置了九個Listener。
windows/beacon_dns/reverse_dns_txt
windows/beacon_dns/reverse_http
windows/beacon_tcp/bind_tcp
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https
windows/beacon_smb/bind_pipe
windows/foreign/reverse_http
windows/foreign/reverse_https
windows/foreign/reverse_tcp
beacon為CS内置監聽器,也就是說,當我們在目标系統成功執行Payload以後,會彈回一個beacon的shell給CS。
foreign主要是提供給外部使用的一些監聽器,比如你想利用CS派生一個meterpreter或者armitage的shell回來,來繼續後面的内網滲透,這時就選擇使用外部監聽器。
至于如何實作Cobaltstrike與MSF和Armitage的關聯,請關注公衆号後續推送文章。
2、Listener的配置
選擇Cobaltstrike-->監聽器
随後輸入Listener名字并選擇你要使用的Listner類型,配置好外網IP和端口(不能沖突)點選save即可儲存,在以後生成Payload的過程中即可使用該監聽器。
Cobalt Strike生成後門
1、Payload概念
Payload在滲透測試之中大家可以簡單地了解為一段漏洞利用/植入後門的代碼或程式。
2、Cobalt Strike生成後門
攻擊-->生成後門
我們先來講紅框中的四個生成後門的方式,其餘的比較特殊,留作日後單獨講解。
Payload Generator
該子產品可以生成n種語言的後門Payload,包括C,C#,Python,Java,Perl,Powershell腳本,Powershell指令,Ruby,Raw,免殺架構Veli中的shellcod,等...個人感覺這是CS的一個很大的迷人之處。
在滲透Windows主機過程中,我用的比較多的就是Powershell和Powershell Command,主要是因為其友善易用,且可以逃避一下防毒軟體(AV)的清除。
以Powershell Command為例,生成的Payload為一串指令,隻要在主機上執行這一串指令(主機需安裝Powershell),CS即可收到主機的beacon。
其他語言的Payload,大家可自己研究。
Windows Dropper
這個是一個Windows程式的捆綁器,它可以實作把後門捆綁于其他程式之上,比如掃雷遊戲,某些帶有誘惑性的可執行檔案...
在本處,我捆綁的檔案為nidongde.txt,生成的後門名為dropper.exe。
點選dropper.exe執行後,釋放出了nidongde.txt檔案,同時CS也收到了會話。
Windows Excutable/Windows Excutable(s)
1、Windows Excutable生成的後門是Windows可執行檔案,如exe,DLL。
exe檔案運作後,CS即可收到目标主機的會話。
至于DLL大家可以使用針對DLL的相關攻擊手法,請關注公衆号後續推送文章。
2、Windows Excutable帶有生成出的是stageless版本(無狀态Windows後門木馬),下面簡單說下這個無狀态木馬的使用方法。一般使用無狀态木馬的網絡環境是這樣的。
首先你需要讓一台主機作為中轉器,配合無狀态木馬使用。
這裡選擇中轉器的監聽器生成木馬。需要注意的是如果開啟了防火牆會産生一個Windows安全警報,是以最好提前用cmd添加一個防火牆放行規則或關閉防火牆,随後便可将無狀态的木馬上傳到内網的其他機器運作後傳回一個會話。
以上是今天的内容,大家看懂了嗎?後面我們将持續更新Cobalt Strike系列的知識點,希望大家及時關注。