利用工具包的环境不断变化,迫使安全研究人员提高他们的游戏。

曾经有一段时间,有效载荷甚至没有加密,网络服务器实际上没有撒谎。

独特的模式,与磁盘上二进制文件大小匹配的数据包,都使好人更容易检测和阻止恶意活动。但现实是,这只是一个适应阶段,坏人不需要花费任何额外的努力,仍然得到了他们想要的:大量的感染。

当一个利用工具的登陆页变成这样domain.com/index.php你知道有问题。如果您尝试进行URL模式匹配,那么世界上没有任何正则表达式能够避免数百万个误报。然后你就有了巧妙的模糊代码,这些代码在不同的javascript中分布在多个web请求中,就像大多数网站一样。

我们来谈谈有效载荷本身。无论它是在清透线,还是编码,有时甚至分裂我们仍然可以从磁盘中获取它,并将其传递给研究人员。

好吧,就像他们说的那样,一切都有结束的时候,因为现在我们看到的是无文件(仅内存)的有效负载。

这将是一个两部分的博客系列,将解释这种类型的感染是如何工作的。在下面的视频中,我们复制了“经典”(基于文件的)攻击与仅内存的攻击。您还将看到传统的安全解决方案,特别是白名单,是如何对这种威胁无效的。

经典vs高级

有效负载被直接注入到用于开发的进程中(在我们的例子中iexplore.exe)作为一个新的线程(而不是一个文件放在磁盘上):

diskvsmemory

这样做有很多好处。首先,不把任何东西放到硬盘上,就减少了系统上的负载占用,减少了被检测到的机会。

在磁盘上检测恶意软件通常比在内存中检测要容易得多。至少有一个例外,如果恶意软件是一个rootkit,在这种情况下,文件在技术上是在磁盘上,但不可见。

从纯粹的逻辑角度来看,只收集内存样本也比简单地抓取磁盘上的样本更难。当恶意软件作为编码流发送时尤其如此,因为从数据包捕获中解码它变得复杂得多。

然而,只使用内存确实有一些缺点。在应用程序或系统关闭之前,攻击者执行其任务的机会窗口较小。

摆脱这些类型的威胁最简单的方法是重新启动你的电脑,这可以说是有问题的。但是,如果我们仔细观察,这个问题可以得到缓解:正如我们将在本分析的第二部分中看到的,攻击者正在连接到一个API,该API保证在用户关闭应用程序时进程能够存活。

就系统关闭而言,大多数人在关机前都会在电脑上花费数小时。这段时间足够捕捉击键,甚至下载其他恶意软件。

越早越好

就像大多数事情一样,你越早抓住一些东西越好。传统的安全解决方案将在磁盘或内存中检测恶意负载,剥削已经发生了。

如果恶意软件足够新,它就会有机会感染系统。(注意:当然可以在URL或IP地址级别早期检测到攻击,但不断旋转域名和JavaScript模式,这说起来容易做起来难。)

为了更好地说明这一点,我将借用一张最近的幻灯片网络研讨会佩德罗·布斯塔曼特和我的功绩

范围

这种特殊的攻击被Malwarebytes Anti-Exploit检测到并阻止必威平台APP之前有效载荷有机会运行。下面的截图显示了两个网页会话:

  • 着陆页
  • Flash开发

Flash漏洞被检测到并停止,导致有效载荷(恶意软件)无法启动:

MBAE

这是一个重要的方面,因为有效负载的形式(仅内存或基于文件)是不相关的。虽然其他安全解决方案经常会玩猫捉老鼠的游戏来检测带有签名的恶意软件,但专注于内存和应用程序行为使您能够在有效载荷仍在发射台中时停止它。

层

另一个转折是,Kafeine发现了无文件EK如何分发Poweliks,这也是一种无文件的威胁,并使用注册表来实现持久性:

更多内容

我和同事一起研究了这个案例大卫·桑切斯他是一位出色的安全研究人员和逆向工程师。如果您喜欢本迷你系列的第一部分,请继续关注第2部分,其中David将带领您了解漏洞利用和有效负载的内部工作原理。

作为一个预告,这里有一个简短的视频,魔术发生了(不可读的字符串变成一个MZ):

非常感谢大卫·桑切斯感谢你在深夜的Skype会议上指导我编写代码!额外感谢joshcannell帮我做异或动作