首页
社区
课程
招聘
[原创]两例Lazarus的样本分析
发表于: 2019-12-3 16:29 4146

[原创]两例Lazarus的样本分析

2019-12-3 16:29
4146

网上已经很多很多关于Lazarus的介绍,我也随便分享一下我对该组织的了解以及看法。
Lazarus Group ,又称Hidden Cobra、NICKEL ACADEMY、Guardians of Peace、ZINC....总之就是别名超级多,据说隶属于朝鲜人民军121局
图片描述

我个人觉得Lazarus 是全球最臭名昭著的APT组织了。

近两年勒索病毒泛滥,像GlobeImposter、GandCrab、CrySiS、CryptON...各种勒索以及变种数不胜数,根据数据表示,当今勒索泛滥的一个主要原因就是17年席卷全球的wannacry,而早些时候,wannacry被爆出与Lazarus 相关,很有可能就是Lazarus发起的。所以说是Lazarus 挑起了这个现在这个勒索站也不为过。

其次就是今年10月份的印度核电厂被攻击事件(https://mp.weixin.qq.com/s/haCZK4m3JVpmgxXNMj30hQ),此次攻击导致核电站的某一个反应堆被紧急关闭,种种迹象表明此次攻击或许也是Lazarus所为。恰好在前段时间,我看了美剧《切尔诺贝利》,看到了如果核泄漏,将会给人类,给环境带来不可弥补的伤害,不由觉得对核电站发起攻击真的是有点丧心病狂。

还有一些其他原因,但是再写的话感觉此贴改为Lazarus 批判大会得了。就还是回到样本分析。

此次两个样本攻击手法类似,都属于非PE样本,就一起写一下。
样本1 e1d363f853f2e666ef062102db360dce
样本2 6850189bbf5191a76761ab20f7c630e

样本1
https://towingoperations.com/chat/chat.php
https://baseballcharlemagnelegardeur.com/wp-content/languages/common.php
https://www.tangowithcolette.com/pages/common.php

样本2:
https://crabbedly.club/board.php
https://craypot.live/board.php
https://indagator.club/board.php

关联hash:
6885d0dd48c08576c55966dc97072afa
c3626fb922d18361b6ce6822465bc453
4cbd45fe6d65f513447beb4509a9ae3d
da4981df65cc8b5263594bb71a0720a1
4345798b2a09fc782901e176bd0c69b6
e1d363f853f2e666ef062102db360dce
5c64d771b5e811cb810c591a1460c406
870e315b3bda54a13acd6cad5481e235
d150e39d9782a0bfff4a8c44a188e33c

样本下载到本地,winhex查看一下,发现是ole格式的,应该是doc文档:
图片描述

将样本添加后缀名doc,office2013打开:
图片描述

看样子是一个典型的宏利用样本,启用宏并alt+f11查看宏代码:
图片描述

还是利用之前帖子里面提到的aopr进行破解,破解之后打开宏代码如下:
图片描述

可以看到代码最开始对操作系统做了一个判断,接着是一些解密和转换。
程序的入口点在最下面的AutoOpen函数:
图片描述

拼接路径"C:\Users\Shyt\AppData\Local\Temp\ujzwbyjntbpmh.ps1"
看到这里基本可以确定程序会将上面看到的数据解密并写入到ujzwbyjntbpmh.ps1文件中了。
图片描述

由于我运行了两次,所以多出了一个snphhuatvsbkw.ps1文件,但其实两个文件是完全相同的,因为这里是根据随机数计算出来的文件名,所以每次运行,在%temp%目录下都会多一个文件。
图片描述

接着程序会依次调用四个解密函数,将ps代码写入到刚才创建的文件中
图片描述

最后通过一句shell命令执行,这里shell命令翻译出来其实是:
Shell powershell -ExecutionPolicyBypass -file spath, 0
这里的spath就是释放的ps文件的路径

打开ps文件,映入眼帘的是三个硬编码的C2地址:
https://towingoperations.com/chat/chat.php
https://baseballcharlemagnelegardeur.com/wp-content/languages/common.php
https://www.tangowithcolette.com/pages/common.php
域名分别为:
towingoperations.com
baseballcharlemagnelegardeur.com
www.tangowithcolette.com

图片描述

该样本所用到的地址早已和Lazarus关联起来
图片描述

翻看一下代码,可以看到入口点在最后面的mlp函数
图片描述

直接上powershell ISE 调试:
在mlp函数下断点然后运行报错

图片描述

这是由于powershell权限导致的,以管理员身份启动一个powershell,执行set-executionpolicy remotesigned即可。
图片描述

再次运行,成功命中断点:
图片描述

在powershell ISE调试中
F10 逐过程
F11 单步
shift + F11 跳出函数
F5 运行
F9 设置断点

通过对代码的分析可知,程序最开始会调用sdducpt函数:
图片描述

对于已经执行过的命令,可以在下方的DBG窗口中打印变量值
图片描述

这里可以看到又是利用随机数生成了两个字符串,结合后面的代码,$unm将作为请求参数,而$fnm应该是一个文件名。

接着是创建web访问对象,然后依次设置参数,最后发起请求。
图片描述

请求信息如下:
图片描述

如果请求失败则休眠60s
图片描述

然后请求其他地址,一直循环。
如果请求成功,则会通过$w.Write($pbdy,0,$pbdy.Length)发送一些其他数据到服务器:
格式化一下发送的$pdby:
图片描述

如果请求成功,则最后会执行到inses函数
图片描述

nmsg2 slp函数,程序休眠
图片描述

nmsg3 结束当前程序
图片描述

nmsg11 收集当前计算机一些基本信息,并进行格式转换,等待上传
图片描述

nmsg12 检索程序当前状态
图片描述

nmsg14 显示当前程序的一些配置信息
图片描述

nmsg15 更新恶意程序的配置文件
图片描述

nmsg18 以隐藏方式启动cmd
图片描述

nmsg20 上传文件
图片描述

nmsg21 下载文件
图片描述

nmsg24 通过Start-Process执行命令
图片描述

在宏代码中就已经判断了操作系统,如果是MacOS操作系统则执行如下代码:
图片描述

程序通过curl下载https://nzssdm.com/assets/mt.dat保存到本地的/tmp目录,文件名为长度为12的随机字符。
然后通过chmon +x 给文件赋予权限
popen执行

现在域名好像已经无法访问了
VT查询一下发现大概是今年五月份攻击者所使用的域名:
图片描述

通过关联查询,找到了这个mt文件:
图片描述

mt.dat是一个macOS下的二进制文件,下载到本地之后可以通过IDA查看
查看mt.dat文件的字符串信息:
图片描述

可以看到请求头 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 和windows powershell脚本中一样,且出现了和powershell中相同的地址:
https://towingoperations.com/chat/chat.php
https://baseballcharlemagnelegardeur.com/wp-content/languages/common.php
https://www.tangowithcolette.com/pages/common.php

网络请求函数InitNetInfo:
图片描述

如果InitNetInfo请求成功则通过Send函数发送数据
如果Send函数发送成功,则通过Recv接收
最后UninitNetInfo释放
图片描述

Send内容同powershell看到的基本相同
图片描述

macOS中的远控模块:
图片描述

该样本中有三个域名:

towingoperations.com关联样本如下:
图片描述

hash:
6885d0dd48c08576c55966dc97072afa
c3626fb922d18361b6ce6822465bc453
4cbd45fe6d65f513447beb4509a9ae3d
da4981df65cc8b5263594bb71a0720a1
4345798b2a09fc782901e176bd0c69b6

baseballcharlemagnelegardeur.com关联样本如下
图片描述

hash:
e1d363f853f2e666ef062102db360dce
5c64d771b5e811cb810c591a1460c406
4cbd45fe6d65f513447beb4509a9ae3d(重合)
870e315b3bda54a13acd6cad5481e235
4345798b2a09fc782901e176bd0c69b6(重合)

www.tangowithcolette.com关联样本如下:
图片描述

hash:
d150e39d9782a0bfff4a8c44a188e33c
4cbd45fe6d65f513447beb4509a9ae3d(重合)
4345798b2a09fc782901e176bd0c69b6(重合)

样本下载到本地,发现是xls格式文档,直接加上xls后缀:
图片描述

office2013打开,样本以文件调查的形式展现,欺骗用户:
图片描述

这个问卷的内容大概如下:
图片描述

由于左上角突出的"启用内容"四个大字,该样本很有可能是利用宏进行攻击的,于是启用内容,并alt + f11 查看宏:
图片描述

通过aopr工具清除密码后代码大概长这样:
图片描述

大概分析一下,这个VBA脚本一共有三个函数:
Sub Doc_Data(pth)
Sub Doc_Init()
Sub SmileyFace1_Click()

根基之前Excel的表现来看,SmileyFace1_Click应该是触发函数,也就是最开始文档中的那个笑脸:
图片描述

可以看到调用链如下:
SmileyFace1_Click -> Doc_Init -> Doc_Data
图片描述

函数首先会判断AA1的值是否为0,如果为0则调用Doc_Init函数
图片描述

Doc_Init函数内容就比较简单:
图片描述

其中有一句cpf = powershell -ExecutionPolicy Bypass -file
很明显这里是在temp目录下新建一个powershell脚本,并将这个路径作参数传递到Doc_Data中进行填充。
填充了之后会调用WinExec执行
文件路径为:"C:\Users\Shyt\AppData\Local\Temp\sopiiubuvsclwukz.ps1"
图片描述

最后生成的powershell脚本
图片描述

powershell进来首先是硬编码了三个url地址到auri变量:
图片描述

根据逻辑,程序会先调用sdducpt函数:
图片描述

$rq初始化完成如下:
图片描述

请求失败后会sleep60s然后不断请求其他的C2地址
图片描述

图片描述

图片描述

图片描述

图片描述

如果请求成功会返回$rq,最后该函数(ses)返回$rs = $true
图片描述


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-12-3 16:29 被jux1a编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//