绕过EDR系统检测的新型攻击技术[出自:jiwo.org]
Windows UI Automation框架的一种新型攻击技术,该技术能够绕过端点检测和响应(EDR)系统检测,引发了广泛的安全担忧。研究发现,攻击者通过诱骗用户运行一个使用UI Automation的程序,可以实现隐蔽的命令执行,进而窃取敏感数据、重定向浏览器至钓鱼网站等恶意行为。值得注意的是,这种攻击技术适用于所有运行Windows XP及以上操作系统的终端。Windows UI Automation框架是一种允许软件开发人员控制Windows应用程序的用户界面元素的技术,最初设计于Windows XP时代,旨在帮助残疾人士更便捷地使用电脑。它被授予了高级权限,以执行诸如放大文本、大声朗读文本,甚至在某些情况下模拟点击等操作。然而,正是这种广泛的权限,使得攻击者能够利用该框架进行恶意活动。
技术分析过程
在探索Windows UI Automation框架的新用途和潜在滥用方式时,发现了这一攻击技术。他们详细分析了这种攻击技术,并揭示了其工作原理。攻击者首先利用社会工程学或其他手段获得对目标系统的访问权限。一旦进入系统,他们使用UI自动化框架来模拟用户输入,如鼠标移动和键盘敲击,以执行恶意代码。这种方法使得EDR系统难以区分正常用户行为和恶意活动,因为攻击者的操作看起来与合法用户的操作无异。
(1)初始接触和程序执行
攻击者首先需要说服用户运行一个使用UI自动化的程序。这可能通过社会工程学手段实现,例如通过发送带有恶意附件的钓鱼邮件或诱使用户点击链接下载并运行恶意软件。
(2)UI自动化框架(UIA)的利用
一旦用户运行了恶意程序,攻击者就可以利用Windows UI自动化框架来操纵其他应用程序的用户界面(UI)。UIA框架允许攻击者模拟用户交互,如点击、输入文本等。
(3)组件对象模型(COM)的交互
UIA通过COM实现与其他应用程序的交互。COM是一个由微软设计的框架,允许不同程序之间进行通信,无论它们是用何种语言编写或编译的。攻击者通过调用CoCreateInstance函数,并使用CUIAutomation类UUID和UIAutomation接口UUID来创建COM对象,从而与UIA进行交互。
(4)DLL加载和IPC机制
在创建COM对象的过程中,系统会加载注册表中指定的DLL,这里是UIAutomationCore.dll。这个DLL被加载到用户的应用以及任何具有UI元素的其他进程中,为攻击者提供了操纵UI元素的能力。
(5)事件处理程序的设置
攻击者通过添加事件处理程序来监控远程进程UI的变化。例如,可以设置一个处理程序来监控当前为用户打开的工具提示(tooltip)的任何变化。
(6)识别和操作UI元素
攻击者可以通过调用sender.get_CurrentName函数来识别哪个应用程序被带到UI的前端。然后,攻击者可以尝试读取或写入数据,通过迭代所有元素(这些元素是sender元素的后代)来找到他们想要读取或写入的元素,读取它们的UI值,更改它们的文本值,或者检索它们的可调用元素并调用其“Invoke”函数。
(7)恶意活动的执行
攻击者可以利用UIA执行多种恶意活动,包括:读取和写入消息:攻击者可以连接到聊天应用的UI窗口,模拟点击操作,读取对话内容并窃取数据,或者在不显示在屏幕上的情况下设置文本框并发送消息。
(8)窃取敏感数据
攻击者可以通过监听UI元素的变化来窃取信用卡信息。一旦用户输入信息,攻击者就可以从UI元素中检索文本以供后续外泄。
(9)执行命令
攻击者可以通过过滤浏览器UI窗口,搜索搜索栏UI元素,并设置其值为他们想要的值并模拟点击,从而重定向用户到恶意网站。
(10)绕过EDR系统检测
由于UIA的所有行为都被视为合法功能,因此Windows Defender和所有测试过的EDR产品均未将其行为识别为可疑。这使得UIA成为一个对攻击者极具吸引力的攻击面。
潜在影响与防范措施
这种新型攻击技术的潜在影响是巨大的,因为它允许攻击者在不被EDR系统察觉的情况下执行恶意操作。为了降低风险,Microsoft已经对UI Automation框架实施了一些限制,但攻击者仍有可能通过技术手段绕过这些限制。不过,虽然攻击者可以利用UIA执行多种恶意活动,但是管理员可以通过设置监控UIAutomationCore.dll的使用和UIA打开的命名管道来检测其使用情况来发现可疑行为。如果发现UIAutomationCore.dll被加载到之前未知的进程,那就应该引起特别关注了。