近期,我们发现一款名为”爱马仕”的勒索病毒又开始在国内传播,该勒索病毒此次的主要攻击目标是windows服务器。目前流行的服务器勒索病毒中,有超过九成是通过远程桌面进行传播的。该勒索病毒更让人头痛的一点是,它除了不加密exe、dll、ini、lnk几种类型的文件外,其余的类型的文件它都会加密。在这里再次提醒大家,开启服务器远程桌面时需要谨慎处理,万不可在使用弱口令的机器上开启,不要有侥幸心理。
图1.敲诈提示信息
样本分析
初始化工作
★磁盘容量不足不加密
首先,勒索病毒会检测中招者磁盘的剩余量,如果获取磁盘剩余量失败或者是磁盘的容量不足4G,勒索病毒就会停止工作。
图2.获取磁盘剩余量容量
若磁盘空间充足,则会通过动态获取的方法加载后续操作所需要的函数,以此来躲避杀毒软件的静态查杀。下图仅列出一部分
图3.动态获取函数
★俄语系统不加密
同许多泛俄语系勒索病毒一样——病毒会通过查询SYSTEM\CurrentControlSet\Control\Nls\Language注册表键值来检测当前操作系统的语言,若发现系统语言是俄语、乌克兰语或白罗斯语则不会继续加密。曾经名噪一时的Locky家族勒索病毒的代码中,也有类似的判断逻辑,我们有理由相信这是一种病毒作者对泛俄语地区用户的保护。
图4.判断系统语言
该勒索病毒同时还会对系统版本是XP、Server2000、Server2003和Server2003 R2的中招机器进行额外的内存处理。
图5.获取系统版本
由于在以上这些系统中,生成的密钥对和密钥容器都会被存储在内存中。所以勒索病毒会额外清空一下内存中的密钥容器内容和密钥对,避免在内存中找到密钥对从而恢复被加密的文件。
图6.清空内存中存储的密钥
文件加密部分
该勒索病毒会在本地生成两个文件
1.PUBLIC:病毒在本地生成的RSA密钥对中的公钥部分
2.UNIQUE_ID_DO_NOT_REMOVE:包含两部分。
a)用病毒在本地生成的AES密钥加密在本地生成的RSA密钥对中的私钥的密文
b)用在病毒中硬编码的RSA公钥加密本地生成的AES密钥的密文
下图是第一部分所说的,病毒在本地进行的RSA密钥对生成动作以及将密钥对中的RSA公钥写入到PUBLIC文件中
图7.RSA公钥写入PUBLIC文件
接下来是UNIQUE_ID_DO_NOT_REMOVE文件的生成。其第一部分是用256位的AES密钥去加密2048位的RSA的私钥。而第二部分是用病毒中硬编码的RSA的公钥去加密AES密钥。
图8.生成UNIQUE_ID_DO_NOT_REMOVE文件
完成后,病毒会将刚刚生成的PUBLIC文件中的RSA公钥读取出来,在稍后进行的文件加密操作中,用于对加密密钥的再加密工作。
图9.从PUBLIC文件导入RSA公钥
病毒会创建一个批处理脚本(bat)来启动%TEMP%目录下的勒索病毒主体。但是在后续操作中,并没有将该病毒释放到%TEMP%目录里,并没有发现该脚本的存在有任何意义,这令分析人员颇为不解。
图10.生成start.bat
勒索病毒读取并解密自身资源,释放勒索信息。
图11.解密勒索信息
从自身资源中获取勒索邮箱地址。邮箱地址有两个:一个是dechhelp#airmail.cc,另一个是dechsupp#cock.lio。其中后者为备用邮箱。
图12.解密出勒索作者邮箱
病毒遍历文件的过程中,还会判断当前盘符挂载的是否是只读光盘,若是,则不在对该磁盘进行加密操作。
图13.判断磁盘属性
★系统目录不加密
在遍历目录的时候,如果遇到目录包含Windows、AhnLab、Microsoft、Mozilla、$Recyle.Bin、WINDOWS等字符串中的任意一个,病毒便会跳过对该目录的加密。
图14.加密时跳过指定目录
接下来,病毒会先判断正在扫描的目标是文件还是目录:若是一个目录就生成敲诈信,并进入该目录继续做递归扫描工作。若不是目录,再判断该文件是否是生成的敲诈信息或生成的唯一ID,均不是则继续检查文件的扩展名,若不是dll、exe、ini、lnk、hrmlog中的一个才会进行加密工作。
图15.不加密指定的文件后缀
开始加密,病毒会读取该文件内容到内存中,再对内容进行检测——看文件内容中是否被写入了HERMES标记,该敲诈者的名字“爱马仕”就是取之于该标记。若找到标记则不再加密文件,仅将扩展名改为.HRM即可。
图16.查找HERMES标识
若未找到HERMES标记,就开始加密文件。加密开始前,病毒会先生成一个256位的AES密钥。
图17.生成加密文件的AES密钥
AES密钥生成成功,则开始加密文件。
图18.加密文件
加密完成后,写入文件标识“HERMES”
图19.写入文件标识
最后,病毒将AES密钥用PUBLIC中的RSA公钥加密,再将加密后的AES密钥写入到文件尾部。
图20.用RSA公钥加密加密文件的AES密钥
病毒对本地文件的加密工作全部完成后,还会尝试枚举网络资源(如共享文件)去加密。全部完成后,还会再次清空内存中的会话密钥,确保不会出现因密钥残留于内存中而被用于恢复文件的情况。
图21.加密共享文件夹中的文件
下图为文件被加密后的样子。
图22.被加密后的文件
加密相关文件情况如下图。如果想要解密文件,就需要将UNIQUE_ID_DO_NOT_REMOVE交给作者,让其用自己手里的RSA私钥解密出AES-256-1密钥。然后用AES-256-1去解密出RSA-2048私钥。再用RSA-2048私钥去解密出每个文件中的AES-256-2密钥。最后,用AES-256-2密钥解密文件内容。
图23.密钥分部情况
后续处理
所有加密工作完成后,病毒还会进行一些其他的善后工作。首先是删除卷影副卷,以及删除后缀名为.vhd、.bak、.bac、.bkf、.wbcat以及文件名包含backup字符串类型的文件——因为这些文件都可能是备份文件。
图24.删除备份文件
之后,并对会再次检测桌面目录中是否有生成敲诈信息,如果没有就生成一份敲诈信息。确认敲诈信息存在后,病毒会将这份桌面上的 DECRYPT_INFORMATION.html敲诈信息文件直接运行起来。最后删除病毒自己。
图25.运行敲诈信息并删除自身
图26.敲诈提示信息
敲诈信息中向中招者索要0.8个比特币,按发稿时汇率换算,相当于人民币32000元。这么贵的解密费用,也配得上“敲诈界奢侈品”的称号。
图27.与黑客邮件回话内容
总结:
在线服务器一直以来都是各路黑客最常见的攻击目标,而勒索病毒为这类攻击提供了一个新的变现渠道,一般而言服务器上的数据相较普通PC更具价值,被勒索后支付意愿更高,让此类攻击也更加泛滥。对于大量的中小型企业,服务器的防护往往是一个被疏忽的部分,这里必须要警惕这一点。尤其在开启远程桌面服务时,要注意一下几点:
1.尽可能避免使用默认的用户名,使用复杂口令(不要使用有规律可寻的口令)。
2.对多用户账户的服务器,设置严格的管理策略,并强制登录口令设置的复杂度。同时,管理员要严格控制每个账户的权限。
3.多台计算机组成局域网时,不要使用相同的用户名和口令。
4.口令需要做到定期更换。
5.最后安装一款靠谱的安全软件,可以帮助轻松解决绝大部分安全问题!360安全中心推出的“远程登录保护”功能,就能从陌生IP登录和多次登录口令错误两大方面,有效防御勒索病毒远程登录控制服务器。