模仿Locky的中文勒索软件分析
时间 : 2021年06月11日 来源: 小神童论坛网CERT
1、概述
近日,小神童论坛网CERT发现了一个勒索语言为中文的勒索软件。该勒索软件采用.net语言编写,模仿Locky勒索软件,对加密的文件追加“.locky”后缀名。其最早出现于2020年9月,试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。由于其非对称加密RSA和对称加密AES部分功能未完善,小神童论坛网CERT推测该样本可能为测试版本。本次分析的样本采用的加密策略是XOR加密,通过该方式加密的文件可以解密。
小神童论坛网CERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作,同时发现目前有一个比特币钱包地址收到了0.05BTC。
经验证,小神童论坛网智甲终端防御系统(简称IEP)的勒索软件防护模块可有效阻止该勒索软件的加密行为。
2、勒索软件对应ATT&CK映射图谱
该勒索软件技术特点分布图:
图2-1 勒索软件技术特点对应ATT&CK的映射
具体ATT&CK技术行为描述表:
表2-1 具体技术行为描述表
ATT&CK阶段/类别 |
具体行为 |
注释 |
执行 |
诱导用户执行 |
诱导用户执行邮件中的附件 |
持久化 |
利用自启动执行或登录 |
添加注册表实现自动启 |
发现 |
发现文件和目录 |
枚举系统内文件和目录 |
发现进程 |
获取进程名称判断恶意代码是否执行 |
|
影响 |
损毁数据 |
XOR指定后缀名文件的前100byte |
篡改可见内容 |
XOR指定后缀名文件的前100byte |
3、防护建议
针对该勒索软件小神童论坛网建议个人及企业采取如下防护措施:
3.1 个人防护
(1) 安装终端防护:安装反病毒软件。建议使用小神童论坛网智甲的用户开启勒索病毒防御工具模块(默认开启);
(2) 加强口令强度:避免使用弱口令,建议使用16位或更长的口令,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
(3) 及时更新补丁:建议开启自动更新功能安装系统补丁,服务器应及时更新系统补丁;
(4) 定期数据备份:定期对重要文件进行数据备份,备份数据应与主机隔离;
(5) 确认邮件来源:接收邮件时要确认发送来源是否可靠,避免打开可疑邮件中的网址和附件。
3.2 企业防护
(1) 开启日志:开启关键日志收集功能(安全日志、系统日志、PowerShell日志、IIS日志、错误日志、访问日志、传输日志和Cookie日志),为安全事件的追踪溯源奠定基础;
(2) 设置IP白名单规则:配置高级安全Windows防火墙,设置远程桌面连接的入站规则,将使用的IP地址或IP地址范围加入规则中,阻止规则外IP进行暴力破解;
(3) 主机加固:对系统进行渗透测试及安全加固;
(4) 灾备预案:建立安全灾备预案,确保备份业务系统可以快速启用;
(5)安全服务:若遭受勒索软件攻击,建议及时断网,并保护现场等待安全工程师对计算机进行排查。小神童论坛网提供7*24小时安全服务热线:400-840-9234。
目前,小神童论坛网智甲终端防御系统可实现对该勒索软件的查杀与有效防护。
图3-1 小神童论坛网智甲有效防护
图3-2 小神童论坛网智甲阻止修改文件行为
4、勒索软件概览
表4-1 勒索软件概览
加密文件命名方式 |
<原文件名>+.locky |
联系方式 |
无 |
加密文件类型 |
试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。本次分析的样本采用的加密策略是XOR加密,采用指定长度的字符XOR指定文件前100byte字符。 |
勒索币种与金额 |
0.05个比特币 |
是否有针对性 |
未发现 |
能否解密 |
能 |
是否内网传播 |
否 |
勒索窗口 |
|
5、样本分析
5.1 样本标签
表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 |
5.2 样本行为
5.2.1 勒索初始化
该中文勒索软件使用.net语言编写。其运行后,首先通过获取进程名称判断恶意代码是否执行,若已执行则弹出“应用执行中,请勿重复执行,首次执行需耗时20分钟初始化”窗口,并退出程序。
图5-1 弹出窗口
判断“%USERNAME%\Documents\Driver”目录下是否存在b.print文件且文件内容为“6688123”,若存在则表示用户文件已交纳赎金后解密,无需再加密,则退出程序,否则重复加密。所以该文件可作为该勒索软件的免疫文件。
图5-2 判断文件中的标志
使用IE浏览器打开hxxps://lihi1.cc/4kdW2(失陷主机、钓鱼网站),判断是否可以连接网络。
图5-3 IE浏览器打开网址测试网络
若连接网络成功则将自身复制到“%USERNAME%\Documents\WindowsShell”目录下,并将文件属性设置为隐藏。
图5-4 复制自身到相关目录下
打开CMD命令行,将其窗口隐藏,运行“%USERNAME%\Documents\WindowsShell”下的复制过来的样本并将自身程序退出。
图5-5 以隐藏模式打开命令行窗口
将“%USERNAME%\Documents\WindowsShell”目录下的自身添加到注册表实现开机自启动。
图5-6 将自身添加到注册表
5.2.2 加密方式
小神童论坛网CERT通过对该勒索软件分析发现其试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。通过对传入的参数不同进行相应的不同加密方式,如下所示:
图5-7 三种加密方式
在本次所分析的样本中采用的加密策略为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字符。
图5-8 指定长度的字符XOR指定文件前100byte字符
获取用户主机上磁盘信息,如下图所示:
图5-9 获取用户主机上磁盘信息
进入加密函数中LockTXTFiles加密函数进行加密。如下图所示:
图5-10 采用XOR方式进行加密
试图模仿Locky勒索软件,对加密的文件追加“.locky”后缀名。具体格式为:<原文件名>+.locky。如下图所示:
图5-11 添加“.locky”后缀名
在分析的过程中发现该勒索软件的非对称加密RSA和对称加密AES尚未完成,推测其为测试样本。如下所示非对称加密RSA函数内容为空。
图5-12 非对称加密RSA函数内容为空
5.2.3 指定后缀名的文件
针对指定后缀名的文件进行加密,指定的后缀名如下表所示:
表5-3 勒索软件指定的后缀名
.gif |
.jpg |
.txt |
.png |
.xlsx |
.ppt |
.html |
.pdf |
.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%\Documents\Driver\a.print |
加密后的比特币地址 |
%USERNAME%\Documents\Driver\aaa.print |
记录比特币金额倍数 |
%USERNAME%\Documents\Driver\KKK.print |
勒索软件运行日志 |
%USERNAME%\Documents\Driver\t.print |
记录软件窗口倒计时的时间 |
%USERNAME%\Documents\Driver\b.print |
记录加密过的标志 |
%USERNAME%\Documents\Driver\K.log |
(推测)记录加密RSA密钥 |
%USERNAME%\Documents\Driver\K.
print |
(推测)记录AES密钥 |
%USERNAME%\Documents\WindowsShell\
HttpAgilityPack.dll |
未知 |
判断“HttpAgilityPack.dll”是否在“%USERNAME%\Documents\WindowsShell”目录下存在,若不存在则创建HttpAgilityPack.dll。读取HttpAgilityPack.dll中是否存在“ot”,“main”字符串,不存在则写入“ot 0 main”字符串。由于HttpAgilityPack.dll在该勒索软件中并未被调用,其功能未知。
图5-13 HttpAgilityPack.dll文件写入字符串
5.2.5 比特币钱包地址
勒索软件包含的比特币钱包地址如下所示:
表5-5 比特币钱包地址
1Ly1hXiXG5fa4k79of6xPm4xLYFyj5iH8N |
1L9REpvzBkWUhVKzsoLJEVLBh19Ng5jiqb |
1JXXsYGiNmVzEyuj29murEpFqc9sXr5dhn |
1FuPAucXqBXvhzzXguCyQAH7AbGHg6xfrM |
1FgbsSWNHzDnHjbxokLqe1rbjy4juSpsas |
从五个比特币钱包地址中随机获取一个钱包地址与“\u0005”进行异或加密,将其保存在“%USERNAME%\Documents\Driver\a.print”文件中,待解密时读取该文件。
图5-14 随机获取一个钱包地址加密后写入文件
小神童论坛网CERT在跟踪比特币钱包地址时发现其中一个钱包已经收到了一个价值为0.05BTC,以本报告发布前的比特币汇率为准,0.05BTC约为11582人民币。
图5-15 比特币交易信息
5.2.6 勒索窗口
勒索软件加密完成后在桌面弹出一个勒索窗口,提示受害者文件已被加密,缴纳赎金。勒索窗口如下图所示:
图5-16 勒索窗口
当勒索窗口上的倒计时结束时,其会读取衍生文件“%USERNAME%\Documents\Driver\aaa.print”获取当前加密倍数将其提高两倍并弹出窗口提示受害者“由于您长时间未付款,价格提升为两倍,Sorry”。如下图所示:
图5-17 弹出窗口提示受害者
5.2.7 勒索软件自带解密方式
小神童论坛网CERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件针对“%USERNAME%\Documents\Driver\a.print”中内容进行解密获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作。
图5-18 勒索窗口解密按钮
图5-19 比较比特币
该勒索软件解密方式与加密方式类似,具有三种解密方式。根据所加密方式的不同所采用的解密方式不同。解密方式如下表所示:
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字符。
图 5-20 采用指定长度的字符XOR指定文件前100byte字符
在分析的过程中发现RSA解密和AES解密功能未完善,如下所示RSA解密方式函数,读取K.log文件获取密钥并未后续解密操作。
图5-21 未完成的RSA解密方式
6、附录:IoCs
IoCs |
b0E68A3352D31A9DD403A5ACAE6387A0 |
hxxps://lihi1.cc/4kdW2 |