安天CERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作,同时发现目前有一个比特币钱包地址收到了0.05BTC。
图2-1 勒索软件技术特点对应ATT&CK的映射
具体ATT&CK技术行为描述表:
ATT&CK阶段/类别 |
具体行为 |
注释 |
执行 |
诱导用户执行 |
诱导用户执行邮件中的附件 |
持久化 |
利用自启动执行或登录 |
添加注册表实现自动启 |
发现 |
发现文件和目录 |
枚举系统内文件和目录 |
发现进程 |
获取进程名称判断恶意代码是否执行 |
|
影响 |
损毁数据 |
XOR指定后缀名文件的前100byte |
篡改可见内容 |
XOR指定后缀名文件的前100byte |
加密文件命名方式 |
<原文件名>+.locky |
联系方式 |
无 |
加密文件类型 |
试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。本次分析的样本采用的加密策略是XOR加密,采用指定长度的字符XOR指定文件前100byte字符。 |
勒索币种与金额 |
0.05个比特币 |
是否有针对性 |
未发现 |
能否解密 |
能 |
是否内网传播 |
否 |
勒索窗口 |
|
表5‑1 样本标签
病毒名称 |
Trojan/MSIL.locky |
原始文件名 |
Leen.exe |
MD5 |
B0E68A3352D31A9DD403A5ACAE6387A0 |
处理器架构 |
Intel 386 or later, and compatibles |
文件大小 |
127.50 KB (130,560 字节) |
文件格式 |
Win32 EXE |
时间戳 |
2069-12-23 16:26:41(伪造) |
数字签名 |
无 |
加壳类型 |
无 |
编译语言 |
.NET |
VT首次上传时间 |
2020-09-19 17:36:41 |
VT检测结果 |
51/70 |
该中文勒索软件使用.net语言编写。其运行后,首先通过获取进程名称判断恶意代码是否执行,若已执行则弹出“应用执行中,请勿重复执行,首次执行需耗时20分钟初始化”窗口,并退出程序。
图5‑1 弹出窗口
判断“%USERNAME%DocumentsDriver”目录下是否存在b.print文件且文件内容为“6688123”,若存在则表示用户文件已交纳赎金后解密,无需再加密,则退出程序,否则重复加密。所以该文件可作为该勒索软件的免疫文件。
使用IE浏览器打开hxxps://lihi1.cc/4kdW2(失陷主机、钓鱼网站),判断是否可以连接网络。
若连接网络成功则将自身复制到“%USERNAME%DocumentsWindowsShell”目录下,并将文件属性设置为隐藏。
打开CMD命令行,将其窗口隐藏,运行“%USERNAME%DocumentsWindowsShell”下的复制过来的样本并将自身程序退出。
将“%USERNAME%DocumentsWindowsShell”目录下的自身添加到注册表实现开机自启动。
安天CERT通过对该勒索软件分析发现其试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。通过对传入的参数不同进行相应的不同加密方式,如下所示:
在本次所分析的样本中采用的加密策略为XOR加密,所以通过该方式加密的文件可以进行解密。XOR加密密钥如下表所示:
表5‑2 XOR加密字符
XOR加密密钥 |
类型 |
1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5 |
Byte |
XOR加密具体加密方式为采用指定长度的字符XOR指定文件前100byte字符。
获取用户主机上磁盘信息,如下图所示:
进入加密函数中LockTXTFiles加密函数进行加密。如下图所示:
试图模仿Locky勒索软件,对加密的文件追加“.locky”后缀名。具体格式为:<原文件名>+.locky。如下图所示:
在分析的过程中发现该勒索软件的非对称加密RSA和对称加密AES尚未完成,推测其为测试样本。如下所示非对称加密RSA函数内容为空。
表5‑3 勒索软件指定的后缀名
.gif |
.jpg |
.txt |
.png |
.xlsx |
.ppt |
.html |
|
.xls |
.doc |
.docx |
.pptx |
.aam |
.abf |
.adb |
.adi |
.afm |
.ai |
.all |
.anc |
.aps |
.ari |
.art |
.asc |
.ase |
.asm |
.asp |
.avi |
.bak |
.bat |
.c |
.cad |
.cap |
.ccb |
.cda |
.cdf |
.class |
.clss |
.com |
.cpp |
.crt |
.mov |
.csv |
.db |
.go |
.ini |
.jpeg |
.java |
.jar |
.js |
.mpeg |
.mp4 |
.wav |
.mp3 |
.py |
.pot |
.pon |
.ra |
.rtf |
.vbs |
.vbp |
.vba |
.wps |
5.2.4 样本衍生文件
表5‑4 衍生文件路径与文件及其功能
衍生文件路径与文件名 |
功能 |
%USERNAME%DocumentsDrivera.print |
加密后的比特币地址 |
%USERNAME%DocumentsDriveraaa.print |
记录比特币金额倍数 |
%USERNAME%DocumentsDriverKKK.print |
勒索软件运行日志 |
%USERNAME%DocumentsDrivert.print |
记录软件窗口倒计时的时间 |
%USERNAME%DocumentsDriverb.print |
记录加密过的标志 |
%USERNAME%DocumentsDriverK.log |
(推测)记录加密RSA密钥 |
%USERNAME%DocumentsDriverK. print |
(推测)记录AES密钥 |
%USERNAME%DocumentsWindowsShell HttpAgilityPack.dll |
未知 |
判断“HttpAgilityPack.dll”是否在“%USERNAME%DocumentsWindowsShell”目录下存在,若不存在则创建HttpAgilityPack.dll。读取HttpAgilityPack.dll中是否存在“ot”,“main”字符串,不存在则写入“ot 0 main”字符串。由于HttpAgilityPack.dll在该勒索软件中并未被调用,其功能未知。
表5‑5 比特币钱包地址
1Ly1hXiXG5fa4k79of6xPm4xLYFyj5iH8N |
1L9REpvzBkWUhVKzsoLJEVLBh19Ng5jiqb |
1JXXsYGiNmVzEyuj29murEpFqc9sXr5dhn |
1FuPAucXqBXvhzzXguCyQAH7AbGHg6xfrM |
1FgbsSWNHzDnHjbxokLqe1rbjy4juSpsas |
从五个比特币钱包地址中随机获取一个钱包地址与“u0005”进行异或加密,将其保存在“%USERNAME%DocumentsDrivera.print”文件中,待解密时读取该文件。
安天CERT在跟踪比特币钱包地址时发现其中一个钱包已经收到了一个价值为0.05BTC,以本报告发布前的比特币汇率为准,0.05BTC约为11582***。
勒索软件加密完成后在桌面弹出一个勒索窗口,提示受害者文件已被加密,缴纳赎金。勒索窗口如下图所示:
当勒索窗口上的倒计时结束时,其会读取衍生文件“%USERNAME%DocumentsDriveraaa.print”获取当前加密倍数将其提高两倍并弹出窗口提示受害者“由于您长时间未付款,价格提升为两倍,Sorry”。如下图所示:
安天CERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件针对“%USERNAME%DocumentsDrivera.print”中内容进行解密获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作。
图5‑18 勒索窗口解密按钮
该勒索软件解密方式与加密方式类似,具有三种解密方式。根据所加密方式的不同所采用的解密方式不同。解密方式如下表所示:
XOR解密 |
AES解密 |
RSA解密 |
在本次所分析的样本中采用的解密策略是XOR解密方式,所以解密所采用的解密密钥与加密密钥一样。解密密钥如下表所示:
表5‑6 解密策略是XOR解密方式
XOR解密密钥 |
类型 |
1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5 |
Byte |
具体解密方式为采用指定长度的字符XOR指定文件前100byte字符。
在分析的过程中发现RSA解密和AES解密功能未完善,如下所示RSA解密方式函数,读取K.log文件获取密钥并未后续解密操作。
IoCs |
b0E68A3352D31A9DD403A5ACAE6387A0 |
hxxps://lihi1.cc/4kdW2 |
本文作者:AntiyLab
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/161007.html