有些蠕虫会善用它们的力量

园丁知道虫子是好的。网络安全专业人士知道蠕虫是令人不快的。 非常糟糕。事实上,蠕虫是计算世界已知的最邪恶的力量。MyDoom蠕虫在最昂贵的计算机恶意软件中占据着可疑的地位曾经– 造成了大约520亿美元的损失。第二名#8230;Sobig,另一个蠕虫。
然而,事实证明,每一条规则都有例外。实际上,在大多数花园里,有些生物蠕虫并不受欢迎。而一些网络蠕虫似乎可以永远利用它们的力量。
见见Hopper,好虫子
检测工具不擅长捕捉非基于漏洞的传播,而这正是蠕虫最擅长的。大多数网络安全解决方案对蠕虫攻击方法(如令牌模拟)和其他利用缺陷内部配置(PAM、分段、不安全的凭据存储等)的弹性较低。
霍珀就这样诞生了!Hopper是一个真正的蠕虫,具有命令和控制、内置的权限提升,以及更多wormkind最狡猾的功能。但与大多数蠕虫相反,料斗是用来做好事的. Hopper告诉其White Hat运营商它在哪里以及如何成功渗透网络,而不是造成伤害。它报告了它进入的距离,一路上发现了什么,以及如何改进防御。
与Hopper近距离接触
Cympate Hopper的开发团队基于一个常见的恶意软件stager8211,作为初始有效载荷的小可执行文件,其主要目标是准备更大的有效载荷。我们的stager还充当PE打包器,一个通常从包间接加载和执行程序的程序。
Hopper的stager是这样编写的:如果我们对Hopper进行更新,则不必更改初始有效载荷。这意味着在每个更新中排除散列将成为历史,Hopper用户只需要排除stager的散列一次。以这种方式编写stager也为执行Hopper需要的其他工具开辟了道路。
为了最大限度地提高Hopper的灵活性,我们的团队添加了不同的初始执行方法、额外的通信方法、获取第一阶段有效负载的各种方法、不同的注入方法等等。而且,为了创建一个非常隐蔽的蠕虫,我们需要最大限度地定制隐蔽功能,因此我们几乎完全由操作员控制配置:
- 初始有效载荷配置, 完全可配置的执行方法,包括可执行文件、库、python脚本、外壳代码、PowerShell脚本等
- 第一阶段有效载荷配置, 可定制的包获取方法和包注入方法(例如,反射注入)
- 第二阶段信标配置,定制的通信通道、保持活动的定时和超时以及抖动
- 美国石油学会, 通过空中传送添加新功能,以便于将来扩展功能,包括通信方法、传播方法和漏洞利用
执行、凭证管理和传播
Hopper的初始执行是在mem中,分阶段执行。第一阶段是容量有限的小存根。这个存根知道如何运行更重要的代码段,而不是在其内部包含代码,这使得很难将其标记为恶意文件。对于权限提升,我们选择了不同的UAC绕过方法,利用后台处理程序等易受攻击的服务,并使用配置错误的服务或自动运行来获得权限提升或持久性。这里的想法是让Hopper使用实现其目标所需的最低权限。例如,如果一台机器为用户提供对目标机器的访问权限,Hopper可能不需要提升权限来扩展到该目标机器。
Hopper具有集中式凭据管理功能,这使其能够根据需要在Hopper实例之间分发凭据,这意味着所有Hopper都可以访问收集的凭据,从而消除了在其他机器上复制敏感凭据数据库的需要。
为了传播,Hopper更喜欢错误配置而不是利用漏洞。原因是什么?漏洞利用可能会导致系统崩溃,它们更加突出,并且很容易通过IP/网络监控产品和EDR产品识别。另一方面,错误配置不容易被检测为恶意活动。例如,Active Directory配置错误可能会导致用户访问他或她本不应该访问的资源,从而导致传播。类似地,软件错误配置可能允许用户远程执行代码,从而导致传播。
隐形和C&,C通信
Cymulate团队为Hopper选择了内存执行,因为一旦不再使用,在内存中加密恶意软件代码会破坏EDR产品在内存内容中指纹识别的能力。此外,内存执行使用直接系统调用而不是API调用,API调用可能由EDR产品监控。如果Hopper确实需要使用API函数,它会在执行此操作之前检测并卸载EDR挂钩。
为了保持隐蔽性,Hopper在工作时间内通过在随机计时模式下用正常工作时间活动掩盖活动来与命令和控制进行通信。它还只与允许列出的服务器或不被视为恶意的服务器通信,如Slack Channel、Google Sheets或其他公共服务。
底线
注意:本文由Cympate的团队负责人、高级安全研究员和开发人员Yoni Oren撰写和贡献。