CS系列(一):Cobalt Strike初體驗


0X01 環境准備

Cobalt Strike安裝包

Cobalt Strike服務端:kali(不限於kali,但需要時Linux系統)

Cobalt Strike客戶端:Windows 7

0X02 Cobalt Strike介紹

​ Cobalt Strike是一款美國 Red Team 開發的滲透測試平台,大佬們都稱之為 "CS " (后面為了描(tou)述(lan),也沿用此稱謂)。

​ CS 以Metasploit為基礎,集成了掃描、端口轉發、提權、Socket代理、木馬生成、文件捆綁、網站克隆、多模式端口監聽、自動化溢出、釣魚攻擊等強大的功能,該工具幾乎覆蓋了APT攻擊鏈中所需要用到的各個技術環節。

​ CS的強大主要用於大型APT組織的團隊作戰,采用C/S架構,能讓各個地方的團隊成員同時連接到團隊服務器,共享信息資源和攻擊成果,可謂是團隊作戰的神兵利器,因其強大的功能和靈活的架構,已成為各大APT組織的首選。

​ CS這么好用,其實是一款需要付費的項目,價格也不高(๑乛◡乛๑),3500刀/年,支持正版的小伙伴出門右拐:

​ CS項目官網地址:https://www.cobaltstrike.com

Cobalt Strike文件結構

​ 這里使用的是CS 3.14版本,下載Cobalt Strike之后,其文件結構如下所示:

部分文件解釋說明:

│  agscript 		拓展應用的腳本
│  c2lint  			檢查profile的錯誤異常
│  cobaltstrike
│  cobaltstrike.jar 客戶端程序
│  icon.jpg			圖標
│  license.pdf		許可證文件
│  readme.txt
│  releasenotes.txt
│  teamserver  		服務端程序
│  update
│  update.jar		更新程序
│
└─third-party 第三方工具
     README.vncdll.txt
     vncdll.x64.dll
     vncdll.x86.dll
 

0X03 Cobalt Strike服務端安裝

​ 將CS文件夾拷貝到Linux主機下,這里需要注意一下,需要提前安裝 java 環境,我這里是kali,已經集成了 openjdk 環境。

切到CS目錄下,服務端安裝使用teamserver腳本文件:

接下來直接運行腳本配置團隊服務器IP與密碼即可:

./teamserver 服務器IP 密碼

到這里,CS服務端的搭建就完成了,so easy!!!

0X04 客戶端上線

​ 將CS文件夾拷貝到windows機器下,運行“cobaltstrike.exe”文件:

運行后會彈出一個框,輸入我們前面搭建好的團隊服務器 IP 地址,默認端口50050,不用設置,用戶名隨意,密碼也是前面配置團隊服務器用到的密碼,然后點擊“Connect”連接服務器:

首次連接會提示校驗服務端哈希,確認我們連接的服務器是自己團隊的,指紋信息應和配置團隊服務器后生成的哈希值相同。

至此,我們就完成了CS的服務端部署和客戶端上線:

0X05 主要功能說明

(1)Listeners

​ 使用CS時需要先創建一個Listerer(監聽器),可以理解為用來監視我們的目標主機,並接收目標主機權限的模塊。

​ 打開方式:點擊Cobalt Strike—>Listeners,或者點擊工具欄的耳機圖標。

然后點擊Add即可添加需要的Listeners了,Cobalt Strike 3.14 包括9種監聽方式:

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是CS自帶的模塊,包括dns、http、https、smb四種監聽方式;windows/foreign為外部監聽器,即msf或者Armitage的監聽器。

​ 選擇監聽器后,配置好主機IP和端口,然后保存,監聽器就創建完成了。

(2)Attacks

創建好了監聽器,就可以利用各種攻擊手段攻陷我們的目標了。CS包括多中攻擊方式.

Packages

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(釣魚攻擊)

Manage對開啟的web服務進行管理;
Clone Site 克隆網站,可以記錄受害者提交的數據;
Host File 提供一個文件下載,可以修改Mime信息;
Scriptes 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

​ 用於制作釣魚郵件攻擊。

(3)View

View模塊可以方便測試者查看各個模塊,圖形化的界面可以方便的看到受害者機器的各個信息。

Applications 顯示受害者機器的應用信息;
Credentials 顯示受害者機器的憑證信息,能更方便的進行后續滲透;
Downloads 文件下載;
Event Log 可以看到事件日志,清楚的看到系統的事件,並且團隊可以在這里聊天;
Keystrokes 查看鍵盤記錄;
Proxy Pivots 查看代理信息;
Screenshots 查看屏幕截圖;
Script Console 在這里可以加載各種腳本以增強功能,腳本地址戳我;
Targets 查看目標;
Web Log 查看web日志。

