關于MoveKit
MoveKit是一款功能強大的Cobalt Strike橫向滲透套件,本質上來說MoveKit是一個Cobalt Strike擴展,它利用的是SharpMove和SharpRDP .NET程序集的execute_assembly函數實現其功能,攻擊腳本能夠通過讀取指定類型的模板文件來處理Payload創建任務。
Cobalt Strike
Cobalt Strike是一款美國Red Team開發的滲透測試神器,常被業界人稱為CS。
最近這個工具大火,成為了滲透測試中不可缺少的利器。其擁有多種協議主機上線方式,集成了提權,憑據導出,端口轉發,socket代理,office攻擊,文件捆綁,釣魚等功能。同時,Cobalt Strike還可以調用Mimikatz等其他知名工具,因此廣受黑客喜愛。
腳本運行機制
在使用該腳本的過程中,用戶僅需要加載MoveKit.cna腳本即可,它將加載所有其他的所需腳本。除此之外,用戶可能還需要對代碼進行編譯,并存放至Assemblies目錄中,具體取決于SharpMove和SharpRDP程序集所要采取的行為。最后,某些文件移動操作可能需要動態編譯,這里將需要用到Mono。
在加載腳本時,會有一個名為Move的選擇器被加載進menubar中,這里將給用戶提供多個可用選項。首先,用戶需要選擇一個在遠程系統上執行的命令,命令將通過WMI、DCOM、計劃任務、RDP或SCM執行。接下來,腳本將會通過Command命令執行機制來獲取執行文件。然后,使用File方法將文件存儲至目標系統并執行它。這里所使用到的“Write File Only”只會對數據進行移動。最后,工具會使用默認配置和信標命令進行操作。
在使用信標命令時,它將讀取默認配置,并使用幾個命令行參數。信標命令樣本如下:
move-msbuild 192.168.1.1 http move.csproj
自定義預構建信標命令則有些許不同,命令樣本為:
move-pre-custom-file <target> <local-file> <remote-filename> move-pre-custom-file computer001.local /root/payload.exe legit.exe
對于上面的位置字段,當選擇WMI方法時會用到,如果選擇的是SMB,則無需使用該字段。Location字段接受三個不同的值,第一個是Cobalt Strile Web服務器的URL地址,第二個則是待上傳文件的遠程目標系統的Windows目錄路徑,第三則是一個存儲事件寫入的Linux路徑或“local”單詞。
腳本將會針對所有的文件方法創建Payload,但是,如果Payload已經在之前創建好了的話,腳本只會移動或執行它。
支持的橫向滲透技術
MoveKit包含了各種不同的橫向滲透技術、執行觸發器和Payload類型。
文件移動指的是獲取文件或將文件移動到遠程主機所使用的方法:
SMB to flat file WMI to flat file WMI to Registry Key Value WMI to Custom WMI Class property
命令觸發器指的是觸發在遠程主機上執行命令的方法:
WMI SCM RDP DCOM 計劃任務 修改計劃任務 修改服務路徑
Shellcode執行:
Excel 4.0 DCOM WMI事件描述
劫持攻擊:
服務DLL劫持 DCOM服務器劫持
工具下載
廣大研究人員可以使用下列命令將該工具源碼克隆至本地:
git clone https://github.com/0xthirteen/MoveKit.git
依賴組件
需要使用Mono(MCS)編譯.NET程序集。
項目地址
https://github.com/0xthirteen/MoveKit
一顆小胡椒
安全牛
LemonSec
一顆小胡椒
安全圈
E安全
系統安全運維
betasec
FreeBuf
系統安全運維
一顆小胡椒
一顆小胡椒