[译] APT分析报告:07.拉撒路(Lazarus)两款恶意软件分析

2021-12-03 14:19:07 浏览数 (1)

这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织的方法,希望对您有所帮助。前文分享了Rampant Kitten攻击活动,包括Windows信息窃取程序、Android后门和电报网络钓鱼页面。这篇文章将介绍APT组织拉撒路(Lazarus)使用的两款恶意软件,并进行详细分析。个人感觉这篇文章应该是韩国或日本安全人员撰写,整体分析的深度距安全大厂(FireEye、卡巴斯基、360)的APT报告还有差距,但文章内容仍值得我们学习。

代码语言:javascript复制
原文标题:Malware Used by Lazarus after Network Intrusion
原文链接:https://blogs.jpcert.or.jp/en/2020/08/Lazarus-malware.html
文章作者:朝長 秀誠 (Shusei Tomonaga)
发布时间:2020年9月29日
文章来源:JPCERT/CC Eyes

文章目录:

  • 一.网络入侵后的恶意软件 1.恶意软件概述 2.配置(Configuration) 3.混淆(Obfuscation) 4.C&C服务器通信 5.下载模块 6.横向移动
  • 二.恶意软件BLINDINGCAN 1.BLINDINGCAN概述 2.配置(Configuration) 3.混淆(Obfuscation) 4.C&C服务器通信 5.指令
  • 三.总结

一.网络入侵后的恶意软件

JPCERT/CC 观察到Lazarus(也称为“隐藏眼镜蛇”)针对日本组织的攻击活动,入侵前后使用了不同类型的恶意软件。第一款工具将介绍网络入侵后使用的一种恶意软件。

Lazarus(T-APT-15)组织是来自朝鲜的APT组织,该组织长期对韩国、美国进行渗透攻击,此外还对全球的金融机构进行攻击,堪称全球金融机构的最大威胁。该组织最早的攻击活动可以追溯到2007年。据国外安全公司的调查显示,Lazarus组织与2014 年索尼影业遭黑客攻击事件,2016年孟加拉国银行数据泄露事件,2017年美国GF承包商、美国能源部门及英国、韩国等比特币交易所被攻击等事件有关。而2017年席卷全球的最臭名昭著的安全事件“Wannacry”勒索病毒也被怀疑是该组织所为。

1.恶意软件概述

该恶意软件下载及执行模块如下。它以 .drv 文件的形式保存在 C:WindowsSystem32 文件夹中,并作为服务运行。使用VMProtect将其混淆,文件末尾包含一些不必要的数据,使文件大小增加到约150MB。图1显示了恶意软件运行前的事件流。

以下各部分将说明有关恶意软件的详细信息,包括配置、通信格式和模块。

2.配置(Configuration)

恶意软件的配置(大小0x6DE)被加密并存储在注册表项中,并在执行时加载。在此分析中,已确认配置存储在以下目录中:

  • Key: HKEYLOCALMACHINESYSTEM CurrentControlSetServiceseventlogApplication
  • Value: Emulate

图2是一个解码配置示例,它包含一个加密密钥以及C&C服务器的信息。(详见附录A)

3.混淆(Obfuscation)

恶意软件中的所有字符串均使用AES128加密,加密密钥被硬编码在恶意软件中。图3是加密密钥的示例,由于恶意软件将16个字母的字符串转换为宽字符(32个字节),因此只有前16个字节被用作密钥。

Windows API名称也经过AES加密。在解密API字符串后,将解析由LoadLibrary和GetProcAddress调用的API的地址。

4.C&C服务器通信

以下是恶意软件首先发送的HTTP POST请求示例。

POST数据的参数([param])是从以下随机选择的。

  • tname;blogdata;content;thesis;method;bbs;level;maincode;tab;idx;tb;isbn;entry;doc;category;articles;portal;notice;product;themes;manual;parent;slide;vacon;tag;tistory;property;course;plugin

POST数据中的值是以下数据的Base64编码的字符串。

  • [default AES Key]@[Unique ID]

如果从C&C服务器返回一个与Cookie(Base64编码)中的“ 4位认证密钥”相同的值作为响应,则该恶意软件将发送以下信息。第二次通信后,恶意软件发送以下HTTP POST请求。

POST数据的参数是从上述列表中随机选择的。POST数据包含两条信息,“Data1”包含命令,而“Data2”包含命令执行的结果和其他附加数据(详细信息请参见附录B)。响应数据的格式与请求相同,但缺少参数。响应数据经过AES加密,然后像POST数据一样进行Base64编码。区别在于“ ”号被一个空格代替。

图5是从与C&C服务器通信开始到下载模块的通信流程。在第二次通信中,恶意软件发送一个新的AES密钥,该密钥对随后的通信进行加密。

在第三次通讯时,将下载一个模块(Module)。以下是下载模块时来自C&C服务器的响应示例。

5.下载模块

模块下载成功后,它将执行如从C&C服务器接收命令的主要功能。恶意软件提供了包括C&C服务器和加密密钥的信息作为参数,下载的模块经过UPX加密,如图6所示。

通信以与前面提到的几乎相同的格式执行。经确认,该模块具有以下功能:

  • 对文件的操作(创建列表、删除、复制、修改创建的时间)
  • 对进程的操作(创建列表、执行、终止)
  • 上传/下载文件
  • 创建并上传任意目录的ZIP文件
  • 执行任意shell命令
  • 获取磁盘信息
  • 修改系统时间

6.横向移动

为了横向移动,在通过Pyinstaller将其转换为Windows PE文件后,使用了SMBMap这个Python工具。该工具允许通过SMB访问远程主机,攻击者通过利用事先获得的帐户信息来横向传播感染。

  • https://github.com/ShawnDEvans/smbmap