beacon

​ beacon為CS 內置監聽器,當我們在目標系統成功執行payload以后,會彈回一個beacon的shell給CS.

​ 我們也可以理解為beacon就是我們目標主機的shell,不管我們何種方式獲取shell后,就可以使用beacon,當目標主機上線后,右擊目標主機,點擊Interact,就打開了beacon:

​ 這里需要注意,beacon的命令和操作系統的shell不太一樣,比如cmd下查看IP信息用“ipconfig”命令,在beacon下則用“shell ipconfig”。

​ 可以在beacon下輸入“help”命令查看可以使用的命令:

Beacon>help

    Command                   Description
    -------                   -----------
    browserpivot              注入受害者瀏覽器進程
    bypassuac                 繞過UAC
    cancel                    取消正在進行的下載
    cd                        切換目錄
    checkin                   強制讓被控端回連一次
    clear                     清除beacon內部的任務隊列
    connect                   Connect to a Beacon peer over TCP
    covertvpn                 部署Covert VPN客戶端
    cp                        復制文件
    dcsync                    從DC中提取密碼哈希
    desktop                   遠程VNC
    dllinject                 反射DLL注入進程
    dllload                   使用LoadLibrary將DLL加載到進程中
    download                  下載文件
    downloads                 列出正在進行的文件下載
    drives                    列出目標盤符
    elevate                   嘗試提權
    execute                   在目標上執行程序(無輸出)
    execute-assembly          在目標上內存中執行本地.NET程序
    exit                      退出beacon			
    getprivs                  Enable system privileges on current token
    getsystem                 嘗試獲取SYSTEM權限
    getuid                    獲取用戶ID
    hashdump                  轉儲密碼哈希值
    help                      幫助
    inject                    在特定進程中生成會話
    jobkill                   殺死一個后台任務
    jobs                      列出后台任務
    kerberos_ccache_use       從ccache文件中導入票據應用於此會話
    kerberos_ticket_purge     清除當前會話的票據
    kerberos_ticket_use       從ticket文件中導入票據應用於此會話
    keylogger                 鍵盤記錄
    kill                      結束進程
    link                      Connect to a Beacon peer over a named pipe
    logonpasswords            使用mimikatz轉儲憑據和哈希值
    ls                        列出文件
    make_token                創建令牌以傳遞憑據
    mimikatz                  運行mimikatz
    mkdir                     創建一個目錄
    mode dns                  使用DNS A作為通信通道(僅限DNS beacon)
    mode dns-txt              使用DNS TXT作為通信通道(僅限D beacon)
    mode dns6                 使用DNS AAAA作為通信通道(僅限DNS beacon)
    mode http                 使用HTTP作為通信通道
    mv                        移動文件
    net                       net命令
    note                      備注       
    portscan                  進行端口掃描
    powerpick                 通過Unmanaged PowerShell執行命令
    powershell                通過powershell.exe執行命令
    powershell-import         導入powershell腳本
    ppid                      Set parent PID for spawned post-ex jobs
    ps                        顯示進程列表
    p**ec                    Use a service to spawn a session on a host
    p**ec_psh                Use PowerShell to spawn a session on a host
    psinject                  在特定進程中執行PowerShell命令
    pth                       使用Mimikatz進行傳遞哈希
    pwd                       當前目錄位置
    reg                       Query the registry
    rev2self                  恢復原始令牌
    rm                        刪除文件或文件夾
    rportfwd                  端口轉發
    run                       在目標上執行程序(返回輸出)
    runas                     以另一個用戶權限執行程序
    runasadmin                在高權限下執行程序
    runu                      Execute a program under another PID
    screenshot                屏幕截圖
    setenv                    設置環境變量
    shell                     cmd執行命令
    shinject                  將shellcode注入進程
    shspawn                   生成進程並將shellcode注入其中
    sleep                     設置睡眠延遲時間
    socks                     啟動SOCKS4代理
    socks stop                停止SOCKS4
    spawn                     Spawn a session 
    spawnas                   Spawn a session as another user
    spawnto                   Set executable to spawn processes into
    spawnu                    Spawn a session under another PID
    ssh                       使用ssh連接遠程主機
    ssh-key                   使用密鑰連接遠程主機
    steal_token               從進程中竊取令牌
    timestomp                 將一個文件時間戳應用到另一個文件
    unlink                    Disconnect from parent Beacon
    upload                    上傳文件
    wdigest                   使用mimikatz轉儲明文憑據
    winrm                     使用WinRM在主機上生成會話
    wmi                       使用WMI在主機上生成會話
    argue                     進程參數欺騙


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM