国内企业遭遇勒索软件攻击事件及相关样本分析

 

事件背景

日前,国内某制造企业遭受勒索病毒攻击,造成核心生产网络、业务办公网络被勒索病毒加密,直接导致生产停工,中招主机被要求支付0.1个比特币的赎金。360企业安全接到用户应急求助后,第一时间赶赴现场,对该事件进行分析和溯源,现场快速定位、及时恢复数据,帮助用户降低损失。

分析显示攻击者采用了人工渗透定向攻击并推送多个恶意模块进行勒索,不排除攻击者对更多已经控制的内网系统下手,在此提醒用户对网络和终端进行安全排查,发现入侵迹象及时采取措施。以下为360威胁情报中心对现场所获取的勒索病毒的技术分析及防护处置建议,供不幸中招的用户参考,如需协助也可以联系360企业安全应急响应中心。

 

现场取证与事件分析

360企业安全应急响应安全专家通过对现场终端进行初步排查,发现客户终端主机被植入勒索病毒,导致无法进入操作系统。下图为被勒索的主机开机时的界面。

修复MBR后使用数据恢复软件恢复部分文件,在部分机器上对日志进行分析,发现其存在域控管理员登入记录。

经过排查,初步判断此次攻击事件由黑客入侵企业的备用域控,获得其账号密码,并在bat脚本中批量使用cmdkey命令来保存远程主机凭据到当前会话,随后调用psexec远程执行命令,向域中机器下发攻击文件进行勒索。

在此次应急响应过程中,我们发现了3个勒索恶意代码的相关样本:

勒索病毒名

功能说明

update3.exe

将勒索信息写入主机MBR,不会加密机器文件

update.exe

使用类似TEA的对称加密算法加密文件

update2.exe

使用libsodium-file-crypter开源项目开源代码加密文件

 

样本分析

360企业安全应急响应团队在完成初步摸排梳理工作后,对现场发现的3个勒索相关样本进行详细分析,具体如下:

三个样本初始执行的入口解密流程类似

解密出43163C处代码,并通过EnumWindowStation回调函数执行。

在第二阶段,样本通过映射NTDLL模块来获取所需API并逃避R3 HOOK。

判断样本是否在64位模式下运行。

反调试及虚拟机检测。

最后执行主要功能,如下描述。

1. update3.exe – MBR锁屏

以读写的模式,打开计算机\\.\PhysicalDrive0、\\.\PhysicalDrive1、\\.\PhysicalDrive2、等磁盘写主机MBR勒索数据。

写入的MBR功能代码为,调用int 13中断,将扇区1-32从磁盘加载到内存0x8000开始的地址,然后转到0x8000执行指令:

设置屏幕的显示模式。

并调用int 10h中断显示骷髅头。

检测是否有键盘按键信息 如果有按键信息,则读取相应的勒索信息,弹出信息勒索信息显示界面。

骷髅头字符信息:

重启机器后的显示效果:

本次事件,攻击者使用了此恶意破坏模块来劫持系统进行勒索。

2. update.exe – Aurora变种勒索软件

执行的勒索代码是在二阶段中由BlowFish算法加密压缩的。

样本通过创建傀儡进程的方式来执行勒索代码。

此勒索样本的PDB信息如下,勒索病毒为Aurora。

勒索样本中依旧做了虚拟机检测。

设置一个启动项,名称为MSFEEditor。

要加密文件的后缀列表如下:

1CD, doc, docx, xls, xlsx, ppt, pptx, pst, ost, msg, eml, vsd, vsdx, txt, csv, rtf, 123, wks, wk1, pdf, dwg, onetoc2, snt, jpeg, jpg, docb, docm, dot, dotm, dotx, xlsm, xlsb, xlw, xlt, xlm, xlc, xltx, xltm, pptm, pot, pps, ppsm, ppsx, ppam, potx, potm, edb, hwp, 602, sxi, sti, sldx, sldm, vdi, vmdk, vmx, gpg, aes, ARC, PAQ, bz2, tbk, bak, tar, tgz, rar, zip, backup, iso, vcd, bmp, png, gif, raw, cgm, tif, tiff, nef, psd, svg, djvu, m4u, m3u, mid, wma, flv, 3g2, mkv, 3gp, mp4, mov, avi, asf, mpeg, vob, mpg, wmv, fla, swf, wav, mp3, class, jar, java, asp, php, jsp, brd, sch, dch, dip, vbs, ps1, bat, cmd, asm, pas, cpp, suo, sln, ldf, mdf, ibd, myi, myd, frm, odb, dbf, mdb, accdb, sql, sqlitedb, sqlite3, asc, lay6, lay, mml, sxm, otg, odg, uop, std, sxd, otp, odp, wb2, slk, dif, stc, sxc, ots, ods, 3dm, max, 3ds, uot, stw, sxw, ott, odt, pem, p12, csr, crt, key, pfx, der。

如果成功,则创建每个目录下创建“RICKROLL_BLOCKED.txt、RICKROLL_HELP.txt、RICKROLL_MESSAGE.txt”文件,展示勒索信息。

勒索具体信息如下

加密用的密钥,每次运行都重新生成,生成后得相关信息,保存到%APPDATA%/000000000.key。

遍历目录加密,加密后的文件后缀为:.rickroll。

使用了类似TEA算法对称加密算法。

加密完成后,删除启动项。

3. update2.exe – libsodium-file-crypter开源项目

updata2.exe同样采用创建傀儡进程的方式来运行,勒索软件采用NIM语言编写。

首先判断%AppData%\Roaming路径下是否有 lock_file,若已存在该文件,则进程退出。

判断当前进程是否在%AppData%\Roaming目录下,若路径不是则拷贝文件到该目录下,文件名为随机数字 ,并把拷贝过去的文件设置成自启动项。

从倒叙的英文26个字母中选择一位作为磁盘名,判断是否为可用磁盘,若是可用磁盘进行后续文件遍历加密操作。

之后创建多个线程实现文件遍历加密工作,排除c:windows目录下的文件和后缀名为exe/dll的文件不进行加密,其余文件采用开源算法salsa20变种进行加密,加密后的文件后缀为.backup。

每次加密时将key等信息保存到%AppData%\Roaming\encryption_key文件中。

加密完成后在%AppData%创建一个lock_file以及一个HOW_TO_DECRYPT_FILES.html,内容为勒索信息,并展示该信息。

 

修复方案与防护建议

修复方案

可以通过使用PE系统登入服务器,使用磁盘工具搜索磁盘,并使用安全工具恢复MBR即可解决系统无法启动的问题。

安全防护建议

1. 对于已中招服务器下线隔离。

2. 对于未中招服务器

1)在网络边界防火墙上全局关闭3389端口或3389端口只对特定IP开放。

2)开启Windows防火墙,尽量关闭3389、445、139、135等不用的高危端口。

3)每台服务器设置唯一口令,且复杂度要求采用大小写字母、数字、特殊符号混合的组合结构,口令位数足够长(15位、两种组合以上)。

4)安装终端安全防护软件。

 

参考链接

[1]. Aurora/Zorro:勒索软件之换皮重出江湖

https://www.freebuf.com/news/190363.html

[2].TEA介绍

https://www.cnblogs.com/chevin/p/5681228.html

[3]. libsodium-file-crypter开源项目

https://github.com/jpiechowka/libsodium-file-crypter

(完)