Cobalt Strike 一款以metasploit為基礎的GUI的框框架式滲透工具,Armitage的商業版,集成了端口發、服務掃描,自動化溢出,多模式端口監聽,win exe木馬生成,win dll木馬生成,java木馬生成,office宏病毒生成,木馬捆綁,mac os 木馬生成,釣魚攻擊包括:站點克隆,目標信息獲取,java執行,游覽器自動攻擊等等。
Cobalt Strike 官網為?Cobalt Strike?程序只不接受大天朝的下載,各位自行想辦法。作者博客?有很多好東西,推薦大家收藏。
Cobalt Strike 在1.45和以前是可以連接本機windows的metasploit的,在后來就不被支持了,必須要求連接遠程linux的metasploit。
Cobalt Strike 還有個強大的功能就是他的團體服務器功能,它能讓多個攻擊者同時連接到團體服務器上,共享攻擊資源與目標信息和sessions。
這篇文章就給大家分享下我大家團體服務器的方法(我的不一定是最好的,參考下就行了)
服務器強烈建議大家選擇ubuntu的,內存1G以上,帶寬8M以上,雖然在Centos上也幫朋友成功搭建過,但是很不推薦,穩定性和維護性都沒有用ubuntu好。
metasploit有3個版本 專業版,社區版,和git上面的版本,當然大家用社區版就行了,專業版的功能比起社區版要多,但是要給錢,只能免費使用一段時間,以前找到的無限免費使用專業版也被官方封鎖了,git上的版本適合高級安裝的用戶,具體可以自己去玩玩。
下載安裝好社區版的metasploit后接下來就是要激活第一次訪問metasploit的web管理頁面必須是localhost,這好似規定死的,我這里有兩種方法1.給服務器開啟VNC,然后上去激活(不推薦)2.連接ssh的時候開啟socks5然后游覽器設置下就可以訪問了。
還有一中快捷的安裝方式就是上傳Cobalt Strike搭服務器,在里面有個quick-msf-setup 的腳本,它可以幫你快熟部署團體服務器環境,不過我不喜歡這種方式,我比較喜歡折騰,嘿嘿。
將下載好的Cobalt Strike上傳到服務器,解包后會有這些文件
Cobalt Strike是JAVA寫的,服務器還得有JAVA環境,這里我們沒必要去下載JAVA來安裝,metasploit已經有了JAVA環境,我們只需要配置下環境變量就行了 打開root目錄下的.bashrc文件,建議先備份,在最下面添加:
#JAVA?
export JAVA_HOME=/opt/metasploit/java
? export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
然后在執行
#!bash
source .bashrc
最后看看是否成功
回到Cobalt Strike目錄
執行./teamserver 服務器IP 連接密碼
啟動的過程中會有很多警告,不用理會它,大概幾分鐘后出現這個就OK了
這里不要關閉,然后本機啟動Cobalt Strike 連接測試
地址是:192.168.10.62
端口是:55553
用戶名是:msf
密碼是:luom (也就是我們剛才設置的)
點擊連接,會彈出一個服務器認證,確認,然后彈出設置你昵稱(Cobalt Strike是可以在線聊天的)
回到SSH 你可以看到各種日志,但是這個一關閉團隊服務器也就關閉了,這里我們可以把他置于后臺來運行
#!bash
nohup ./teamserver 192.168.10.62 luom?&
這樣就可以了,這個目錄下會生成一個nohup.out的文件,這個是程序運行的日志文件 注: 在啟動Cobalt Strike的時候報錯 如下
這個原因是你的內存使用超過%50 無法啟動java虛擬機。
在結束Cobalt Strike的時候也要同時結束所有 msfrpcd 進程,不要下次啟動會啟動不了的。
通過DNS來控制目標和滲透好處不多說把,大家都知道,不開端口,能繞過大部分防火墻,隱蔽性好等等。Cobalt Strike有個beacons的功能,它可以通過DNS,HTTP,SMB來傳輸數據,下面我以DNS為例演示下。
首先我們的有個域名,并且創建一條A記錄指向我們的metasploit服務器,記住不要用CDN什么的
然后再創建2個或3個ns記錄指向剛才創建的A記錄
這樣我們就可以通過dns找到我們的metasploit服務器了
在Cobalt Strike中我們添加一個listener
HOST填寫的是metasplit服務的IP,在點擊Save的時候會要求填寫你的NS記錄,這里寫入我們剛才創建的3個
監聽我們設置好了,接下來創建一個木馬測試下。
在attack->packages
中找到windows木馬生成
Listener選擇我們剛才創建的(有兩個,選擇有DNS的那個),輸出的有exe,帶服務的EXE,dll等。(我測試過連接方式以DNS生成的DLL木馬能過掉很大一部分殺毒軟件)
我們把生成的DNS.EXE放到虛擬機中運行。
運行前的端口情況
運行后的端口情況
沒有開新的端口,在來抓包看看
走的是DNS。
回到Cobalt Strike打開beacons管理器發現有一個服務端響應了我們
右鍵是管理菜單,選擇sleep設置相應的時間,然后選擇interact來到操作界面
首先來設置的是傳輸的模式,有dns、dns-txt,http,smb四種,我們這里用的是DNS就在dns、dns-txt中選擇把,前者傳送的數據小后者傳送的數據多
這里我設置為 mode dns-txt
(這里可以用TAB補齊命令的)
鍵入help可以看到支持的命令
Command Description
------- -----------
bypassuac Spawn a session in a high integrity process
cd Change directory
checkin Call home and post data
clear Clear beacon queue
download Download a file
execute Execute a program on target
exit Terminate the beacon session
getsystem Attempt to get SYSTEM
getuid Get User ID
help Help menu
inject Spawn a session in a specific process
keylogger start Start the keystroke logger
keylogger stop Stop the keystroke logger
message Display a message to user on desktop
meterpreter Spawn a Meterpreter session
link Connect to a Beacon peer over SMB
mode dns Use DNS A as data channel (DNS beacon only)
mode dns-txt Use DNS TXT as data channel (DNS beacon only)
mode http Use HTTP as data channel
mode smb Use SMB peer-to-peer communication
rev2self Revert to original token
shell Execute a command via cmd.exe
sleep Set beacon sleep time
socks Start SOCKS4a server to relay traffic
socks stop Stop SOCKS4a server
spawn Spawn a session
spawnto Set executable to spawn processes into
steal_token Steal access token from a process
task Download and execute a file from a URL
timestomp Apply timestamps from one file to another
unlink Disconnect from parent Beacon
upload Upload a file
這里就演示幾個常用的命令把
Getuid 獲取當前用戶
Execute 運行可執行程序(不能執行shell命令)
Shell 執行shell命令
Meterpreter 返回一個meterpreter會話
剩下的命令就等大家自己去看吧。
這東西好處在于比較對控制目標主機比較隱蔽,缺點在每次的命令我返回結果比較慢,在過防火墻方面還是不錯的。