LazarusAPT组织如何利用藏匿于BMP图片中恶意代码下载远控软件

广告仓库_厂家直销_价格优惠×

Lazarus APT是目前最顶尖的攻击组织之一,至少从2009年开始就一直活跃在网络攻击的最前沿。众所周知,这个组织的主要攻击目标是美国、韩国、日本和其他一些国家。在他们最近的一次攻击活动中,Lazarus对安全研究人员发动了复杂的定向网络钓鱼攻击。

众所周知,Lazarus在攻击过程中经常采用新的技术和定制的工具集,以提高其攻击的有效性。在今年的4月13日,我们发现了这个组织用来攻击韩国的一份文件。在这次攻击活动中,Lazarus采用了一种非常先进的技术,即利用嵌入了恶意HTA对象的BMP文件来投递其Loader。

攻击流程

这次攻击很可能是从分发钓鱼邮件开始的,该邮件携带了武器化的恶意文件。下图显示了这次攻击的完整过程。在接下来的章节中,我们将对这个过程进行详细的分析。

广告手机软件下载你用哪个?免费软件尽情下载×

图1:攻击流程

分析相关文件

打开文档时,显示一个蓝色的韩文主题,并要求用户启用宏来查看文档。

广告如何在线识别图片文字×

图2:蓝色主题

启用宏后,会弹出一个信息框,点击后,其中的诱饵文档就会被加载。

广告图片转换成pdf出问题怎么办?×

图3:诱饵文档

该文档的名称为韩文“참가신청서양식.doc”,内容为韩国某个城市的博览会的参展申请表。文件的创建时间是2021年3月31日,这与攻击发生在同一时间。

该文件已被武器化,在打开时会执行一个宏程序。

广告求好用的视频格式转换器推荐?×

图4:宏程序

该宏程序首先从调用MsgBoxOKCancel函数开始。这个函数将向用户弹出一个消息框,声称是微软Office的一个旧版本。在显示消息框后,它将执行以下步骤:

广告如何把一段简单的代码变复杂?×

图5:Document_Open

以base64格式定义所需的变量,如WMI对象、Mshta与文件扩展名,然后调用Decode函数对其进行base64解码。

获取活动文档的名称并将名称与扩展名分开。使用ActiveDocument.SaveAs以wDFormatHTML为参数创建一个HTML格式的活动文档的副本。将文档保存为HTML格式时,会在FILENAME_files目录下存储该文档的所有图片。图6: 保存为HTML调用show函数来使文档处于受保护状态。通过使文档处于受保护状态,可以确保用户无法对文档做任何修改。广告ocr文字识别软件精准识别图像文字_2022官方正版下载×

图7:保护文档

获取嵌入了zlib对象的图像文件(image003.png)。通过调用WIA_ConvertImage将PNG格式的图像转换为BMP格式。由于BMP文件格式是非压缩的图形文件格式,因此,将PNG文件格式转换为BMP文件格式会自动解压从PNG嵌入到BMP的恶意zlib对象。这是攻击者用来绕过可以检测图像内嵌入对象的安全机制的一种巧妙方法——由于该文件包含一个PNG图像,其中含有一个经过压缩的zlib恶意对象,由于该对象是压缩格式的,所以静态检测无法发现它。然后,攻击者只需通过一个简单的转换机制来解压恶意内容即可。广告股票行情软件免费下载下载 (官版免费)×

图8:在png和bmp文件中嵌入的对象

广告10 个免费的高清图库网站,强烈推荐☞☞☞×

图9:在bmp中嵌入的hta文件

获得一个WMI对象来调用Mshta,以达到执行bmp文件的目的。解压缩后的BMP文件会包含一个HTA文件,该文件将执行Java Script来投递payload。删除目录中的所有图像,同时删除由SaveAs函数生成的目录。

分析BMP文件(image003.zip)

实际上,宏代码会在图像转换过程中将扩展程序名zip添加到BMP文件中,以便将其伪装成zip文件。该BMP文件含有一个嵌入式的HTA文件。而该HTA文件又包含一个JavaScript脚本,该JavaScript脚本会在“C:\Users\Public\Libraries\AppStore.exe”目录中创建文件“AppStore.exe”,并向该文件填充相应的内容。

首先,它会定义一个数组,其中包含脚本所需的函数和参数:OpenTextFile、CreateTextFile、Close、Write、FromCharCode、“C:/Users/Public/Libraries/AppStore.exe”以及一些垃圾值。当这个脚本想要执行相关操作时,它将调用带有十六进制值的第二个函数,该函数负责建立索引,以便从第一个数组中检索所需的值。

例如,它首先会使用0x1dd值来调用第二个函数。这个函数将从0x1dd中减去0x1dc以获得第一个数组的索引,该索引将为1。然后,它使用该索引来检索第一个数组的第一个元素,即“C:/Users/Public/Libraries/AppStore.exe”。按照相同的方法,它会继续调用CreateTextFile来创建AppStore.exe,然后将MZ写入其中。然后,它通过调用fromCharCode函数将十进制格式的数据转换为字符串,并且使用的方法与将其写入AppStore.exe的方法完全一致。最后,它会调用Wscript.Run,以执行下载的payload。

