[原创]APT Lazarus 样本分析
2022-6-27 18:51:0 Author: bbs.pediy.com(查看原文) 阅读量:56 收藏

[原创]APT Lazarus 样本分析

2022-6-27 18:51 9623

Lazarus(T-APT-15)组织是来自朝鲜的APT组织,该组织长期对韩国、美国进行渗透攻击,此外还对全球的金融机构进行攻击,堪称全球金融机构的最大威胁。该组织最早的攻击活动可以追溯到2007年。

样本为带宏word文档,运行文档后提示用户启用宏,宏在运行过程中解压PNG图片,释放hta恶意代码,创建二阶样本AppStore.exe。二阶样本通过硬编码密钥解密三阶样本到内存中并启动三阶样本。三阶样本尝试向www.jinjinpig.co[.]kr、mail.namusoft[.]kr建立链接,通信成功后等待CC下发指令。

3.1)样本信息

MD5

ed9aa858ba2c4671ca373496a4dd05d4
样本类型Doc文档

表 基本信息

样本是一个带宏的韩文world文档,启用宏后自动创建“image003.png”,该图片中压缩了一段zlib恶意对象。随后宏代码将该PNG图片转换成名为“image003.zip”的BMP格式图片,其目的为:通过图片格式转换,解压PNG图片中zlib恶意对象。最后调用mshta运行zlib恶意对象解压出的hta代码,创建二阶样本AppStore.exe。

3.2)行为分析

一阶样本是一个韩语world文档,打开文档后提示用户启用宏,启用宏后显示文档内容。

图 文档界面

图 文档内容

通过监控程序可以发现样本运行后创建了一系列文件

图 文件创建

3.3)静态分析

ALT+F11打开文档宏,发现提示需要输入密码,这里用到工具“olddump.exe”(用pyinstaller将oledump.py打包成exe方便使用)绕过密码限制查看宏。宏代码中发现部分字符串用BS64方式编码,解码字符串,其含义为:WMI对象、mshta、“zip”文件后缀。经分析宏代码主流程为:创建“image003.png”并将.png格式转换为.bmp格式并重命名为“image003.zip”(image003.zip=image003.bmp),随后使用mshta运行“image003.zip”,最后删除目录。

图 宏代码

使用binwalk打开“image003.png”,发现其存在zlib压缩部分。BMP格式为未压缩图文格式,攻击者将zlib恶意对象压缩到PNG图中能避开静态检测,将PNG转换为BMP格式时会解压恶意zlib对象。

图 PNG格式

记事本打开“image003.bmp”,发现内部有js代码,其功能为:创建'C:/Users/Public/Libraries/AppStore.exe'。删除无用部分并修改“image003.bmp”为“image003.hta”,双击运行,即可获得二阶样本AppStore.exe。

图 BMP格式

4.1)基本信息

文件名AppStore.exe
MD5118CFA75E386ED45BEC297F8865DE671
时间戳1996-10-17 06:48:21
架构64位

表 基本信息

运行该样本后会产生网络链接,但样本自身无网络模块。样本多次使用解密及内存拷贝函数获取所需字符串。样本末尾存在大量加密字符串,经分析分别为二阶样本字符串解密密钥和三阶样本。

4.2)行为分析

a)请求2个域名 www.jinjinpig.co.kr、mail.namusoft.kr,请求失败后删除自身

b)尝试创建“C:\Users\root\AppData\Local\Temp\edg89COA.bat”

图 域名请求

图 文件创建

4.3)静态分析

IDA打开样本,未发现网络模块,无注册表操作。样本存在文件创建函数、内存拷贝行为。winhex查看样本,在样本末尾处存在大量加密字符串,字符串经后续分析为解密密钥“by7mJSOkVDaWg*Ub”及三阶样本。

图 加密字符串

4.4)动态分析

使用GetTickCount函数判断程序是否被调试。

图 判断程序是否被调试。

样本使用memset和memmove函数拷贝自身加密字符到新空间并利用自定义解密算法解密,获取三阶样本。通过该方式解密出三阶样本不会有驻留文件仅存于内存中。

图 解密三阶样本

5.1)基本信息

MD57F19133A7AF379A445C4431D26675734
时间戳2022-12-03 15:55:05
架构64位

表 基本信息

样本创建名为“Microsoft32”互斥体,通过解密函数解密字符串,获取kernel32.dll、WS2_32.dll、user32.dll、iphlpapi.dll相关函数。尝试向2个域名www.jinjinpig.co.kr、mail.namusoft.kr发送数据并发现有5种指令。

5.2)静态分析

a)发现样本存在WS2_32.dll网络模块

b)样本将创建名为“Microsoft32”互斥体

c)样本中存在大量未知字符串

图 网络模块

图 互斥体

图 加密字符串

5.3)动态分析

样本解密字符串,获取kernel32.dll、WS2_32.dll、user32.dll、iphlpapi.dll相关函数。

图 函数解密

解密2个域名http://mail.namusoft.kr/jsp/user/eam/board[.]jsp、http://www.jinjinpig.co.kr/Anyboard/skin/board[.]php

图 解密url

样本获取网络适配器信息,查找mac地址、配置ua头“"Mozilla/4.0  (Windows NT 5.1) AppleWebKit/537.12 (KHTML, like Gecko) Chrome/42.0.1275.42 Safari/12.32 Infopath.1875271113"使用POST方式向http://www.jinjinpig.co.kr/Anyboard/skin/board[.]php发出请求。

图 获取网卡适配器

当与CC www.jinjinpig.co.kr、mail.namusoft.kr通信成功时,有5种指令:

a)、指令8888:创建新线程,获取系统目录调用cmd.exe,将接收到的参数传入CreatePipe作为输入(v11),将管道输出传入CreateProcessA(v12->v16)。将输入参数(v11)作为ReadFile函数的文件句柄,将获取的主机mac地址封装为test.gif向cc发送。如果创建线程失败则用自定义算法对信息加密,通过WinExec执行后发送加密数据。

图 创建新线程

图 线程功能

图 数据发送

图 创建线程失败

b)、指令 8877:使用自定义加密算法将从服务器收到的指令存储到文件中。

图 指令8877

c)、指令1234:将从网络接收到的指令利用CreateThread创建新线程。

图 指令1234

d)、指令2099:生成批处理文件删除Appstore.exe。

图 指令2099

e)、指令1111:功能未知

图 指令1111

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

最后于 2022-6-28 09:12 被戴夫的小推车编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-273460.htm
如有侵权请联系:admin#unsafe.sh