你應該知道的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](https://i.iter01.com/images/1094597f22f652b0cb1b84e9419cd914633b72be3e0bb56372a85e8be1476dc2.png)
可以看到,更新日誌提到Web Delivery
攻擊方式,在使用64
位的payload
的時候,使用的是stageless
攻擊方式,而regsvr32
攻擊方式同時被去掉了,因為不能注入完整的payload,同時,作者在影片中提到,在cs4.0
中將會大大使用stageless
,很少會使用stager
.
2.移除媒介自動播放攻擊
![圖2 Removed Windows-Dropper attack](https://i.iter01.com/images/4e6488062b7836ddebe36340424e6b5e3211275eb5ca52dfdd505a7a7d8ff755.png)
3.新增jump橫向移動命令
其實就是把以前psexec
,wmi
等的整合到一個模組裡,並且,當使用psexec_psh
進行橫向的時候會使用stager
,其他方式均為stageless
![圖3 Added Jump command](https://i.iter01.com/images/cc8b4bc9b6c23acb25709315888dd69294468934c24393de30d22e01d6938211.png)
4.No Powershell 偏好
![圖4 More inject was no powershell](https://i.iter01.com/images/e9c943968df278762abfb30da25fd8f98370980c26ee196d795d200ec7220d37.png)
5.提權新成員:SVC-exe和runasadmin
svc-exe
其實就是在本地執行psexec
(作者吐槽)
![圖5 Svc-exe added in elevate kit](https://i.iter01.com/images/43c0f0df679670a82182fdd956bbd10bbe66d6eba26c52bdf50ac68dc3c67419.png)
![圖6 Runasadmin also is elevate tool](https://i.iter01.com/images/80a51bdd65dbf4d5b6e967628daf888ec9d176017548f602ad6e595d66fbea71.png)
6.同時移除了ms14-058 exp 和uac-dll提權方式
![圖7:Remove ms14-058](https://i.iter01.com/images/3325b6db4c9bfdcd34a4c6f39468f262b0b485a5b6a62cd07b272e10d27f7d3d.png)
![圖8:Remove uac-dll](https://i.iter01.com/images/b2faeffd09a4f46affcfa50022d2fe1df66e8161867b519b036a210842dc1ad7.png)
7.重大更新:Listener
http/https/dns
均支援一個payload
填寫多個ip或者域名,相當於把多個相同payload的listener
整合到一起,並且支援填入C2
引數以及代理引數
a.https/http listener:
![圖9:Https Beacon info](https://i.iter01.com/images/e99fdb4e7c4e1c492abb3a02bd355d326c7eaf2eb44deef7b70e6945a6587208.png)
細心的同學可能發現,下面新的選項是用來幹啥的,因為在cs4.0中,對C2攻擊方式進行了最佳化,你可以在profile選擇你在外部匯入進去的c2 profile,然後修改HTTPS Port(bind)的埠為你C2 伺服器的埠(我也不是很懂,如果有誤的話,大佬們請指正,以免誤人子弟)
b.Dns listener:
![圖10 Dns Beacon info](https://i.iter01.com/images/5574c0746e67f8a8f07642b14ef6cfbe5cdcf68c1534f11ce3a451f22c60c55d.png)
c.External C2 Listener:
![圖11 External C2 listener](https://i.iter01.com/images/2904ef187eba6b1bfacdd9532a0d5060f33fc8d5ffc826729f8f8551358e6745.png)
三.看完了cs4.0的新特性,接下來開始實踐一下吧
首先,先新建一個listener,在這裡,你可以填寫你cs伺服器的公網IPv4,內網IPv4,IPv6(IPv6要用中括號,例[240c::6666]),以及你CS伺服器的域名,我在這裡填入了我kali
的ipv4
和ipv6
![圖12 Create a listener by using Beacon https payload](https://i.iter01.com/images/f8efe35bec293a896962ede53b3937ed82b6f8ae71c3846bb9d09008d737300e.png)
這裡的HTTPS Port (C2)就是上線埠
1.生成木馬並執行
我這邊直接生成了一個stageless
的木馬(不熟悉的話可以去看啊離上一篇文章)
生成的木馬丟上去靶機執行然後等一小會(順帶一提:不知道是不是出於某種原因,cs
直接生成的馬,免殺並沒有效果)
2.上線
因為我靶機有ipv6
,所以beacon
的ip
也會顯示ipv6
,同時,因為也有ipv4
,所以也會顯示ipv4
(意思為使用不同的協議的ip
進行同時互動)
![圖13 Beacon in ipv6](https://i.iter01.com/images/b3844ecdbf65527b348d55d83c758f1b65ae58b5bfbbc643c6bf9778befb0061.png)
![圖14 Beacon in ipv4](https://i.iter01.com/images/cfa34a4eff88aef05a4d9d286c303d7c5d2b177ea8d153642c71ef2691145a79.png)
3.介面變化
同時CS4.0
改了介面,可以顯示當前的beacon程式,PID,系統位數
![圖15 Cobalt Strike 4.0 table view](https://i.iter01.com/images/14270af13cecd2738297de60c07ce1ed34b081810114a72ccbc38ff93a656894.png)
4.提權變化
正如我上面提到,CS4.0
版本已經移除了uac-dll
和ms14-058
提權方式,同時bypassuac
命令被移除
![圖16 Elevate module](https://i.iter01.com/images/0273a3af93d11217f27806ead18fd94fa302c49cc76c738bc4d897c1afdfcbff.png)
為了做實驗,我生成了一個名為Priv Esc
的listener
(payload:tcp beacon)(建議勾選Bind to localhost only)
為什麼要勾選呢?作者的話:(反正就是勾選就對了)
![](https://i.iter01.com/images/0369f4df0f195cb24af638cf1796938158380c1569d5ef0274c1a9d1d671249d.png)
![圖18 Create a listener for privilege escalation](https://i.iter01.com/images/5b1544603ef162c41e39d5125a705549b37fab70c85613c7d9a7d476e73d0b89.png)
a.UAC-token-duplication(UAC口令複製提權)
會在主機彈出一個UAC
框去欺騙管理員輸入密碼,可能是因為域的原因,即使輸入了也會提權失敗,但是沒關係,因為已經密碼記錄在記憶體中了,我們只需要本地提權並使用mimikatz
讀取密碼
【按照實際情況來說,其實輸入本地管理員口令的更多,這裡我為了演示,在UAC彈窗中輸入了域管理員口令】
UAC框框
![圖19 UAC](https://i.iter01.com/images/abcc602f424774cd81af81fcb38f5d86e8a2959550f5f5bcc90ee60fc62918e4.png)
failed,but the password was logged in memory
![圖20 Failed when users was domain user](https://i.iter01.com/images/731644818bc5e46256751eecac221c0270f399a6f654628e6985b8a500c4202c.png)
b.svc-exe
svc-exe
這個引數,並不是和exp
提權那樣,幫你從普通使用者 ”pwn!!“ 一下子拿下系統,而是當管理員許可權滿足不了你的時候,可以用svc-exe
進行提升(類似getsystem
命令,但是getsystem
不太好使)
使用例如下情況:
![圖21 A administrator privilege Beacon](https://i.iter01.com/images/4120ea4124d24ed6c994e3a9c812410e56643ae8975ffe9eb9cd788fbf4a4aa6.png)
svc-exe priv esc:
![圖22 Use Svc-exe to privilege escalation](https://i.iter01.com/images/b269713b468cd1d48be92df1f4c9177abe43f5fe36640c6aaf89b13623cb1a72.png)
![圖23 Connected to system privilege beacon](https://i.iter01.com/images/b74b15fbba292fa3afc256907534f4676c4b5b3db072672a731c93366a554350.png)
c.EXP 本地提權
因為現在是域使用者,又又又又只能用exp本地提權了,因為作者已經在cs4.0中刪除了exp,但是你可以透過GitHub
去clone
作者的【Elevate Kit】專案,然後在cs
載入模組
cs作者的專案:https://github.com/rsmudge/ElevateKit
![圖24 Imported elevate kit for privilege escalation](https://i.iter01.com/images/9dddd50315e1d5d877a952d9a0bb6f4498c23425bf8c2546fefcaf8153285a26.png)
d.runasadmin 提權模組(後面會用到)
![圖25 Runasadmin module](https://i.iter01.com/images/5967823bbab8f0e346c6d8120486902c1518e24e1cf13103b803a68c6182859e.png)
5.Recon 部分更新
a.Net模組新增倆引數
(a).net domain
![圖26 net domain command](https://i.iter01.com/images/a58c14e70bc88c9b9ded657a8185fcb3375ccea3b21e8b78eda28f758ea0fad2.png)
(b).net domain_controllers
![圖27 net domain_controllers command](https://i.iter01.com/images/e1c6a2a6b112b1bc2043499e182f47cc44949e400a80eaa0b8b44b998cb4fe0b.png)
可以看到,計算機名為DC的就是域控,接下來可以鞭撻它了
b.橫向移動改進
exp提權,然後抓密碼(此處密碼為剛剛UAC釣到的域管理員明文密碼)
![圖28 Logonpassword after privilege escalation](https://i.iter01.com/images/b5040c67087e31aa8aa73a044a0ec14ceac8468388051d90363dbe7551e9f40a.png)
(a).SMB Beacon改進
生成一個用於橫向移動的listener,取名為LM,並使用SMB Beacon payload,可以看到,SMB Beacon支援自定義pipe name了
![圖29 SMB Beacon now support custom pipename](https://i.iter01.com/images/24b13738fb0d7ae295b320c71ff5976aec29aca2b44bc2f290ef9d02c58d9fc6.png)
有點小夥伴要問了,為什麼在舊版的cs中沒有這個呢?其實,舊版cs中的pipe name是[status_埠號]
![圖30 Create a listener for Lateral Movement](https://i.iter01.com/images/ff5890c4aa2169942b93cac7cb14c331f94891af86d94e6009a7656ee760dbd6.png)
如圖,舊版cs的pipe name則為status_6001
(b).jump命令
jump
命令本質上就是把原來零散的psexec,psexec64,psexec_psh,winrm,winrm64整合到一個套件裡(wmi已經移除)
How to use
![圖31 Help of jump command](https://i.iter01.com/images/35ab129d537a65ad3b28b29a0fff39538854523c6eb4ba6ce42453b895885303.png)
Lateral Movement kits in jump command
![圖32 Lateral Movement tookit in jump command](https://i.iter01.com/images/2b3fc86998fdbfde3f98c22d889b0c03acfbac51c0565f5cf121e8320d932149.png)
老樣子,呼叫剛剛抓到的域憑據
make_token de1ay.com\Administrator 1qaz@WSX
![圖33 Use make_token command to impersonal credential](https://i.iter01.com/images/b38d1c1dbac2217ee0b001b55cd7ca85b67d7505b2097687f99c7cfad58b7a77.png)
使用jump
命令進行橫向
jump psexec DC LM
![圖34 Use jump command lateral movement to DC](https://i.iter01.com/images/e4f1a43184c0445c5d302640430818cca3fc6bedd219e7da68905419881f376b.png)
DC Beacon Online
![圖35 Connected to DC through smb beacon](https://i.iter01.com/images/18de4df857ddcc648fc7e0067ecddda0f65f9d0a9c58cb00c1fc7933b9b3f366.png)
(c).remote-exec 命令
可以選擇以下三個套件進行遠端命令執行
![圖36 Remote-exec module](https://i.iter01.com/images/d11828c0daa4e2a9dbeaac18ea90e05bd2e2e32e2daef498f601a8ceeb62be8d.png)
remote-exec wmi DC netsh advfirewall set allprofiles state off (當然,和上面一樣,也要先呼叫憑據)
![圖37 Use remote-exec to disable firewall on DC](https://i.iter01.com/images/e1a2a4b164bd0a906e2ebb8a71e3fa8ab6f6748ee08b935aca9f57a074c5e43b.png)
(d).Invoke-Command(個人補充)
補充:在CS
中,可以使用powershell-import
匯入ps1
指令碼,然後使用powerpick
去執行指令碼的模組
![圖38 You can use powershell-import command to import module](https://i.iter01.com/images/e0878098f831b40e07999acfd18d6e8766829446a2862b5f931934363d7aa7fc.png)
其實可以使用系統自帶的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](https://i.iter01.com/images/5d0f5b5f13b43af70541bb3636cc40cfab6ce59bd8f1b55a849ea1863a20c85f.png)
c.One-liner
oneliner
其實就是生成一段在目標beacon
本地執行的payload
,你可以用它在目標beacon中進行花樣玩耍,配合的方式有很多種,如:runas,runu,runasadmin,psinject
(a).oneliner配合runasadmin進行提權
在cs
中,只有當前使用者名稱為administrator
的管理員使用者,cs
才會自動提權,當使用者名稱為別的管理員,cs
並不會自動提權,例如以下情況:
![圖40 Show current user groups](https://i.iter01.com/images/2086a15b83ea7f5dd333aaa8b0a87d283d0f6ce19519cb55cf04ecb6a435ae29.png)
可以看到,xiaoli
這個使用者是本地管理員,可是cs
沒有幫我們提權
抓密碼提示許可權不足
![圖41 Privilege less when logonpasswords](https://i.iter01.com/images/b5cf30e6dad504e94a83d97eee95418299719b9daab4ab01b33bd83bc7e9b00d.png)
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](https://i.iter01.com/images/51a2e21a7988ab365bce03ed62613316b4cced869d82d9f718519de49b726dc2.png)
![](https://i.iter01.com/images/8e2d0efa5a7c45dfdc1e555eabccbcf0a45137370f9f4fe62505edc4660e0715.png)
runasadmin uac-wscript + oneliner
![圖44 Use runasadmin to privilege escalation](https://i.iter01.com/images/a510eeb49cb1e2d3e4f224f4a1b4276d97fb7c8935e648f91334570f4e876777.png)
執行完它並不會自動連線,需要去手動連線
connect 127.0.0.1
![圖45 Connect to beacon](https://i.iter01.com/images/b719d99a7610f2f00b6d7e26ad3c69675bb7531eb96fb147962663c2d2c018a6.png)
![](https://i.iter01.com/images/025139be91f36ec42a42372aa401beaa795b89492640848b0b21040eb947d423.png)
重新logonpassword
![圖47 Re logonpasswords](https://i.iter01.com/images/840bf8ee9776c2e73d57e9635030ea7eccffa4540acc08b9bc0596f9e66ffcc1.png)
(b).One-liner 配合runas生成一個指定使用者的許可權
在這裡的話,也是看beacon的arch生成oneliner,同上
runas DE1AY\Administrator 1qaz@WSX + oneliner 注:runas在system許可權的beacon執行會失敗
![圖48 Runas with oneliner](https://i.iter01.com/images/8722f32a7ebd7ad594944501b788b424bf18cdf7242290efee57338549f61056.png)
connect 127.0.0.1
![圖49 Connect to beacon](https://i.iter01.com/images/c547a8f23f79c535bc090a3edd8c398dcaa96ced127deaa515fd02efa4ff7951.png)
![](https://i.iter01.com/images/7496e4e02842d2fe5a65db26331f3a8920db990d61c4ce7e6522f40c22a0237b.png)
(c).One-liner 配合runu在指定程式執行命令
在這裡的話,是看目標程式的arch生成oneliner,我的目標程式是64位,所以生成x64和x86的payload都可以,x86程式則只能生成x86 payload
runu 460 + oneliner 這邊選擇了一個pid為460的程式
![圖51 Runu command with oneliner](https://i.iter01.com/images/a8f6c31aa876ffcdfd0fc069fbdbdcb191c2405d1cea7a9fa3f7cfa72244aa9b.png)
connect 127.0.0.1
![圖52 Connect to beacon](https://i.iter01.com/images/5a6cef3fd7db42773e1fddaa6b901bcbaaa035592ebcff4f42c7c248e53e8cdb.png)
![](https://i.iter01.com/images/3ef64104e618d9aad0bfa1ba5db7c11a8475f7d9654707a528f49160042a099c.png)
同時看到該beacon的父程式就是我們剛剛所指定的
![圖54 Created a child session base on PPID 460](https://i.iter01.com/images/bd8a84549df84ef11f7dbea8e2596d5b0d756a8040bd8b1aeb3976a40a10e0b8.png)
(d).Psinject使用one-liner payload注入程式
在psinject這裡,x64程式可以注入x86/x64的payload,x86程式只能注入x86
![圖55 Choose a process for target](https://i.iter01.com/images/022a655160e2dbe530532a9e160e735596245cd8278412e18b245757d60c7c44.png)
psinject 2784 x64 + oneliner
![圖56 Inject powershell payload with psinject](https://i.iter01.com/images/bdb368879ccd3891a089c45a77259fd5827b1013a7747783f8316bd0c6b28102.png)
connect 127.0.0.1
![圖57 Connect to beacon](https://i.iter01.com/images/36c0527dd8fa21a12a86acef9050a379a4ab630172c9ffd61a0fdff2b0618f64.png)
connected
![](https://i.iter01.com/images/48421fe2e6cc609db529ebbcc954d4ca3973a80674319eed3b116a63b9bd457a.png)
當然,還有更多的姿勢等你來解鎖~
d.Link / Connect and unlink
link
支援指定pipe name
,connect
支援指定埠,unlink
支援指定pid
號,其目的是為了可以更好管理多個smb beacon listener
與tcp beacon listener
link ip pipe_name(圖中因為沒有111這個pipe name,連不上就報錯了)
![圖60 Link to a beacon through assign pipename](https://i.iter01.com/images/ad18a2c83bf3952f2e856c82e1974ef17924e1fc2eb96b1d2ac183b9abf746d0.png)
connect ip port
![圖61 Connect to tcp beacon through assign port](https://i.iter01.com/images/8f1eaa1222de955a42ed84060425e9875de592abe7b1e63aa6e621ecbeb4cf07.png)
unlink ip pid
![圖62 Unlink beacon through assign process](https://i.iter01.com/images/8da5b2bab3515b54be338132471d11e0b809e361e8c45111fc8bac1ce0871bd2.png)
四.總結
作為一名有職業道德的伸手黨,要時刻記得吃水不忘挖井人的道理,所以在這裡要非常感謝WBGlIl大大
![圖片描述](https://i.iter01.com/images/d8e04c1e7318e7e6e92daff8c89a6bbc433906ccb8a325a91ddbb336285759c0.png)
(對,沒錯,認準這隻熊)提供的破解版,以及Yansu大大提供的二次元版
![圖63 cs二次元版作者大大](https://i.iter01.com/images/010a8d9159afd810d9b48c69ff8ad0f4619744f33c0189f963cffde5b307412b.png)
問答環節:
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即可獲取下載連結
![圖片描述](https://i.iter01.com/images/37dacd22022ce8a2ffe080941fe375e9bde7ed639f88de6714477a2b757cd0b9.png)