查看原文
其他

APT-C-20(APT28)使用复合攻击战术的攻击活动分析

高级威胁研究院 360威胁情报中心
2024-11-06
APT-C-20  APT28

APT-C-20(APT28)也被称为Fancy Bear、Sofacy或Sednit,活跃于网络空间已有十多年,其攻击目标遍及全球多个国家和地区,涉及政府、军事、媒体、能源等多个关键领域。

APT-C-20(APT28))以其高超的技术手段和复杂的攻击策略而闻名。他们善于利用多种攻击载体,如鱼叉式网络钓鱼邮件、水坑攻击、零日漏洞等,并结合多种技术手段,如恶意软件、远程控制工具、加密通信协议等,实现对目标系统的渗透和控制。同时,APT28也非常重视对攻击行为的掩盖和伪装,通过使用代理服务器、伪造文件属性等手段,增加了溯源和归因的难度。

360高级威胁研究院在对APT28的持续跟踪过程中发现,该组织运用了多种复杂的攻击手法发动网络攻击。本报告将重点分析和剖析其三类最为活跃的攻击战术,深入揭示APT28在近期攻击活动中的侵入路径、使用工具、技战术以及背后的战略意图。同时,本报告也将评估这些攻击活动的潜在影响,并提出相应的防御建议和对策。这项研究不仅有助于加深对APT28的理解和认识,也希望为应对日益复杂的网络威胁提供一些经验和启示。

 一、攻击活动分析  

1.类别一_Headlace

1.1攻击流程分析  

在典型的攻击场景中,APT28的攻击者首先向目标用户发送精心构造的钓鱼邮件,邮件正文通常包含指向恶意压缩文件的链接。一旦用户下载并打开压缩文件, Headlace Dropper会使用一些伪装手段诱导用户执行例如文件名为Windows更新、网页链接或者图标伪装为文档的LNK文件等。在某些情况下,攻击者还会利用DLL劫持技术,在用户打开合法应用时加载Headlace Dropper。

除了恶意压缩文件,我们还发现APT28使用了LNK快捷方式文件和恶意URL等多种诱饵格式,以提高攻击的成功率。一旦Headlace Dropper成功执行,它会进一步释放功能更加强大的Headlace后门程序。该后门程序能够与攻击者的命令控制服务器建立通信,并在受害者的系统上执行各种恶意操作,如窃取敏感信息、下载额外的恶意组件等,最终实现对目标系统的长期控制。

图1 攻击流程图

1.2 恶意载荷分析

Headlace类型的攻击活动通常始于向目标发送包含恶意链接的电子邮件。攻击者精心设计邮件内容,以诱骗受害者点击恶意链接。

图2 电子邮件示例

在向受害者投递恶意负载之前,攻击者会利用JavaScript进行一系列验证例如检查用户代理是否包含 "win",且不包含 "wow" (可能表示虚拟机),或者检查渲染器名称是否包含 "vmware"、"virtual"、"google" 或 "engine"等要素,甚至在某些情况下还会确认受害者的地理位置,以实施地理围栏。这一步骤可以帮助攻击者筛选目标,提高攻击的精准度。  

地理围栏是一种策略,通过该策略,攻击者使用定制的脚本或恶意软件,根据目标受害者的地理位置,有选择地对特定区域(如国家或地区)进行攻击和数据窃取。

图3 浏览器检查代码示例

图4 地理围栏检查代码示例

一旦验证通过,攻击者便会向目标投放恶意压缩文件。这些文件经过精心伪装,往往以Windows更新或模特图片等诱人内容为幌子。

图5 投递压缩文件代码示例

在Headlace攻击的早期阶段,压缩文件内包含恶意的CMD代码。

图6 Headlace压缩内文件示例

CMD代码的主要功能是创建一个BAT文件和一个VBS文件,并通过VBS文件来执行BAT文件。与此同时,攻击者还会打开相关的诱饵网站例如露骨的模特网站,或展示一个虚假的更新进度,以掩人耳目。

图7 cmd代码示例

图8 诱饵网站示例

图9 虚假更新进度示例

恶意BAT文件则利用Microsoft Edge浏览器的"headless"模式,访问指定的URL。它会在受害者的"%USERPROFILE%\Downloads"目录下创建一个扩展名为".css"的文件,随后将其移动到"%PROGRAMDATA%"目录,更改扩展名为".cmd",执行,并在执行完成后将其删除,以隐藏攻击痕迹。

图10 bat代码示例

在近期观察到的Headlace攻击中,攻击者还使用了DLL劫持技术来执行BAT文件。他们在压缩包内植入一个易受DLL劫持攻击的合法Calc.exe二进制文件,诱使用户点击执行,进而加载恶意DLL文件。而恶意DLL文件的功能,仍然是下载并执行CSS文件。

图11 DLL劫持文件示例

图12 恶意DLL代码示例