Lazarus的活动已经被许多不同的组织都报告过,并且在多个国家都发生了攻击。在日本也有可能继续观察到类似的情况。

二.恶意软件BLINDINGCAN

在上一部分,我们介绍了Lazarus在网络入侵后使用的一种恶意软件。可以肯定的是,该组织使用了多种类型的恶意软件,其中包括CISA最近在其报告中引入的BLINDINGCAN。接下来我们分析BLINDINGCAN的攻击流程。

  • CISA:恶意软件分析报告(AR20-232A)

1.BLINDINGCAN概述

当加载程序加载DLL文件时,恶意软件就会运行。图1显示了BLINDINGCAN运行之前的事件流。JPCERT/CC 已确认DLL文件已在某些示例中编码(这需要在执行前由加载程序进行解码)。

BLINDINGCAN与上述恶意软件有一些相似之处,包括其功能和通信编码算法。下面的部分将解释它的配置和通信协议。

2.配置(Configuration)

BLINDINGCAN的配置(大小0xA84)主要存储在以下位置中:

  • 硬编码在恶意软件本身中
  • 存储在注册表项中
  • 保存为文件

如果将其保存为文件,则将其存储在BLINDINGCAN所在的文件夹中。我们已经确认,如果配置存储在注册表项中,则使用以下目录。

  • Key: HKEYLOCALMACHINESOFTWARE MicrosoftWindowsCurrentVersion==
  • Value: "SM_Dev16[numeric string]"

配置使用XOR编码、AES或RC4进行加密。加密密钥是固定的,也可以根据受感染设备的环境生成。JPCERT/CC 已确认以下加密密钥模式:

代码语言:javascript复制
[File name][Export function name][Service name]
[CPUID][Computer name][Processor name][Physical memory size]

下图显示了解码配置的示例。这包括代理信息以及C&C服务器信息。(详细信息请参阅附录)

3.混淆(Obfuscation)

BLINDINGCAN中的某些代码部分使用RC4进行了混淆。下图是混淆代码的示例。RC4加密密钥在示例本身中进行了硬编码。

4.C&C服务器通信

下面是BLINDINGCAN最初发送的HTTP POST请求数据示例。

数据格式如下,除了RC4密钥,所有值都是RC4加密和Base64编码的。第一个HTTP POST请求中的param2是字符串“T1B7D95256A2001E”编码值。

POST数据中的参数(param1,param2,param3)是从以下内容中随机选择的:

  • boardid,bbsNo,strBoardID,userid,bbs,filename,code,pid,seqNo,ReportID,v,PageNumber,num,view,read,action,page,mode,idx,cateId,bbsId,pType,pcode,index,tbl,idxnum,act,bbsid,bbsform,bid,bbscate,menu,tcode,bcode,bname,tb,borad01,borad02,borad03,mid,newsid,table,Boardseq,bcidx,seq,ArticleID,BNotice,nowPage,webid,boardDiv,subidxa

此处使用的RC4加密与常规加密不同。它有一个进程来将密钥流移动C00h。以下是用Python编写的RC4加密过程,它不适用于使用常规RC4的param3。

下图是从与C&C服务器通信开始到接收命令的通信流程。

如果服务器收到一个Base64编码的param3值(上图中的随机二进制数据)作为对第一个请求的响应,则恶意软件将发送另一个请求。下一数据是用param3中的空param2和一个命令请求(上图中的命令请求0x2040)发送的。param3中的数据是异或编码、RC4加密,然后Base64编码。此后,BLINDINGCAN从C&C服务器接收命令,响应数据也经过XOR编码、RC4加密和Base64编码。唯一的区别是“ ”号被空格代替。

5.指令

BLINDINGCAN执行多种功能,具体如下:

  • 对文件的操作(创建列表,删除、移动、修改时间戳,复制)
  • 对进程的操作(创建列表、执行、终止)
  • 上传/下载文件
  • 获取磁盘信息
  • 获取服务列表
  • 执行任意的shell命令

到目前为止,我们已经介绍了Lazarus使用的两种恶意软件。但是,已知它们也使用其他类型的恶意软件。如果发现任何新型恶意软件,我们将提供更新。

三.总结

Lazarus APT是来自朝鲜的APT组织,挺厉害和出名的一个攻击组织。该组织擅长使用邮件钓鱼进行鱼叉攻击,同时武器库强大,具有使用0Day发起攻击的能力。而从披露的该组织的活动来看,该组织发起攻击的规模都巨大。虽然该组织的攻击活动被不断的披露,但是该组织从未停止攻击活动的脚步,相反攻击活动还更加的活跃,同时还把攻击目标不断扩大,从能源、JS、政企等部门到专项金融机构,尤其是数字货币交易所等。因此,我们提醒政企等广大用户,切勿随意打开来历不明的邮件附件,同时安装安全软件。最后希望这篇文章对您有所帮助,更推荐大家阅读原文。

前文分享:

  • [译] APT分析报告:01.Linux系统下针对性的APT攻击概述
  • [译] APT分析报告:02.钓鱼邮件网址混淆URL逃避检测
  • [译] APT分析报告:03.OpBlueRaven揭露APT组织Fin7/Carbanak(上)Tirion恶意软件
  • [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
  • [译] APT分析报告:05.Turla新型水坑攻击后门(NetFlash和PyFlash)
  • [译] APT分析报告:06.猖獗的小猫——针对伊朗的APT攻击活动详解
  • [译] APT分析报告:07.拉撒路(Lazarus)使用的两款恶意软件分析

2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、逆向分析、APT分析报告、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,谢谢。

0 人点赞