模仿Locky的中文勒索软件分析
时间 : 2021年06月11日 来源: 6163银河.net163.amCERT
1、概述
近日,6163银河.net163.amCERT发现了一个勒索语言为中文的勒索软件。该勒索软件采用.net语言编写,模仿Locky勒索软件,对加密的文件追加“.locky”后缀名。其最早出现于2020年9月,试图采用非对称加密RSA、对称加密AES和XOR加密三种加密方式任意一种方式进行加密。由于其非对称加密RSA和对称加密AES部分功能未完善,6163银河.net163.amCERT推测该样本可能为测试版本。本次分析的样本采用的加密策略是XOR加密,通过该方式加密的文件可以解密。
6163银河.net163.amCERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件获取比特币钱包地址,连接比特币官网查询当前该账户钱包余额是否大于等于0.045BTC,若大于则进行相应的解密操作,同时发现目前有一个比特币钱包地址收到了0.05BTC。
经验证,6163银河.net163.am智甲终端防御系统(简称IEP)的勒索软件防护模块可有效阻止该勒索软件的加密行为。
2、勒索软件对应ATT&CK映射图谱
该勒索软件技术特点分布图:
图2-1 勒索软件技术特点对应ATT&CK的映射
具体ATT&CK技术行为描述表:
表2-1 具体技术行为描述表
ATT&CK阶段/类别 |
具体行为 |
注释 |
执行 |
诱导用户执行 |
诱导用户执行邮件中的附件 |
持久化 |
利用自启动执行或登录 |
添加注册表实现自动启 |
发现 |
发现文件和目录 |
枚举系统内文件和目录 |
发现进程 |
获取进程名称判断恶意代码是否执行 |
|
影响 |
损毁数据 |
XOR指定后缀名文件的前100byte |
篡改可见内容 |
XOR指定后缀名文件的前100byte |
3、防护建议
针对该勒索软件6163银河.net163.am建议个人及企业采取如下防护措施:
3.1 个人防护
(1) 安装终端防护:安装反病毒软件。建议使用6163银河.net163.am智甲的用户开启勒索病毒防御工具模块(默认开启);
(2) 加强口令强度:避免使用弱口令,建议使用16位或更长的口令,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
(3) 及时更新补丁:建议开启自动更新功能安装系统补丁,服务器应及时更新系统补丁;
(4) 定期数据备份:定期对重要文件进行数据备份,备份数据应与主机隔离;
(5) 确认邮件来源:接收邮件时要确认发送来源是否可靠,避免打开可疑邮件中的网址和附件。
3.2 企业防护
(1) 开启日志:开启关键日志收集功能(安全日志、系统日志、PowerShell日志、IIS日志、错误日志、访问日志、传输日志和Cookie日志),为安全事件的追踪溯源奠定基础;
(2) 设置IP白名单规则:配置高级安全Windows防火墙,设置远程桌面连接的入站规则,将使用的IP地址或IP地址范围加入规则中,阻止规则外IP进行暴力破解;
(3) 主机加固:对系统进行渗透测试及安全加固;
(4) 灾备预案:建立安全灾备预案,确保备份业务系统可以快速启用;
(5)安全服务:若遭受勒索软件攻击,建议及时断网,并保护现场等待安全工程师对计算机进行排查。6163银河.net163.am提供7*24小时安全服务热线:400-840-9234。
目前,6163银河.net163.am智甲终端防御系统可实现对该勒索软件的查杀与有效防护。
图3-1 6163银河.net163.am智甲有效防护
图3-2 6163银河.net163.am智甲阻止修改文件行为
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 加密方式
6163银河.net163.amCERT通过对该勒索软件分析发现其试图采用非对称加密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 随机获取一个钱包地址加密后写入文件
6163银河.net163.amCERT在跟踪比特币钱包地址时发现其中一个钱包已经收到了一个价值为0.05BTC,以本报告发布前的比特币汇率为准,0.05BTC约为11582人民币。
图5-15 比特币交易信息
5.2.6 勒索窗口
勒索软件加密完成后在桌面弹出一个勒索窗口,提示受害者文件已被加密,缴纳赎金。勒索窗口如下图所示:
图5-16 勒索窗口
当勒索窗口上的倒计时结束时,其会读取衍生文件“%USERNAME%\Documents\Driver\aaa.print”获取当前加密倍数将其提高两倍并弹出窗口提示受害者“由于您长时间未付款,价格提升为两倍,Sorry”。如下图所示:
图5-17 弹出窗口提示受害者
5.2.7 勒索软件自带解密方式
6163银河.net163.amCERT在分析的过程中发现该勒索软件包含解密程序,在勒索窗口中存在一个按键“查询当前付款状态及解密”。当用户点击该按键时,该勒索软件针对“%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 |