这个恶意脚本的目的,是收集用户计算机上的敏感信息,并将其发送到远程服务器。它主要窃取用户主目录、桌面、下载、文档等目录的文件列表,Program Files和Program Files (x86)目录的信息,以及用户的IP地址和地理位置等数据。

图13 恶意bat代码示例

图14 恶意CSS文件代码示例

通过持续监控Headlace的活动,我们还发现攻击者使用了URL和LNK等其他类型的初始载荷,以多管齐下,提高攻击成功率。

图15 投递压缩文件代码示例

图16 Headlace压缩内文件示例

2.类别二_Masepie

2.1 攻击流程分析

在APT28的另一种常见攻击手法中,攻击者通常会向目标用户发送包含恶意链接的钓鱼邮件。一旦用户点击链接,就会被重定向到攻击者精心设计的诱饵页面,并诱导用户点击特定的按钮或链接。

当用户上当受骗,点击了诱饵页面中的恶意按钮后,他们会被进一步引导到一个WebDAV服务器。在这个服务器上,攻击者预置了恶意的LNK快捷方式文件。受害者一旦双击这些LNK文件,就会在不知情的情况下触发一系列恶意活动。

通过LNK文件,攻击者会利用PowerShell命令释放多个恶意组件,包括用于迷惑用户的诱饵文档、用于执行恶意代码的Python解释器,以及名为MASEPIE的后门程序。

一旦MASEPIE后门在受害者系统上执行,攻击者就能够建立起一条稳定的远程控制通道。利用这个通道,攻击者可以根据需要,选择性地向受害者系统下发其他的攻击组件,如STEELHOOK或OCEANMAP,以进一步扩大对目标环境的控制。此外,MASEPIE后门还允许攻击者在受害者系统上执行任意命令,这使得APT28能够灵活地调整攻击策略,适应不同的目标环境和攻击需求。

图17 攻击流程图

2.2 恶意载荷分析

在攻击的初始阶段,攻击者会向目标发送包含虚假文件链接的电子邮件。当用户点击这些虚假链接后,他们会看到一个模糊的诱饵文档图像例如冒充欧盟太空计划署有关,诱使他们点击按钮以查看完整文档。

图18 诱饵网址示例

然而,当用户点击按钮后,实际上恶意代码会利用JavaScript和search-ms应用协议的特性,在后台下载一个LNK文件。在用户看来,点击按钮后仅仅打开了一个文件资源管理器窗口,而实际上恶意活动已经开始。

图19 页面代码示例

这个LNK文件会加载一个远程诱饵文档,然后通过远程Python解释器执行恶意Python代码。

图20 LNK文件代码示例

这个恶意Python文件属于Masepie恶意软件家族,它使用Python语言开发,具有文件上传、下载以及命令执行等功能。

样本首先连接远程C2服务器,发送一个随机生成的AES密钥和系统用户名。

图21 main函数代码示例

连接建立后,样本进入一个无限循环,持续接收并执行服务器下发的命令。这些命令包括:

  • check:发送一个"check-ok"消息以确认连接状态
  • send_file:启动一个线程,调用receive_file函数接收文件
  • get_file:从受害者计算机上传一个文件到服务器
  • 其他命令:直接在受害者计算机上使用os.popen执行命令并返回结果

图22 receive 函数代码示例

receive_file函数负责连接C2服务器,随机生成AES密钥并发送给服务器,然后接收加密的文件名和大小,发送确认信息,最后接收加密的文件内容,解密并保存到本地。

图23 receive_file函数代码示例 

在后续的攻击中,攻击者可以通过Masepie下发更多类型的恶意样本,例如OCEANMAP或STEELHOOK,以进一步扩大对受害者系统的控制。

通过对这个APT攻击的分析,我们可以看到攻击者是如何步步为营,从最初的诱饵邮件,到恶意LNK文件,再到Masepie恶意软件,最后可能还会投递其他恶意工具。这种多阶段、多工具的攻击方式,增加了攻击的隐蔽性和持久性,给防御和清除带来了很大挑战。

3.类别三_钓鱼

3.1 攻击流程分析 

在APT28的钓鱼攻击活动中,攻击者通常会向目标用户发送精心设计的钓鱼邮件,邮件附件通常是一个恶意的压缩文件。这些压缩文件内会包含诱人的PDF文档或HTML文件,以吸引用户的注意力并诱使其打开。

当好奇的用户打开压缩文件并访问其中的PDF文档时,他们会被进一步引导到一个恶意的HTML页面。在这个精心伪装的钓鱼页面上,用户会被一步步引诱填写自己的账户凭据,如用户名、密码等敏感信息。

一旦用户在钓鱼页面上输入了自己的账户凭据,这些敏感信息就会被攻击者悄无声息地窃取。攻击者可以利用这些窃取的凭据,以合法用户的身份访问组织内部的各种系统和资源,从而实现更广泛的渗透和情报收集。

图 24 攻击流程图

3.2 恶意载荷分析

