网络安全 频道

比特币勒索卷土重来 5ss5c勒索软件样本深度分析概述

  近期,新华三安全攻防团队在某客户现场发现主机中存在大量被加密为5ss5c后缀的文件,从获取到的样本来看,有证据显示它与开发勒索软件Satan的组织相关,并仍在积极开发中。该恶意软件通过一个下载器从远程服务器下载了勒索模块和传播模块。勒索软件加密大量的用户文件并向用户勒索比特币,同时利用永恒之蓝、mimikatz窃取用户凭据等方式向其他机器进行扩散。

  本文主要关注加密模块cpt.exe的代码逻辑,分析勒索模块的的密钥生成方式,加密算法,远程C&C主机地址等信息,帮助大家进一步了解该勒索软件。

  1. 样本分析

  加密模块cpt.exe被释放在C:\Program Files\Common Files\System目录下,获取到的样本加了MPRESS压缩壳,需要先对其进行脱壳处理。

  1) 非加密一般行为

  cpt.exe样本为了保障自身能够持续运行,会向windows注册表的自启动目录HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run目录下写入键名为5ss5cStart、键值指向当前运行样本绝对路径的记录。

  在注册表中查看该目录,该键值对已经被写入,样本会在下次开机时再次运行:

  另外,样本会枚举运行中的进程,查询是否存在运行中cpt.exe进程,并且创建名称为5ss5c_CRYPT的互斥锁,防止重复运行。

  2) 用户token和密钥生成

  在该样本中,加密文件所使用的密钥由三个部分组成,固定字符串+随机字符+用户token。样本列举了80个可显字符(大小写字符、数字、符号),并从中随机出0xC8(即200)个字符,当作密钥的一部分, 样本使用梅森旋转算法作为随机数生成器。梅森旋转算法作为一个经典的随机数生成器,能够在取值范围内均匀的生成随机数,被很多语言和运算库采用,样本直接在代码内实现了这一算法。

  同时,样本还为每一个主机生成一个长达40个字节的随机token作为主机唯一标识,用以在网络流量中标识该主机。token从0-9A-Z中生成,并被写入C:\\ProgramData\\5ss5c_token文件,如果5ss5c_toekn文件已经存在,则直接读取该文件作为token。

  样本还在PE中硬编码了一段16个字节的密码片段:qobt<r#XC6Rm4H&A,该字符串会被填入加密密钥的前16个字节当中,成为加密密钥的一部分。

  最终的文件加密密码由:16个字节的固定字”qobt<r#XC6Rm4H&A”、200个字节的随机字符和40个字节的token拼接而成,密钥共256个字节,被应用于AES 256bit加密算法中加密用户文件。

  3) 密钥和文件加密算法

  AES属于对称加密算法,加密能力较强,在不知道的密钥的情况下,破解难度较高;另外AES相对于RSA等非对称加密方式,加解密效率很高,适用于对大量文件进行加解密的勒索场景。样本为了保证AES密钥不被泄露,采用RSA加密算法加密并保存AES密钥,样本中自带了加密用的RSA公钥。

  该密钥最终被拼接标准公钥格式,并将AES密钥加密得到加密结果,写入勒索信中并上报远程服务器。

  加密用户文件前,样本会首先将文件名修改为[5ss5c@mail.ru]原始文件名.token.5ss5c的形式。

  随后创建两个文件句柄,分别对文件进行读取和写入,每读取16个字节进行一次AES加密,再将加密后的16字节密文写回文件,如果读取的数据长度不足16个字节,则不加密直接写回。

  最后,样本还会在每个文件后追加AES密钥后240个字节的RSA加密结果。

  4) 加密主要流程和网络交互流量

  该勒索样本对文件的加密分阶段进行,在不同的阶段,样本会持续与远程主机进行交互,上报受害机器加密阶段和加密相关信息。样本会首先访问ifconfig.me获取本机公网IP。

  在完成密钥生成、持久化等一般操作后,样本会连接远程web服务器60.191.46.122的8082端口。

  从网络流量上来看,上报信息主要包括本机IP、token、加密阶段和被加密的AES密钥等信息:

  该包status为start,即样本已经准备好开始对系统文件进行加密。实际上,在每个阶段结束后,样本都会对远程主机上报一次当前加密阶段的信息,直到完成加密,上报status为done。

  从start报文开始,该样本正式进入加密流程,样本查询相关数据库服务并进行关闭,为加密数据库相关文件做准备,样本扫描了常见数据库mysql和sqlserver相关服务等,并进行关闭。

  关闭完服务后,会继续枚举运行中的数据库进程,发现相关进程后,也进行关闭。

  加密分三个阶段进行,样本会扫描存在的磁盘信息,对存在的磁盘中重要程度越高的文件优先加密,第一阶段优先加密bak、sql、zip等文件;

  第二阶段加密其他重要文件、如xlsx、ppt、docx、txt等一般文件,最后一阶段加密其他文件。样本中存在一个加密文件排除列表,列表中主要包括一些可执行文件和系统文件。在Satan的历史版本中,也有类似关闭数据库相关进程和分段加密的操作。

  加密完成后。会给用户弹出勒索信,向受害者勒索一个比特币的赎金,然而在勒索信中并未指出钱包地址:

  值得关注的是,样本中只包含中文格式的勒索信,怀疑此次勒索软件的攻击目标具有针对性,请国内用户注意防护。

  2. 防护&处置建议

  由于样本密码采用RSA+AES加密,暂时无法解密。

  新华三安全攻防团队提醒大家:

  1、 及时备份重要文件,避免在遭遇勒索软件时无法解密文件而遭受损失;

  2、 不要点击来源不明的邮件以及附件,避免遭受该样本及其他恶意软件的钓鱼或者鱼叉攻击;

  3、 及时升级系统、及时安装系统补丁,关闭不必要的共享权限以及端口,如:3389、445、 135、 139等,避免遭受永恒之蓝等漏洞攻击导致感染;

  4、 加强系统登录密码的复杂度,定期更改密码,避免长期使用同一密码,尽量不要在浏览器上登录时选择保存账号信息,虽然未见样本传播模块携带密码爆破和浏览器密码窃取功能,也要防止新的恶意样本更新自身武器、功能;

  5、 请企业用户及时升级IPS、AV、TI特征库进行有效防御,及时升级桌面杀软,提升应对病毒新变种的能力。

  如果您已经发现主机磁盘出现被加密的.5ss5c文件:

  1、 立即关闭cpt.exe进程,减少被加密文件数量;

  2、 及时切断主机网络,防止其他主机遭受感染;

  3、 删除注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下的5ss5cStart项,避免恶意程序再次启动;

  4、 删除C:\Program Files\Common Files\System目录下cpt.exe,c.exe,tmp.dat恶意文件;删除C:\ProgramData\5ss5c_token文件,防止误运行。

  请用户进行敏感操作前,确认相关操作可能引起的后果,同时避免误删文件、表项等不当操作。

  3. IOCs

  URL

  hxxp://58.221.158.90:88/car/down.txt

  hxxp://58.221.158.90:88/car/c.dat

  hxxp://58.221.158.90:88/car/cpt.dat

  hxxp://60.191.46.122:8082/api/data.php

  MD5

  53089ada4f5e416afef2fd98aeb612ad

4
相关文章