1.3.1 ATT&CK战术实例
ATT&CK Enterprise框架由14项战术组成,每项战术下包含多项实现该战术目标的技术,每项技术中详细介绍了实现该技术的具体步骤。图1-16展示了ATT&CK框架的14项战术。
图1-16 ATT&CK框架的14项战术
下文将介绍攻击组织APT28和恶意软件WannaCry在执行攻击时使用这些战术的情况,从而对ATT&CK框架进行实例说明。
1.3.1.1 攻击组织APT28的战术分析
APT28是一个威胁组织,从2004年起开始从事攻击活动。在过去的几年中,APT28的攻击次数增长了十倍之多,是网络空间中攻击活动最多、行动最敏捷、最具活力的威胁组织之一。APT28的高级持续攻击水平达到了国家级水平。
目前,网络上有十几份与APT28相关的分析报告。通过分析APT28的取证报告,并将其映射到ATT&CK框架中,我们能更为清晰地了解该威胁组织。登录ATT&CK Navigator网站(详情请参见8.1.1节),在“multi-select”选项框的“攻击组织(threat groups)”下拉菜单中选择APT28,即可显示该威胁组织所使用的战术与技术。图1-17为APT28所覆盖战术与技术的相关页面,感兴趣的读者可登录网站浏览细节。
图1-17 APT28所涵盖的战术与技术
APT28在攻击中所使用的技术基本覆盖了ATT&CK所涉及的所有战术。下文将结合ATT&CK战术和Kill Chain对APT28所涉及的16项战术进行详细介绍。
1.侦察
APT28通过多种技术进行侦察。一项攻击分析显示,APT28通过网络上暴露的默认凭证发现了一个远程桌面协议(RDP)端口。
2.武器化
APT28经常注册虚假的域名用于网络钓鱼,域名中可能包括目标组织的名称。APT28还会在不同攻击中重复使用某些特定的服务提供商和组件。
APT28可以获取到许多未公开的0Day漏洞,而且还可以快速利用公开漏洞进行攻击。APT28可以利用广泛的恶意软件生态系统,其中包括适用于各种平台的多阶段病毒和远程访问木马(RAT)。
3.社会工程
APT28经常使用社会工程法来诱导用户执行不安全的行为。基于侦察和先前获得的情报,APT28的社工诱饵非常具有针对性。APT28可以使用社会工程法来诱导用户单击指向恶意URL的链接或打开恶意文档,这通常会与漏洞利用结合使用。
APT28还会利用社会工程法来诱骗用户,获取电子邮件和VPN凭证,或完成恶意软件生态系统第一阶段的部署。APT28还使用了先进的社会工程技术(例如标签钓鱼)来获取凭证。另外,APT28利用基于OAuth的社会工程攻击,通过恶意应用程序获得对目标电子邮件的访问权限。这些攻击不仅是针对常见的云电子邮件提供商的用户进行的,而且还针对公司Webmail用户。
4.载荷投递
APT28使用了两种主要的初始载荷投递方法(攻击向量),即鱼叉式网络钓鱼电子邮件和水坑式攻击。鱼叉式网络钓鱼电子邮件可以包含恶意文档或指向恶意网站的链接等形式的恶意负载。在水坑式攻击中,APT28入侵了一个合法网站,并向其中注入了恶意代码。当潜在目标访问APT28控制的网站时,APT28会使用指纹技术来确定该用户是否是有价值的攻击目标,根据其价值,ATP28可能会向用户展示合法网站、社会工程学诱饵、公开漏洞甚至是0Day,以部署APT28的恶意软件生态系统。
APT28使用的恶意软件生态系统通常分多个阶段进行载荷投递。在第一个载荷投递阶段,APT28会使用一个dropper[2]来部署一个有效载荷,例如,相对简单的远程访问木马(RAT),它能够为APT28提供命令和控制能力,但主要用于侦察。如果高价值目标已被感染病毒,则可以启动第二个载荷投递阶段,在此阶段,第一阶段恶意软件将接收到dropper,然后部署第二阶段恶意软件。多阶段设置有助于避免将更高级的恶意软件生态系统组件暴露给防病毒软件。
5.漏洞利用
APT28因在攻击中频繁使用0Day漏洞而闻名。仅在2015年,该组织就使用了至少6个0Day。APT28另一个令人熟知的方式是,在其进入公有域后,能够迅速进行漏洞利用和PoC,并扩大漏洞利用的范围。这些漏洞可能已嵌入恶意文档中,也可以按命令和控制服务器的指令进行多次漏洞利用,而且已整合到漏洞利用包中。
APT28已利用的软件包括Adobe Flash、Internet Explorer、Java、Microsoft Word和Microsoft Windows。除了利用安全漏洞,APT28还利用了软件功能,例如APT28能够通过Microsoft Word宏执行不受信任的代码。漏洞利用通常用于部署第一阶段的恶意软件(Flash、Internet Explorer、Java和Microsoft Word),并提升在受感染系统中的访问权限(例如,Microsoft Windows)。对于公开的浏览器攻击框架(BeEF),APT28曾通过水坑攻击将其注入合法网站中,从而可以通过网站访问者的浏览器进行侦察。
6.持久化
APT28已根据攻击向量的不同,通过不同技术实现了持久化。为了使恶意软件生态系统的组件实现持久化,APT28使用了诸如Run或ASEP注册表项、shell图标覆盖处理程序和所谓的Office Test之类的技术。该组织还通过将内核模式的rootkit隐藏恶意的Windows服务,并通过bootkit感染主引导记录(MBR)进行持久化。
此外,通过在单个系统上部署多个恶意软件组件,可以更好地维持权限,每个组件都可以单独提供对受感染系统发起控制。
为了能够持续访问控制鱼叉式钓鱼攻击目标的电子邮件,APT28使用了不同的技术。在基于OAuth的鱼叉式网络钓鱼攻击中,即使受影响用户的密码已更改,OAuth令牌也仍然有效,并可以提供完整的访问权限,直到用户明确将其撤销为止。在对电子邮件账户的其他鱼叉式网络钓鱼攻击中,即使被入侵用户更改了密码,由于APT28设置了电子邮件转发地址,也能够持续获取电子邮件内容。
7.防御绕过
APT28的攻击方式并不是特别隐秘,这表明隐藏其活动踪迹并非该组织的首要事务。在攻击基础设施时,APT28倾向于重复使用相同的服务提供商,这也再次说明隐藏踪迹并不是其首要事务。尽管如此,APT28的第一阶段恶意软件仍会检查是否存在特定的端点安全产品。该恶意软件还会禁用创建功能,删除潜在的取证证据,例如崩溃报告、事件记录和调试信息。一些恶意软件组件具有特定功能,可以删除文件,收集的数据在上传后也可以删除,还可以更改文件的时间戳来避免被检测出来。APT28还使用了用户账户控制(UAC)绕过技术。
8.命令与控制
在APT28一开始攻陷系统后,APT28的恶意软件生态系统组件可以使用不同的方法来连接命令与控制服务器。通常,该恶意软件首先尝试是否可以通过HTTP(S)直接连接到Internet。如果无法进行直接连接,该恶意软件会尝试通过系统上配置的代理服务器或通过注入正在运行的浏览器来连接Internet。该恶意软件还可以使用电子邮件(SMTP和POP3)作为与C2(命令与控制)服务器的秘密通信渠道。在某次攻击中,APT28可能已通过第三方VPN凭证获得了对目标网络的远程访问权限。
9.转移
APT28的恶意软件生态系统至少包含两个组件,这些组件可用于转到攻击者原来无法直接访问的系统。Xagent组件可以感染连接到失陷系统的USB驱动器,从而创建一个可以传输文件系统和注册表数据的伪网络。这样,当USB驱动器插入时,物理隔离网络中的数据通过受感染的USB驱动器传输到可联网的计算机。
Xtunnel组件由其开发人员命名,通常作为第二(甚至第三)阶段的恶意软件。该组件可以作为跳转到网络中其他系统的网络枢纽。TCP和UDP流量可以通过失陷系统从C2服务器随意传输到其他内部系统。APT28还使用VPN连接,将基于Kali(为渗透测试人员创建的Linux发行版)的系统加入可能使用了Xtunnel组件的目标网络。Xtunnel对APT28至关重要,因为它是目前已知的唯一一个被严重混淆的组件,并且该组件还在不断开发、持续增加新功能。
10.发现
APT28在受感染系统上部署的第一阶段恶意软件的主要目的是用于“发现”,收集受感染系统的详细信息,包括计算机的物理位置和正在运行的进程列表。如果APT28对失陷系统很感兴趣,则可以在失陷系统上部署其他阶段的恶意软件生态系统。APT28还使用BeEF漏洞利用框架,通过用户浏览器访问恶意网站来达到“发现”的目标。
11.执行
APT28采用了各种技术在本地或远程系统上执行攻击者控制的代码。部署的恶意软件组件可用于下载和执行其他组件。某些组件(例如Xagent)包含用于远程命令执行的内置功能。
APT28还可以使用py2exe将Python脚本转成可执行文件。用于本地执行代码的其他方法包括使用NSTask、launch、rundll32.exe和鲜为人知的技术,例如内核异步过程调用(APC)注入。专门用于在其他(远程)内部系统上执行代码的工具包括RemCOM,它是Windows Sysinternals套件中广泛使用的PsExec工具的开源替代品。
12.权限提升
在部署第一阶段恶意软件组件之前或者在部署过程中,如果有需求,可以使用本地权限提升漏洞来获取系统权限。同样,恶意软件组件会滥用Windows功能来自动提升权限。APT28通常会先提升本地权限,然后利用恶意软件在系统上实现持久化,这就让恶意软件能够以更具入侵性的方式来获得持久化访问。APT28还使用了泄露的EternalBlue SMB漏洞来远程获取在其他内部系统上的权限,从而让未经身份验证的攻击者拥有系统权限。
13.凭证访问
获取凭证在APT28的攻击中起到了关键作用。APT28已经利用鱼叉式网络钓鱼攻击获取了访问凭证,以便从外部访问Webmail环境和VPN。获得从外部访问Webmail环境和管理界面的权限后,APT28便可以直接收集和窃取机密信息或标识其他目标。获得的VPN凭证可以让APT28远程访问目标网络。
对于失陷系统,APT28采用了各种不同技术措施来获取对纯文本凭证的访问权限,包括使用开源工具mimikatz的自定义变体从内存中提取Windows单点登录密码,这需要系统级的访问权限。某些恶意软件组件也可以收集浏览器和电子邮件客户端等应用程序存储的凭证。内置的键盘记录功能可以用来获取未存储的凭证。在目标网络上,APT28使用了开源的Responder工具来欺骗NetBios名称服务(NBNS)以获取用户名和密码哈希。
14.横向移动
APT28还使用了横向移动技术在目标组织中进行横向移动,以寻求对更多数据和高价值目标的访问。APT28用来执行横向移动的技术主要包括哈希传递(PtH),通过结合WinExe进行远程命令执行),利用用户的LM或NTLM密码哈希对其他内部系统进行身份验证。Xagent组件通过受感染的USB驱动器在隔离环境中传播到其他系统,这也可以视为横向移动的一种形式。
15.收集
APT28从目标电子邮件账户和网络中收集了各种数据。通过访问外部可访问的电子邮件账户,APT28可以长时间偷偷地收集数据。恶意软件组件包含诸如按键日志记录、电子邮件地址收集、定期捕获屏幕截图、跟踪窗口焦点和抓取窗口内容以及检查是否存在iOS设备备份之类的功能。恶意软件还可以从本地和USB驱动器中收集文件和定义规则。APT28通常将收集的数据存储在磁盘的隐藏文件或文件夹中,这样可以防止在重新启动系统时丢失已获取的数据。
16.数据窃取
通过将隐藏文件上传到C2服务器,APT28可以自动并定期批量传输已收集的数据。APT28还可以手动传输数据。C2服务器可以简单地充当中间代理,传输已收集的数据,这会产生额外的网络跳转,让防守方调查起来更加困难。通过设置电子邮件转发地址,APT28可以利用对鱼叉式网络钓鱼目标,从外部访问电子邮件环境来实现长期窃取数据的目标。
上文介绍了APT28在攻击中常用的战术和手法,但该攻击组织在具体的攻击中会如何利用这些战术和手法形成一个完整的攻击路径呢?一旦APT28将其恶意软件部署到目标组织的一个系统中后,任何直接或间接访问该系统的系统或应用都会成为APT28的攻击目标。如果将APT28的攻击向量和攻击路径进行逻辑组合,就可以形成几十条独特的攻击路径,通过这些路径可以成功地从目标组织中窃取数据。下面将分析APT28最常见的十种攻击路径。
第一种攻击路径主要是利用鱼叉式钓鱼邮件攻击,其中包含了侦察、武器化、载荷投递三个攻击步骤,如表1-4所示。APT28主要通过鱼叉式钓鱼邮件这个攻击向量来锁定攻击目标。有报告显示,APT28已掌握了广泛的恶意软件生态系统和漏洞利用程序,可在攻击中加以利用。
表1-4 APT28将鱼叉式钓鱼邮件作为攻击向量
续表
第二种攻击路径主要是利用水坑网站攻击,其中包含了武器化和载荷投递这两个攻击步骤,如表1-5所示。例如,APT28利用漏洞向基础设施、网站等注入恶意代码,完成攻击载荷投放。
表1-5 APT28将水坑网站作为攻击向量
第三种攻击路径是通过社会工程法获取有效凭证,从而实现初始访问和持久化,如表1-6所示。例如,APT28通过假冒登录页面窃取用户访问凭证,然后再配合一些攻击技术完成持久化。
表1-6 APT28通过社会工程法获取有效凭证
第四种攻击路径是通过社会工程法进行感染,通过恶意URL链接、恶意文档等实现第一阶段的攻击载荷部署,然后再通过权限提升、持久化、防御绕过等战术进一步实现攻击目标,如表1-7所示。
表1-7 APT28通过社会工程法进行感染
续表
第五种攻击路径是通过社会工程法及漏洞利用进行感染,实现第一阶段的攻击载荷部署,然后再通过权限提升、持久化、防御绕过等战术进一步实现攻击目标,如表1-8所示。
表1-8 APT28通过社会工程法和漏洞利用进行感染
在第六种攻击路径中,APT28前期需要通过发现、载荷投递、执行等战术获取文本凭证,然后实施后续的横向移动等战术,如表1-9所示。通常,APT28会通过哈希传递等技术获得对更高价值目标的访问权限。
表1-9 APT28通过获取本地凭证进行横向移动
在第7种攻击路径中,APT28前期需要通过恶意软件来投递一些攻击载荷,然后在系统内部进行移动,如表1-10所示。APT28利用失陷系统的漏洞进行后续的横向移动。
表1-10 APT28通过漏洞利用进行横向移动
在第八种攻击路径中,APT28将欺诈技术作为获取用户名和密码哈希的关键所在。在完成凭证访问之后,APT28就可以在内网通过横向移动获取更多数据和高价值目标的访问权限,如表1-11所示。
表1-11 APT28通过欺诈技术向网络上的目标移动
第九种攻击路径是通过已经感染的USB在未联网机器上进行传播,如表1-12所示。通过这种物理方式,APT28可以迅速影响不联网的设备,但是实施操作比较受限。
表1-12 APT28通过感染USB驱动向隔离目标移动
第十种攻击路径是APT28偷偷收集各类数据,例如通过电子邮件访问来窃取数据,获取足够多数据之后操纵ICT资产,如表1-13所示。
表1-13 APT28基于收集的数据进行目标操纵
1.3.1.2 恶意软件WannaCry的战术分析
WannaCry是一种勒索软件,首次出现在2017年5月的全球攻击中,在此次攻击中,中国包括医疗、电力、能源、银行、交通等在内的大量行业的内网遭受大规模感染。WannaCry包含类似于蠕虫的功能,可以利用SMB漏洞EternalBlue在计算机网络中传播。该勒索软件能够迅速感染全球大量主机,其原因是它利用了基于445端口的SMB漏洞MS17-010,微软公司在2017年3月份发布了该漏洞的补丁。
2017年4月14日,黑客组织“影子经纪人”(Shadow Brokers)公布的“方程式”组织(Equation Group)将该漏洞的利用程序作为一个网络武器,而使用这个勒索软件的攻击组织也借鉴了该网络武器,发动了此次全球性的大规模攻击事件。
当系统被WannaCry勒索软件入侵后,系统将弹出如图1-18所示的勒索对话框。WannaCry会加密系统中的照片、图片、文档、压缩包、音频、视频等几乎所有类型的文件,被加密的文件后缀名被统一修改为“.WNCRY”。该勒索软件使用英文、中文等28种文字对不同国家及地区的用户进行勒索。
WannaCry利用了“影子经纪人”泄露的EternalBlue漏洞进行传播,病毒运行的过程分为三步:主程序文件利用漏洞自传播并运行WannaCry勒索程序,WannaCry勒索程序将各类文件加密,勒索界面(@WanaDecryptor@.exe)显示勒索信息、解密示例文件。
图1-18 Wanna Decrypt0r 2.0程序的勒索对话框
登录ATT&CK Navigator网站(详情请参见8.1.1节),在“multi-select”选项框的“软件(software)”下拉菜单中选择WannaCry,即可显示该软件所使用的战术与技术。图1-19为WannaCry所覆盖的战术与技术的相关页面,感兴趣的读者可登录网站浏览细节。从图中我们可以看出,WannaCry覆盖了14个战术中的4个战术、10个技术(不包含子技术部分)。
图1-19 WannaCry覆盖战术和技术的示意图
WannaCry覆盖的十大攻击技术详解如表1-14所示,这些攻击技术大部分都集中在发现和横向移动两个战术上,这也表明APT28采用了大量“发现”战术之下的攻击技术,因而对被攻击的系统信息非常了解,这为后面“横向移动”战术的实现做了很好的铺垫。
表1-14 WannaCry使用的攻击技术