帮用户解决问题的Windows故障诊断平台也有问题 黑客用它可以执行恶意脚本危害金融用户【转】

发布时间:2016年10月13日 09:39

电子邮件安全软件开发商Proofpoint发现,在最新的一波垃圾邮件攻势中,黑客利用了Windows故障诊断平台(Windows Troubleshooting Platform)服务来发送社工钓鱼邮件,诱导用户点击运行并导致恶意脚本感染计算机,植入后门并进行大规模传播。这一功能原本可以帮助用户解决那些Windows日常使用过程中所遇到的问题,但是在攻击者的眼中,它却成为了一个非常实用的攻击工具。在社会工程学的帮助下,攻击者或可利用该功能来在目标用户的计算机中运行恶意软件。

安全研究专家发现,这种攻击方式的实际效率非常的高,因为当Windows系统运行故障诊断平台的时候并不会弹出任何形式的安全警告,而当系统弹出了故障诊断窗口之后,用户们也早已习惯于直接通过该平台来解决使用过程中的一些疑难问题了。

wtp什么意思

Windows故障诊断平台(Windows Troubleshooting Platform)是一套自动化故障诊断工具,帮助PC用户排查遇到的各种电脑故障。在 微软的官方网站 上是这样说明的,

本文解答常见问题 (FAQ) 有关 Microsoft 自动化的故障诊断服务 (垫) 和支持诊断平台 (SDP)。Microsoft 支持使用垫收集诊断信息从基于 Windows 的计算机上,为已知的根本原因,收集的数据进行分析并确定针对发现的任何问题的正确解决方案。收集的信息也可能用于自动执行常见的故障排除任务或自动修复您的计算机上的已知的问题。结果的数据您收集可上载到 Microsoft 支持。

Proofpoint是做什么的

Proofpoint 位于加州桑尼维尔的提供 SaaS 和对入站电子邮件安全、 出站数据丢失防范、 隐私权保护、 电子邮件加密、 电子发现 (“eDiscovery”) 和电子邮件归档解决方案的处所。Proofpoint 提供了一套集成的基于需求的数据保护解决方案跨越威胁管理、 法规遵从性、 数据治理和安全通信

黑客利用WTP传播恶意软件的详细分析

在此次所发现的恶意软件活动中,攻击者使用了Windows的故障诊断平台来传播LatentBot。当用户感染了这一恶意软件之后,攻击者不仅可以对用户进行监控,而且还可以从目标主机中窃取各类数据。这也就意味着,攻击者将获取到目标主机的远程访问权。

图片1:Windows故障诊断平台的体系架构

LatentBot恶意程序有什么危害

FireEye最近捕获了一个代码高度混淆的Bot,命名为LatentBot,从2013年年中就开始活跃。它有能力在不被察觉的情况下监视用户,可以破坏硬盘甚至破坏计算机。

根据Fireeye的动态威胁情报(DTI),可以清晰的看到针对美国,英国,南韩,巴西,阿拉伯联合酋长国,新加坡,加拿大,秘鲁和波兰等国多个行业的活动(主要集中在金融服务,和保险行业)。它实现了多层模糊,独特的分发机制,以及成功感染多个组织确实吸引了我们的眼球。

下面列出LATENTBOT的一些主要特性:

  • a) 多层混淆
  • b) 内存中解密用的字符串用后即删
  • c) 在不同的桌面影藏应用
  • d) 主引导记录(MBR)清除功能
  • e) 与赎金锁(Ransomlock)类似的锁定桌面功能
  • f) 隐藏VNC连接
  • g) 模块化设计,在受害者机器上可轻松进行更新
  • h) 十分隐蔽的反弹通信量,APIs,注册表键值以及其他一些动态解密指示
  • i) 将Pony恶意软件作为其中一个模块窃取信息

攻击者可以向目标用户发送一封电子邮件,并在邮件中附带一份看起来非常“诱人”的附件。当然了,用户最终是否会打开邮件附件,完全取决于用户的个人经验和攻击者的社工技巧。需要注意的是,这也是一种典型的恶意软件传播方式。

