作者:
luom
·
2014/04/25 12:07
0x00 背景
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。
這篇文章就給大家分享下我大家團體伺服器的方法(我的不一定是最好的,參考下就行了)
0x01 搭建
1.伺服器
伺服器強烈建議大家選擇ubuntu的,記憶體1G以上,頻寬8M以上,雖然在Centos上也幫朋友成功搭建過,但是很不推薦,穩定性和維護性都沒有用ubuntu好。
2.安裝metasploit
metasploit有3個版本 專業版,社群版,和git上面的版本,當然大家用社群版就行了,專業版的功能比起社群版要多,但是要給錢,只能免費使用一段時間,以前找到的無限免費使用專業版也被官方封鎖了,git上的版本適合高階安裝的使用者,具體可以自己去玩玩。
下載安裝好社群版的metasploit後接下來就是要啟用第一次訪問metasploit的web管理頁面必須是localhost,這好似規定死的,我這裡有兩種方法1.給伺服器開啟VNC,然後上去啟用(不推薦)2.連線ssh的時候開啟socks5然後遊覽器設定下就可以訪問了。
還有一中快捷的安裝方式就是上傳Cobalt Strike搭伺服器,在裡面有個quick-msf-setup 的指令碼,它可以幫你快熟部署團體伺服器環境,不過我不喜歡這種方式,我比較喜歡折騰,嘿嘿。
3.部署Cobalt Strike
將下載好的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 程式,不要下次啟動會啟動不了的。
0x02 例項之Cobalt Strike透過DNS控制目標
透過DNS來控制目標和滲透好處不多說把,大家都知道,不開埠,能繞過大部分防火牆,隱蔽性好等等。Cobalt Strike有個beacons的功能,它可以透過DNS,HTTP,SMB來傳輸資料,下面我以DNS為例演示下。
1. 域名設定
首先我們的有個域名,並且建立一條A記錄指向我們的metasploit伺服器,記住不要用CDN什麼的
然後再建立2個或3個ns記錄指向剛才建立的A記錄
這樣我們就可以透過dns找到我們的metasploit伺服器了
2. Cobalt Strike設定
在Cobalt Strike中我們新增一個listener
HOST填寫的是metasplit服務的IP,在點選Save的時候會要求填寫你的NS記錄,這裡寫入我們剛才建立的3個
監聽我們設定好了,接下來建立一個木馬測試下。
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會話
剩下的命令就等大家自己去看吧。
這東西好處在於比較對控制目標主機比較隱蔽,缺點在每次的命令我返回結果比較慢,在過防火牆方面還是不錯的。
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!