前言
![38e9c60eabd4e8a7f25da1c05fe53e3c.png](https://i-blog.csdnimg.cn/blog_migrate/f3166d91ea52892fbdb56d0eefbab980.jpeg)
在这篇文章中,我们将讨论UAC(用户帐户控制)绕过攻击中涉及到的基本原则。UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员密码。
UAC在Windows Vista中被引入,使管理员用户能够使用标准用户权限而不是管理权限来对计算机进行操作。默认情况下,Windows上的初始用户帐户是管理员组的一部分,这只是一个简单的要求。正是因为这样,回到之前(Vista时代之前),开发人员倾向于用户具有本地管理员权限,在开发他们的应用程序时需要提升权限。对此,官方的说法是UAC的引入是作为遏制这种行为并提供向后兼容性的方法。
尽管如此,UAC的直接好处是保护或提醒管理员用户免受软件组件执行的恶意提权行为。我认为UAC实际上是一个非常熟练的安全机制(如果我们忘记普遍存在的dll侧面加载问题),任谁想争辩说,这只需要看看一些先进的恶意软件工具包或者如Metasploit/Cobalt Strike等开源框架,其中包括了绕过UAC的机制。此外,我们不要忘记微软已经修补了一大堆绕过漏洞,例如使用WUSA提取CAB文件到一个特定的路径。无法实现可信的侧面加载修复,如果实现了将会大大提高终端用户的安全。
无论如何,UAC总是引发激烈的辩论,所以我不会再谈论这个问题。让我们挖掘一下这个“兼容性”功能的漏洞。
资源
- Bypass-UAC (@FuzzySec)
- UACME (@hFireF0X)
- Bypassing Windows User Account Control (UAC) and ways of mitigation (@ParvezGHH)
- Fileless”UAC Bypass Using eventvwr.exe and Registry Hijacking (@enigma0x3)
- Bypassing UAC on Windows 10 using Disk Cleanup (@enigma0x3)
- Bypassing User Account Control (UAC) using TpmInit (@Cneelis)
- Inside Windows 7 User Account Control (Microsoft Technet)
- Inside Windows Vista User Account Control (Microsoft Technet)
- User Account Control (MSDN)
自动提升
这里要理解的主要事情是,当进程正常启动而不是提升特权时,管理用户创建的进程令牌被剥夺了某些特权(例如:作为管理员运行..)。我们可以通过使用Get-TokenPrivs或Sysinternals过程资源管理器转储令牌权限来轻松地验证这一点。下面的屏幕截图显示了“cmd.exe”的两个实例,一个正常启动,一个作为管理员启动。
![f65d191700b5b8e1eb73f0048c11c87b.png](https://i-blog.csdnimg.cn/blog_migrate/733e627309c4c4475779879138b42ca3.jpeg)
从本质上说是属于管理员组的用户以与其他用户相同的权限管理其计算机。那么,高权限用户和低权限用户之间有什么区别