当用户打开了附件之后,屏幕中会显示出一个包含乱码的文档,此时Word的右上角会温馨地提示用户“双击以自动检测字符集”。如果目标用户选择同意,那么他们这一次就真正地打开了一个嵌入在附件内部的OLE对象,这个对象是一个经过数字签名的DIAGCAB文件。DIAGCAB是Windows故障诊断包的后缀名,“.Diagcab”文件是包含故障诊断脚本的专用存档。

图片2:恶意附件的窗口;

如上图所示,攻击者利用了社工学的技巧来欺骗用户双击并执行OLE对象。

当用于攻击的恶意“.Diagcab”文件被打开之后,用户就会看到如图3所示的界面,这个界面的可信度确实非常高,普通用户几乎无法对其安全性进行准确的辨别。如果用户点击了对话框中的“下一步”按钮,那么应用程序将会执行与之相对应的故障诊断脚本。在这种攻击活动中,攻击者运行的是一个PowerShell命令,并通过这个命令来下载并执行恶意payload。

图片3:已签名的故障诊断包;

请注意,签名证书中所显示的发布者与攻击活动并没有任何关系。因为攻击者破解了一个有效的证书,并用这个合法证书来进行恶意软件的传播活动。

图片4:恶意软件payload的下载

在用户毫不知情的情况下,故障诊断包可以通过一个PowerShell脚本在后台自动下载恶意软件的payload。

我们可以从图片5和图片6中看到,通过修改故障诊断包的XML数据,攻击者可以自定义设置弹出对话框的外观和提示信息、它所要执行的任务、以及相应的执行脚本。比如说,在下图给出的XML格式数据中,我们可以将对话框的标题设置为“Encodingdetection”,然后指定“Troubleshooter”为一个名为“TS_1.ps1”的PowerShell脚本。

图片5:诊断包引用了一个恶意PowerShell文件来作为执行脚本;

在这一攻击活动中,这个PowerShell脚本专门负责在目标用户的计算机中下载恶意paylaod,相关信息如图6所示:

图片6:用于下载恶意payload的PowerShell命令;

这种恶意软件执行方式可以绕过目前大部分沙箱产品的检测,因为恶意软件加载的是“.diagcab”文件,并在msdt.exe外部完成了所有的恶意操作。这也是一种新的攻击发展趋势,因为现在很多恶意软件的开发者会通过基于CO对象的非标准执行流来寻找新型的沙箱绕过方法。在此之前,有的攻击者还会利用WMI、Office办公套件、后台智能传输服务、以及计划任务等功能来实现沙箱绕过。在这一攻击活动中,攻击者在msdt.exe中创建了一个IScriptedDiagnosticHostCOM对象,DcomLaunch服务便会启动“脚本诊断主机”服务(sdiagnhost.exe),而该服务便会执行相应的shell脚本命令,即上图所示的PowerShell脚本。

在此次攻击活动中,攻击者使用的是一个模块化的后门,即LatentBot。FireEye在2015年末曾发布过一篇针对这一恶意后门的详细分析报告,感兴趣的同学可以阅读一下【 报告传送门 】。在我们的分析过程中,我们发现攻击者在提取主机数据和实现远程访问的过程中加载了下列bot插件:

-Bot_Engine

-remote_desktop_service

-send_report

-security

-vnc_hide_desktop

总结

毫无疑问,攻击者肯定会继续寻找新的方法来利用Windows的内置功能,以求通过一种不受阻碍的方式来感染目标用户并执行恶意payload。在这一攻击活动中,攻击者使用了一种典型的“Windows”式的方法来欺骗用户,即便是非常有经验的用户也很有可能会掉入陷阱。除此之外,这种攻击技术使用的是一种非标准的执行流,所以攻击者可以绕过大部分沙箱产品的检测。

参考资料

1. https://msdn.microsoft.com/en-us/library/windows/desktop/dd323778(v=vs.85).aspx

2. https://msdn.microsoft.com/en-us/library/windows/desktop/dd323712(v=vs.85).aspx

3. https://msdn.microsoft.com/en-us/library/windows/desktop/dd323781(v=vs.85).aspx

4. https://www.fireeye.com/blog/threat-research/2015/12/latentbot_trace_me.html

5. https://msdn.microsoft.com/en-us/library/windows/desktop/dd323706(v=vs.85).aspx

此条目发表在未分类, 经验技术分类目录。将固定链接加入收藏夹。