Cobaltstrike系列教程(三)beacon詳解


0x00--前文

有技術交流或滲透測試培訓需求的朋友歡迎聯系QQ/VX-547006660,需要代碼審計、滲透測試、紅藍對抗網絡安全相關業務可以看置頂博文

2000人網絡安全交流群,歡迎大佬們來玩
群號820783253

Cobaltstrike系列教程(一)簡介與安裝
[url]https://bbs.ichunqiu.com/thread-52937-1-1.html[/url]

Cobaltstrike系列教程(二)Listner與Payload生成
[url]https://bbs.ichunqiu.com/thread-52982-1-1.html[/url]

0x01-Beacon詳解

1.Beacon命令

大家通過系列教程(二)的學習,配置好Listner,讓目標機執行我們的Payload/后門程序后,即可發現目標機已經上線
eKZqk8.png
右鍵目標interact來使用Beacon,我們用它來執行各種命令
eKZOfg.png

※在Cobalt Strike中它的心跳默認是60s(即sleep時間為60s,每一分鍾目標主機與teamserver通信一次), 這會讓我們執行命令或進行其他操作響應很慢。。。
我剛開始沒設置sleep時間甚至以為是cobaltstrike壞了--||。如果sleep時間過長,在下載文件面前更為明顯,所以在測試時會把時間降低一點 。所以拿到beacon我一般先執行sleep 5,大家可以根據實戰環境來調節,建議不要太快,不然流量會很明顯。
eKmbRg.png
※注意:beacon中不能直接輸入cmd命令,比如要讓目標機執行ipconfig這條cmd命令,對應的beacon命令是shell ipconfig,新人不要在這里踩坑哈
其他的beacon命令,大家可以在beacon中輸入help來獲取~
我在這貼出一部分漢化的命令

Beacon Commands
    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                      進程參數欺騙

2.多種beacon

以下beacon使用前均需要開啟對應的Listener,Listener如何開啟請看上一節

①http beacon&tcp beacon

這兩種beacon都是比較普通的,個人感覺講解的意義不是很大。只不過是主機與teamserver的通信協議不同而已。
eKZHTf.png

②SMB beacon

1.簡介

官網介紹:SMB Beacon使用命名管道通過父級Beacon進行通訊,當兩個Beacons鏈接后,子Beacon從父Beacon獲取到任務並發送。
因為鏈接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB Beacon相對隱蔽,繞防火牆時可能發揮奇效。
這張圖很好的詮釋了SMB beacon的工作流程
eKZLtS.png

②smb beacon使用

※這種beacon要求具有SMB Beacon的主機必須接受端口445上的連接.
派生一個SMB Beacon方法:在Listner生成SMB Beacon>目標主機>右鍵> spawn as>選中對應的Listener>上線
或在beacon中使用命令spawn smb(smb為我的smb listener名字)
eKZjpQ.png
eKZvlj.png

運行成功后外部可以看到∞∞這個字符,這就是派生的SMB Beacon。
當前是連接狀態,你可以Beacon上用link 命令鏈接他或者unlink 命令斷開它。
eKZx6s.png

這種beacon在內網橫向滲透中運用的很多,橫向滲透留到日后再講。在內網環境中可以使用ipc $生成的SMB Beacon上傳到目標主機執行,但是目標主機並不會直接上線的,需要我們自己用鏈接命令(link )去連接他。

③DNS Beacon

DNS Beacon 在繞過防火牆 權限維持上非常有效,DNS beacon 可謂是是最受歡迎的Cobalt Strike功能之一。 官網給出的原理示意圖如下
eKZ70P.png
使用DNS Beacon首先的有一個域名,域名建議用國外的,省去一些不必要的麻煩,也防止被查水表。。。域名使用一些通用平常的即可,整個配置過程配置非常簡單一條A記錄和幾條NS記錄即可

首先進入到域名管理界面(自己的域名過期了,用一下404師傅的圖)
配置A記錄指向服務器ip -->ns記錄都指向A記錄域名
eKZ56A.png

配置好了我們可以用 nslookup 或者 dig +trace 來測試下 是否成功
eKZ4ld.png
如果返回的IP地址與你的服務器ip地址對應是正確的,那我們就可以開始配置dns beacon的監聽器了
eKuqDs.png

Host那里最好填域名(A記錄解析那個),不要填服務器的ip地址
eKZhSH.png
然后確定填上ns記錄 英文逗號隔開 ,然后生成后門測試效果
eKubuj.png
這是主機欄上出現了一個黑屏的logo,經過一段時間的等待,目標主機即可上線。

④SSH beacon

當內網有Linux時Cobalt Strike也是考慮到的提供了ssh連接,大家可以通過metasploit爆破內網的ssh賬號密碼,然后用目標機的beacon去連接就可以了。
目前有兩種SSH Beacon連接方法
1.密碼直接連接
Beacon命令: ssh [target:port] [user] [pass]
2.ssh密匙連接
ssh [target:port] [user] [/path/to/key.pem]
鏈接成功后,如圖會出現一個子beacon
eKZIOI.png


免責聲明!

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



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