2017年意大利间谍软件公司Hacking Team被黑,之后攻击者还把该公司的400G文件放到了网上,包括内部文档、源代码和通信邮件,后来才知道,这是一个名为“Phineas Phisher”的自黑客所为,Hacking Team专门为政府和执行部门开发入侵和监控软件。经过调查,这不是随机攻击的结果,而是精心策划和有针对性的攻击。
“Phineas Phisher”为了实现他的目标,专门为 SonicWall VPN 设备开发了一个零日漏洞。在这次攻击之后,攻击者在互联网上扫描了此类设备,发现开曼群岛的一家离岸银行正在使用相同的易受攻击版本。除了这个漏洞之外,他还通过自己的网站发布公告,他使用了 Meterpreter 和 Empire 等常见的黑客实用程序,而且他不是某种具有自定义恶意软件编写者的 APT,也没有获得大量资金和支持。相反,他自称是单人作战。
黑客入侵银行的最终目的是进入Bottomline的SWIFT管理面板,并针对他自己的账户发起交易。然后,他上传了银行使用的虚拟机以及存储在这些系统中的所有敏感客户信息。
该攻击场景相当有趣,因为尽管信息具有影响和敏感性,但它提供了对很少有人操作的环境的深入洞察。此外,这样的环境没有很好的公开记录。
我们认为,模拟这样的攻击场景并使其适应当前的攻击和防御工具和方法,可以提供一个很好的了解双方的能力并强调这些年来发生的变化途径。为此,我们在本文中试图通过重建这样的环境并为其配备现代防御机制来跟踪防御性和进攻性安全的演变。
由于大多数组织现在都在将终端检测和响应 (EDR) 系统集成到其终端中,以行为检测和遏制网络攻击,因此我们已相应地装备了我们的终端。然而,正如我们之前的研究所示,EDR 不是灵丹妙药,也有其弱点。事实上,高级持续性威胁 (APT) 组织已经显着提升了他们的攻击能力。他们可以使用多种此类防御技术,对其进行研究并相应地自定义恶意软件以针对它们并最大限度地减少对它们的检测。此外,APT 和勒索软件组使用多种 C2 框架,其中使用最广泛的是 Cobalt Strike;但是,有不同的选项可以提供不同的功能,并更好地适应攻击所需。
与MITRE ATT&CK等常见测试不同,攻击者是专门对防御措施进行了高度有针对性的攻击。这样一个行动者的攻击性安全类型包括从基本的网络攻击和操作到武器化一系列私人工具包,从最高端的和经过实战验证的解决方案到不太为人所知但非常有效的选择。
该实验室的架构没有模拟人的流量,因此不必考虑攻击者典型的隐藏位置,这样才能突出EDR解决方案的优势,因为样本很容易脱颖而出。检测工程可以被认为是避免误报的艺术,在这些低流量的情况下,与普通用户和应用程序流量混合的机会并不多。因此,我们试图将其模仿为在我们拥有的环境中要遵循的静态原则。
鉴于这一事实,研究人员决定不断修改从攻击准备到 BETA 功能的政策,推动其产品的不断研发,确保高度敏感的信息不被泄露。
我们试图模拟“Phineas Phisher”的攻击场景,包括 Phineas Phisher 攻击的 Cayman Island National Bank and Trust 的基础设施,对其进行重新配置并在 Hyper-V 服务器上使用新设备对其进行扩展。在网络层面,采用PfSense、Virtual Switches、RRAS和Squid实施网络分段和安全策略。在服务器和工作站上安装主流应用和银行相关应用,使用虚拟Citrix XenApp实例,并使用跳转服务器模拟虚拟SWIFT安全区域。使用了各种操作版本的Windows,并在主机上使用了一些安全特性,如Credential Guard,以实现最低水平的操作复杂性和真实性。通常,通过在一些终端上提供本地管理访问,并允许加载内核驱动程序和执行其他操作,网络设计允许我们演示几种特权和非特权攻击向量。
接下来,我们将会介绍几种复杂程度不同的工具。特别感兴趣的是攻击者可能使用的c2。为此,我们会进行简单介绍。
Cobalt Strike 4.4版本
Cobalt Strike 是 C2 框架的标准。它提供了执行基本操作所需的核心功能,但也是完全可扩展的。从 BOF、Reflective DLL、各种套件等形式的插件来看,我们可以看到社区完成了大量工作。本文使用的是最新版本—— 4.4版本,就是在测试中使用的。此版本专门引入了自定义反射加载器功能,这意味着你可以用自己的功能替换默认功能,就像boku7的实现一样。此外,你可以使用 BOF,将在本地进程内执行的代码片段,避免版本不同造成的影像。
Cobalt Strike虽不再那么安全了,但你始终可以自己实现几个安全功能并将它们嵌入到你的加载程序中。
在我们的案例中,大多数 Cobalt Strike 的开箱即用功能和工具包都没有用到,因为现在的许多检测都是多层和通用的,这意味着它们试图针对威胁的核心功能并适应不同的使用场景。我们将展示一些来自各种商业工具的POC检测,以支持广泛存在的IOC的事实,并且该框架将有很大的机会被检测,至少在一个高度先进的网络中。
因此,可能需要 TTP 的组合,包括使用其他 C2、自定义交易技巧和针对目标在主机和网络方面自定义 Cobalt Strike,例如,看起来像合法团队的流量,但要对基于UM和KM的检测保持防护,这可能会花费大量时间和精力,而其他工具可能对特定任务更有效。
在目前所有的测试中,Cobalt Strike 都需要我们进行一些奇怪操作才能使用它,通常是在基于特权攻击或产品特定漏洞发生一些篡改之后。
Havoc
Havoc 是针对绝大多数终端解决方案而构建的,因此它在设计上具有一些 IOC。我们通过在开发过程中做出轻微改变,帮助开发人员将软件转换为更适合本文测试场景的条件。
网络通信通过 TCP 协议的套接字执行,该套接字具有 AES 加密内容和休眠功能,在此期间不会获取任何命令。事实证明,只要操作人员愿意使用一些基本的op-sec技术并修改代码库,Havoc 就能够在极其复杂的环境中运行。
自定义Nighthawk
Nighthawk是由MDSec开发的高端C2框架,具有隐蔽性、可配置性和丰富功能。如上所述,测试需要大量的自定义工具和环境。在撰写本文时,MDSec 添加了比本文中所需使用的功能更多的功能,包括一些甚至可以绕过 ETWTi 的隐蔽注入链和微过滤回调的欺骗策略。
Nighthawk 提供了一组 op-sec 功能,其中包括基于 ROP 的系统调用取消挂钩以及后来的完整 DLL 取消挂钩,这些都是自定义的,它可以使操作员的工作更轻松,除此之外,还包括其他有用的功能,如线程堆栈欺骗,通过基于堆的加密隐藏内存,以及可避免使用几种工具。Nighthawk具有很强的可延展性,这意味着你可以手动控制C2的所有行为,而无需编写任何代码。这使我们能够根据需要在测试过程中改变植入物的行为。这意味着,其中包括自定义的进程注入方法、通用的系统调用和网络回调相关选项。
目前,Nighthawk 被证明是研究人员使用的功能最丰富、最稳定和最有效的解决方案。
Oyabun
Oyabun 是研究人员新创建的工具,它是一个基于 Golang 的多平台工具包,可以有效躲避目前的很多防御。
初始访问
使用的工具集既包括较少使用和受重视的技术,也包括非常流行且与防御工具的内部机制高度适应的技术。包括 XLL、MSI、EXE 在内的几个恶意文件被用于初始访问,甚至是特权攻击包,它们使用可利用的驱动程序注入免费的杀毒软件来弱化防御,,因为这是少数几种完全避免进程内客户端的方法。带有复制导出的DLL在某些情况下被用于将我们的未分段有效负载劫持到合法应用程序中。
SentinelOne展示了一种以多种不同方式禁用通用威胁的能力,包括 Cobalt Strike 和 BRC4。SentinelOne设计的陷阱持续欺骗所提供的 BRC4 代码的格式,包括许多不同的奇特和自定义的加载类型,如自定义的Phantom DLL Hollowing、Shellter Pro、MacroPack 等商业工具,这让我们感到惊讶。在 Nighthawk 的案例中延展性,漏洞修复和交付格式使我们能够在网络上为防御者留下有价值的攻击环境。
Havoc的运行环境特别苛刻,因此研究人员专门进行了特别设置。只有这样,Oyabun 的活动才能持续,但也仅限于一些有限的操作和一个可以针对非常具体格式应用的白名单。
Post-Ex工具部署
活动工具以各种方式部署,包括反射、高度监控、PowerShell会话和CLR加载,但始终在安全的上下文操作安全下,以尽可能多地涵盖信标和工具执行。研究人员成功规避了所有与PIC 相关的缓解措施,并以各种格式运行恶意的 post-ex 工具。诚然,这些缓解措施涵盖了 90% 的尝试,并且需要大量自定义。
篡改
在实验过程中,使用可利用的驱动程序会在很多情况下都发生了篡改,但研究人员也能够通过几种技术找到完全忽略所有用户模式陷阱的方法,其中一种是NightHawk基于ROP的系统调用取消挂钩方案,另一种是研究人员发现并报告的逻辑漏洞。
横向活动攻击
横向移动包括RDP, WMI, WinRM,一个基于WebDAV的内部钓鱼工具包,称为Farmer和PIC中的证书窃取工具,PIC是必不可少的PE-Loader Bootstrapped到代码(如sRDI)和可执行表单以收集凭据,当然还有使用 RDP 客户端进行 SOCKS 代理。当涉及到来自 LSASS 等进程的凭证转储时,研究人员必须避免所有常见技术,并且在执行攻击时遇到严重问题,这导致研究人员利用SentinelOne架构中的一个漏洞来获得这样的机会,这在现实中不太可能发生。
进程注入
所采用的检测模型限制了针对技术和 shellcode 本身的常见规避技术和注入的使用,需要付出大量努力才能绕过这些防护,但基于内核的陷阱再次捕获了 PIC 的行为,这样,我们就发现了立即修复的漏洞,这些漏洞与 SentinelOne 的 APC 保护相关,再次提高了攻击者的门槛。经验告诉我们,这样的尝试很容易使 SentinelOne 的事情复杂化。
尽管勒索软件不是此类攻击者的目标,但包括Ryuk、Ragnar和Babuk在内的自定义加载器通过大量修改有效载荷格式来执行各种注入操作的已知变体,都被成功地缓解了,有些是勒索软件,有些是部署级别的。
鉴于测试的敏感性,出于客户安全的需要,无法透露太多信息。在测试期间,SentinelOne产品能够有效地解决作为“开箱即用”解决方案存在的大多数通用攻击。SentinelOne 所做的是防御和监测攻击者,同时为防御者提供有价值的信息,方便之后使用STAR规则有效地追踪特定攻击者。也就是说,在正确的位置处理攻击者的整体模型是非常有价值的,如果配置正确,在某种程度上可以实现这一目标。
如今,真正的价值来自于信息,目标驱动型情报在近年来得到了显著的发展,特别是随着个人、企业、公共和关键基础设施的进步。
攻击者可能有不同的背景,有政府资助的、基于好奇心的、有经济动机、有黑客活动家等等。然而,这些目标可以通过共同的行动链来实现。这条链是现代安全供应商试图解决的问题,以最小的中断和误报产生有用的警报。虽然防御策略可能因组织和产品而异,但是,每个操作系统或网络设备都存在某些限制,必须加以考虑。全面覆盖尽可能多的攻击面是现代安全产品的目标。
安全模型必须每隔几个月或几年重新调整,以适应面向不同的安全需求。无论如何,最重要的资产是终端,无论是服务器还是工作站,因此,防御重点主要面向这个方向,甚至操作系统的内部都处于危险之中。
本文的目的不是要用户对EDR 的安全防护成效产生悲观思想,而是要表明根本不存在灵丹妙药,即通过使用一种明星产品应对所有攻击。显然,攻击者可以很容易地绕过并适应大多数防御。显然,如果计算机处于封闭的网络中,没有设备的插件功能,它们将是高度安全的,但也更难以发挥作用。今天的安全人员试图在功能、安全性和性能之间找到一个平衡。
参考及来源:https://www.sentinelone.com/blog/research-paper-emulating-phineas-phisher-attacks-in-modern-edr-environments/