<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    原文地址:http://drops.wooyun.org/tools/1475

    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會話
    

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

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

    97av