在我们的观察中,发现了多起针对乌克兰的钓鱼攻击活动。在这些活动中,攻击者向目标发送恶意邮件,邮件附件通常是一个恶意的压缩文件。这些压缩文件内可能包含钓鱼HTML文件或者诱饵PDF文档,内容伪装成ukr.net登录或密码修改。

当受害者点击诱饵PDF文档中的按钮时,会跳转到一个托管在Mocky上的钓鱼网页。这个网页伪装成ukr.net的登录页面,目的是窃取用户的登录凭据。

图25 钓鱼PDF文档示例

除了诱饵PDF文档,攻击者还会使用钓鱼HTML文件。这些文件的主要目的同样是收集用户凭证,但它们还包含一系列恶意代码。

图26 钓鱼页面示例

图27 钓鱼页面示例

这些恶意代码主要使用XMLHttpRequest JavaScript对象将捕获的用户凭证发送到远程的C2服务器,然后等待服务器的响应。根据服务器返回的字符串,钓鱼页面会向受害者显示特定的动态网页内容:

  • "Finaly":表示身份验证完成,页面会撤销模糊遮挡,或引导用户进行输入新密码等后续操作。
  • "Redirect":页面会重定向到真实的"http://mail.ukr.net/",以掩盖钓鱼行为。
  • "AGAIN":暗示服务器要求重新发送数据。
  • "BAD":页面会显示错误信息,暗示用户输入了错误的凭据。
  • "DATA=":服务器会返回JSON数据,页面会解析这些数据并动态更新网页内容。

为了更有效地迷惑用户,服务器还会返回验证码等数据,使钓鱼页面看起来更加真实可信。

图28 钓鱼页面代码示例

通过分析这些钓鱼攻击活动,我们可以看到攻击者是如何精心设计钓鱼邮件和网页,利用压缩文件、PDF文档、HTML文件等多种载体,结合恶意JavaScript代码,与C2服务器动态交互,以实现窃取用户凭证的目的。这种复杂的钓鱼攻击手法,对用户教育和安全防御都提出了更高的要求。

 二、归属研判 

早在APT28针对欧洲及高加索地区展开广泛攻击之初,国外安全机构就曾发布过相关通报,指出APT28组织利用Headlace和Masepie等恶意组件实施一系列网络攻击[1][2]。通过对该组织的持续监控和分析,我们发现,APT28的攻击活动已经扩展到欧洲及高加索地区的其他国家。
这些攻击活动中使用的钓鱼手法,与APT28一贯采用的技术和战术完全吻合。此外,攻击者利用被入侵的Ubiquiti Edge路由器收集用户凭证,这一手法此前已被多个安全研究机构披露,并与APT28的攻击特征高度匹配[3]。
综合以上分析,我们有充分的理由认为,这一系列攻击活动均是由APT28组织策划和实施的。APT28在该地区的活跃程度和攻击规模,表明其对该地区的网络资产和情报信息有着浓厚的兴趣和持续的渗透企图。这一趋势值得全球网络安全界持续关注和警惕。

 三、防范排查建议  

根据对APT28的三起典型攻击活动的分析,我们建议组织采取以下防范和排查措施:

1. 定期开展网络安全教育和培训,提高员工对钓鱼邮件、恶意附件和可疑链接的识别和防范能力。

2. 建立明确的安全政策和程序,要求员工谨慎处理来源不明或可疑的邮件和附件。

3. 对员工进行专门的邮件安全培训,提高其识别和报告可疑邮件的能力。

4. 在所有终端设备上部署和更新360安全卫士,并启用操作系统和应用程序的自动更新功能,及时修补已知漏洞。

5. 限制普通用户的管理权限,减少恶意软件的潜在影响范围。

6. 定期对组织的网络、系统和应用进行全面的安全评估和漏洞扫描。

7. 组建专业的安全事件响应团队,配备必要的人员、技术和资源。

8. 对关键信息资产实施严格的访问控制和加密保护,最小化潜在的泄露风险。

9. 建立关键信息资产的备份和恢复机制,确保在安全事件发生时能够及时恢复业务连续性。

以上建议旨在帮助组织全方位提升其网络安全防御能力,抵御APT28等复杂的网络威胁。同时,我们也建议组织根据自身的业务特点和安全需求,灵活调整和优化以上措施,并持续投入资源,与时俱进地应对不断演进的网络安全形势。    

参考链接

[1]https://cert.gov.ua/article/6276894

[2]https://cert.gov.ua/article/5702579

[3]https://www.justice.gov/opa/pr/justice-department-conducts-court-authorized-disruption-botnet-controlled-russian



团队介绍
TEAM INTRODUCTION
360高级威胁研究院360高级威胁研究院是360政企安全集团的核心能力支持部门,由360资深安全专家组成,专注于高级威胁的发现、防御、处置和研究,曾在全球范围内率先捕获双杀、双星、噩梦公式等多起业界知名的0day在野攻击,独家披露多个国家级APT组织的高级行动,赢得业内外的广泛认可,为360保障国家网络安全提供有力支撑。
继续滑动看下一个
360威胁情报中心
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存