Cobalt Strike 之團隊伺服器的搭建與DNS通訊演示

wyzsk發表於2020-08-19
作者: 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上傳到伺服器,解包後會有這些檔案

enter image description here

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

最後看看是否成功

enter image description here

回到Cobalt Strike目錄

執行./teamserver 伺服器IP 連線密碼

enter image description here

啟動的過程中會有很多警告,不用理會它,大概幾分鐘後出現這個就OK了

enter image description here

這裡不要關閉,然後本機啟動Cobalt Strike 連線測試

地址是:192.168.10.62
埠是:55553
使用者名稱是:msf
密碼是:luom  (也就是我們剛才設定的)

enter image description here

點選連線,會彈出一個伺服器認證,確認,然後彈出設定你暱稱(Cobalt Strike是可以線上聊天的)

enter image description here

回到SSH 你可以看到各種日誌,但是這個一關閉團隊伺服器也就關閉了,這裡我們可以把他置於後臺來執行

#!bash
nohup ./teamserver 192.168.10.62 luom &

這樣就可以了,這個目錄下會生成一個nohup.out的檔案,這個是程式執行的日誌檔案 注: 在啟動Cobalt Strike的時候報錯 如下

enter image description here

這個原因是你的記憶體使用超過%50 無法啟動java虛擬機器。

在結束Cobalt Strike的時候也要同時結束所有 msfrpcd 程式,不要下次啟動會啟動不了的。

0x02 例項之Cobalt Strike透過DNS控制目標


透過DNS來控制目標和滲透好處不多說把,大家都知道,不開埠,能繞過大部分防火牆,隱蔽性好等等。Cobalt Strike有個beacons的功能,它可以透過DNS,HTTP,SMB來傳輸資料,下面我以DNS為例演示下。

1. 域名設定

首先我們的有個域名,並且建立一條A記錄指向我們的metasploit伺服器,記住不要用CDN什麼的

enter image description here

然後再建立2個或3個ns記錄指向剛才建立的A記錄

enter image description here

這樣我們就可以透過dns找到我們的metasploit伺服器了

2. Cobalt Strike設定

在Cobalt Strike中我們新增一個listener

enter image description here

HOST填寫的是metasplit服務的IP,在點選Save的時候會要求填寫你的NS記錄,這裡寫入我們剛才建立的3個

enter image description here

監聽我們設定好了,接下來建立一個木馬測試下。

3. 木馬生成

attack->packages中找到windows木馬生成

enter image description here

Listener選擇我們剛才建立的(有兩個,選擇有DNS的那個),輸出的有exe,帶服務的EXE,dll等。(我測試過連線方式以DNS生成的DLL木馬能過掉很大一部分防毒軟體)

我們把生成的DNS.EXE放到虛擬機器中執行。

執行前的埠情況

enter image description here

執行後的埠情況

enter image description here

沒有開新的埠,在來抓包看看

enter image description here

走的是DNS。

回到Cobalt Strike開啟beacons管理器發現有一個服務端響應了我們

enter image description here

右鍵是管理選單,選擇sleep設定相應的時間,然後選擇interact來到操作介面

enter image description here

首先來設定的是傳輸的模式,有dns、dns-txt,http,smb四種,我們這裡用的是DNS就在dns、dns-txt中選擇把,前者傳送的資料小後者傳送的資料多 這裡我設定為 mode dns-txt(這裡可以用TAB補齊命令的)

enter image description here

鍵入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  獲取當前使用者

enter image description here

Execute 執行可執行程式(不能執行shell命令)

Shell  執行shell命令

enter image description here

Meterpreter  返回一個meterpreter會話

剩下的命令就等大家自己去看吧。

這東西好處在於比較對控制目標主機比較隱蔽,缺點在每次的命令我返回結果比較慢,在過防火牆方面還是不錯的。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章