广告免费秒点geelevel远程控制电脑软件软件×

图10:嵌入的HTA对象

分析Payload(AppStore.exe)

AppStore.exe将加载一个base64编码的payload,该payload将被添加到该程序的末尾。在有效载荷之前,有一个字符串,它其实就是相应的解密密钥(by7mJSoKVDaWg*Ub)。

广告有什么免费下载歌曲的软件?×

图11:嵌入的payload

为了解密第二阶段的payload,它首先将自己写入由VirtualAlloc创建的缓冲区,然后寻找加密的payload并将其复制到另一个缓冲区中。

广告安卓模拟器电脑版下载 官网×

图12:分配内存

之后,它实现了自己的base64解码器,对分配的缓冲区进行解码,并使用memset和memmove将其写入另一个缓冲区。最后,将对这个经过加密的payload进行解密:通过硬编码的解密密钥进行XOR处理,以生成第二阶段的payload。

广告10 个免费的高清图库网站,强烈推荐☞☞☞×

图13:XOR解密

解密过程结束后,它将跳转到第二阶段payload的起始地址并开始运行。

分析第二阶段payload

这个payload是由AppStore.exe加载到内存中的,但是没有被写入磁盘。首先,它会执行一个初始化过程,具体步骤如下所示:

广告安卓模拟器电脑版下载 官网×

图14:初始化过程

创建互斥锁:检查计算机上是否存在带有“ Microsoft32”名称的互斥锁:如果存在,则退出;否则,就意味着该计算机尚未感染此RAT,并开始其恶意活动。解析API调用:由于所有重要的API调用都经过了base64编码和RC4加密,因此,需要在运行时进行相应的解码和解密处理。其中,RC4解密的密钥是 “MicrosoftCorporationValidation@#$%^&*()!US”。广告10 个免费的高清图库网站,强烈推荐☞☞☞×

图15:API解析器

向指挥和控制服务器发送HTTP请求。实际上,该服务器的地址已经过了base64编码处理,并使用自定义的加密算法进行了加密。另外,读者可以在这里找到相应的解码器/解密器。这种自定义加密算法类似于US-CERT报告的与Lazarus相关的BISTROMATH RAT所使用的加密算法。广告用手机远程控制电脑,这款软件帮你实现×

图16:自定义的解密算法

http://mail.namusoft.kr/jsp/user/eam/board.jsp

http://www.jinjinpig.co.kr/Anyboard/skin/board.php

初始化任务完成后,它将检查与C&C服务器的通信是否成功:如果成功,则转到下一步,以便从服务器接收命令并根据命令执行不同的操作。

此外,从C&C接收到的命令,也使用其自定义得加密算法进行了base64编码和加密处理(图16)。去混淆后,它会根据命令代码执行下面展示的命令。此时,与服务器的通信已通过发送和接收套接字功能完成。

8888:它尝试以两种不同的方式执行在命令代码之后收到的命令。首先,它尝试通过创建一个新线程来执行命令(图17)。该线程在命令代码之后获取命令,并使用cmd.exe来执行它。这个过程所通过CreatePipe和CreateProcessA来完成的。然后,它将使用ReadFile函数来读取cmd.exe命令的输出结果。广告学会这几招,照片不用PS也很美!×

图17:创建线程

cmd.exe的输出将进行相应的编码和加密处理,并使用HTTP POST请求作为test.gif发送给服务器(图18)。

广告有什么好的手机远程控制电脑的软件?×

图18:将cmd.exe的输出作为test.gif进行发送

如果CreateThread进程不成功,则通过调用WinExec执行命令,然后发送“8888 Success!”。此外,使用自定义的加密算法对邮件进行加密后,还会进一步使用base64将该邮件编码为test.gif,之后才会将其发送给服务器。

广告哪些Mac 软件下载网站值得推荐?×

图19: WinExec

1234: 它用于调用CreateThread,以执行它从服务器收到的缓冲区中的代码(第三阶段的payload)。最后,它对字符串“1234 Success!”进行编码和加密处理,并将其作为test.gif图片发送给服务器。2099: 它用于创建了一个批处理文件并执行,然后退出。这个批处理文件将会从受害者的机器上删除了AppStore.exe程序。广告远程办公用什么软件比较好?×

图20:创建批处理文件

8877: 它用于把从服务器收到的缓冲区中的内容存储到一个文件中。1111:它用于调用shutdown函数来禁止针对套接字的发送或接收操作。

这个第二阶段的payload使用了自定义编码的用户代理进行通信。实际上,所有这些用户代理都经过了base64编码,并使用相同的自定义加密算法对服务器地址进行加密。下面展示的是这个RAT所使用的用户代理清单。