利用fodhelper.exe实现无文件Bypass UAC

简介: 本文讲的是利用fodhelper.exe实现无文件Bypass UAC,恶意软件作者拥有一个新的Bypass UAC技术,可用于在运行Windows 10的设备上安装恶意应用程序。发现这种新的Bypass UAC方法是德国学生,以Christian B.的名义发布。
本文讲的是 利用fodhelper.exe实现无文件Bypass UAC恶意软件作者拥有一个新的Bypass UAC技术,可用于在运行Windows 10的设备上安装恶意应用程序。发现这种新的Bypass UAC方法是德国学生,以Christian B.的名义发布。他提出的Bypass UAC技术类似安全研究员Matt Nelson于 2016年8月 发现的方法。

当Nelson的方法使用内置的事件查看器实用程序(eventvwr.exe)时,Christian的UAC旁路使用fodhelper.exe文件,位于:C:\\Windows\System32\fodhelper.exe

Fodhelper.exe在Windows 10中引入,它位于“C:\\Windows\System32\fodhelper.exe”,如果这个文件名不熟悉,这是在“应用程序和功能”Windows设置屏幕中按“管理可选功能”选项时出现的窗口。

利用fodhelper.exe实现无文件Bypass UAC

ventvwr.exe和fodhelper.exe都是一个值得信赖的二进制文件,(使用Microsoft证书签名的文件)并位于受信任的位置(如“ C:\\ Windows \ System32 “)。您可以使用名为“sigcheck”的工具检查文件的签名,该工具是Sysinternal套件的一部分。

利用fodhelper.exe实现无文件Bypass UAC

如上图所示,该程序允许自动升级,不需要任何用户交互来允许进程升级。这意味着如果我们能够篡改二进制文件的行为来加载我们选择的文件,那么该文件也可能在高权限下启动。

如何调查文件的行为来找到具体的攻击矢量?=>进程监视器!

过程监视器是Mark Russinovich编写的另一个工具,它也是Sysinternals套件的一部分。或者,您可以在此处下载进程监视器。

当启动fodhelper.exe的启动时,进程监视器开始捕获进程,并显示注册表和文件系统读写操作。其中一个有趣的操作是对注册表的读取访问,尽管没有找到某些特定的键或值。特别是HKEY_CURRENT_USER中的注册表项很好,可以测试在创建尚未存在的注册表项后程序的行为可能如何更改,因为我们不需要特殊的权限来修改条目。

例如,fodhelper.exe正在寻找“HKCU:\Software\Classes\ms-settings\shell\open\command”。默认情况下,此密钥在Windows 10中不存在。

利用fodhelper.exe实现无文件Bypass UAC

过程监视器输出:HKCU:\Software\Classes\ms-settings\shell\opencommand – NAME NOT FOUND

在创建密钥后:“HKCU:\Software\Classes\ms-settings\shell\opencommand”,fodhelper.exe会找到它,并将开始查找值:“HKCU:\Software\Classes\ms-settings\shell\open\command\DelegateExecute”,它不会寻找,如果提到的键不存在。一旦值“DelegateExecute”存在,它也将被发现,即使它是空的。

利用fodhelper.exe实现无文件Bypass UAC

创建值“DelegateExecute”后,fodhelper.exe将在“HKCU:\ Software \ Classes  \ms-settings  shell \ open  \command ”中查找默认值。

利用fodhelper.exe实现无文件Bypass UAC

UAC_bypass_third

过程监视器的输出:HKCU:\Software\Classes\ms-settings\shell\open\command(默认)- NAME NOT FOUND

这个值是关键点。注册表值“shell\open\command(默认)”使我们能够向程序提供程序打开时该怎么做的其他说明。

在这种情况下,我将“shell\open\command\(默认)”的值设置为:“C:\\Windows\System32\cmd.exe / c powershell.exe”。在此修改后,fodhelper.exe将查找(默认)值,并按照说明如何在进程开始之后执行操作。=>启动cmd.exe启动powershell.exe(只是检查是否可以将参数传递给cmd.exe)

利用fodhelper.exe实现无文件Bypass UAC

如您所见,fodhelper.exe读取(默认)-value并使用提供的参数启动cmd.exe。

利用fodhelper.exe实现无文件Bypass UAC

进程监视器的输出:进程启动 – cmd.exe

结果是在高权限中启动cmd.exe,并启动powershell.exe。在下面的图片中,您可以看到这个概念证明所需的确切的注册表结构以及作为管理员启动的cmd.exe。

利用fodhelper.exe实现无文件Bypass UAC

为了演示此漏洞,我在Github上创建并发布了一个脚本,它将创建注册表项,打开"C:\\Windows\System32\cmd.exe/c powershell.exe",并删除注册表项。

该技术基于Matt Nelson(https://enigma0x3.net/)发现的类似缺陷,具有以下优点:

1.没有必要在磁盘上放置一个文件。

2.没有必要劫持任何.dll文件

3.不需要对可能会提示防病毒软件的操作系统发生任何可疑的操作。

缓解方式:

1.如果不需要,请不要使用本地管理员帐户。受限用户无法执行并提升此类程序。

2.将UAC级别设置为“始终通知”,这将导致需要用户接受的提示。




原文发布时间为:2017年6月8日
本文作者:愣娃
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
1月前
|
Windows
Windows 命令提示符(CMD)操作(一):文件和目录管理
Windows 命令提示符(CMD)操作(一):文件和目录管理
40 0
|
2月前
|
数据安全/隐私保护 Windows
windows密码获取 -- mimikatz
windows密码获取 -- mimikatz
70 0
|
Windows
powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题
powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题
1457 0
|
搜索推荐 Shell
Win10小技巧:将在此处打开命令改为CMD或Powershell
微软的 CMD 也就是命令提示符已经伴随了我们很多年了,这些年来 CMD 已经勤勤恳恳地默默工作着,虽然没有图形化的界面,但是其干净整洁的操作环境仍然受到了大家的欢迎。
422 0
Win10小技巧:将在此处打开命令改为CMD或Powershell
|
数据安全/隐私保护 Windows
运行control userpasswords2实现winXP自动登录
原文:运行control userpasswords2实现winXP自动登录       如果你的计算机只是自己一人在用,且每次都用同一个用户名(或者你根本没在意过什么是用户名),而每次都要输入密码,是否太麻烦了?本文方法可以实现自动登录。
1179 0
|
Python Windows
exe2hex - 使用Windows工具DEBUG.exe或PowerShell进行内联文件传输
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396425 ...
1503 0
|
安全 Windows Shell
DccwBypassUAC - Windows 8.1和10 UAC绕过dccw exe中的WinSxS
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396473 ...
1533 0