DLL劫持与Windows辅助功能的黑客利用

本文详细分析了Windows辅助功能中的DLL劫持漏洞,探讨了如何通过Narrator.exe等系统工具实现用户级和系统级持久化攻击,以及横向移动技术,并提供了实际攻击场景的演示和防御建议。

Hack-cessibility: 当DLL劫持遇到Windows辅助功能

在准备MCTTP会议演讲时,Jason Lang (@curi0usJack)和我基于VX-underground中的TTPs进行研究。其中引起我注意的一项持久化技术涉及Narrator.exe执行时加载MSTTSLocEnUS.dll的行为。

技术验证

通过Procmon监控Narrator.exe执行过程,发现它现在查找的DLL路径已变为: %windir%\system32\speech_onecore\engines\tts\msttsloc_onecoreenus.dll

测试证实,在此位置放置任意DLL即可实现代码执行。关键突破是:通过挂起主线程可阻止语音提示,同时保持DLL代码执行。

用户级持久化

在注册表路径 HKCU\Software\Microsoft\Windows NOT\CurrentVersion\Accessibility 下创建名为"configuration"的REG_SZ值,将其设置为"Narrator"即可实现用户登录时自动启动。

系统级持久化

同样的配置在HKLM hive中设置,可使Narrator在登录屏幕出现时以SYSTEM权限执行。

横向移动

通过远程修改RDP设置:

  1. 将恶意DLL传输到目标系统
  2. 修改 HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 下的SecurityLayer值为0
  3. 通过RDP连接后按CTRL+WIN+ENTER触发Narrator执行代码

自定义辅助功能

可以创建自定义辅助工具:

  1. 导出现有ATs注册表项并修改
  2. 更改二进制路径指向payload
  3. 支持本地路径和UNC路径
  4. 使用ATBroker.exe /start [名称] 手动启动

这些技术在当前最新版本的Windows 10和11中仍然有效,展示了Windows辅助功能生态系统中存在的安全风险。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计