撒旦勒索病毒主要是针对企业服务器用户进行感染加密其服务器上的文件并勒索用户的一种病毒。
撒旦病毒通过大量漏洞利用工具,扫描入侵主机。
成功入侵后加密重要文件。并生成文件用中英韩三种语言提示索要比特币赎金解密文件。
1.主模块会释放大量攻击模块并执行,也会连接恶意IP下载病毒文件。
2.从资源释放恶意文件,连接IP下载病毒文件http://45.77.175.225/cab/xxx.exe等
3.利用漏洞扫描、入侵其他主机
4.加密文件,勒索被感染用户
病毒从主模块中以FindResource、LoadResource这样的一套操作释放大量文件并使用ShellExecuteA操作执行,
也会使用socket连接恶意网址下载病毒文件。
以下为部分病毒母体文件(此次分析样本为Satan4.2版本)
病毒运行后会创建互斥体,释放资源文件,连接网络获取远程命令、下载文件,运行其他攻击模块等。
有兴趣的可以自己找下样本看看(或者联系我要样本与分析过的IDA数据库文件)此处不再分析。
病毒加密动作会遍历文件,创建线程执行加密文件动作。
设置文件属性,使用MoveFile 重命名文件。
对比文件后缀,进行不同的方式加密
对比文件大小,进行不同的方式加密
使用AES256 ECB 算法加密文件
加密key组成
加密key分位4部分,其中HardWareID和PUBLIC被随机生成添加到了被加密文件的尾部。HEX_STR和STR则被硬编码在病毒母体中。
使用ReadFile,WriteFile读写文件,最终完成加密
文件的解密直接上思路与代码。
病毒根据文件的后缀名采用不同的加密方式。但都是用AES256 ECB加密算法加密数据。
1.文件后缀名为以下字符的时候,采用完全加密模式。
("txt", "sql", "zip", "php", "asp", "jsp", "cpp", "ini", "aspx", "cs", "py", "h", "vbs", "bat", "conf", "sh", "inc", "e", "c", "pl", "csv", "asm", "doc", "docx", "xls", "xlsx", "ppt")
2.文件后缀名为其他字符的时候,采用根据文件大小进行加密的模式:
1)文件大小小于等于100000000字节时,每加密16字节则之后16字节不加密。
2)文件大小大于100000000字节时,每加密16自己则之后4x16字节不加密。
3.文件加密后在其最后写入此次加密的部分KEY信息等(HardWareID和PUBLIC),正好比原文件大小大145字节。
因为AES256 ECB加密算法是可逆的,所以我的文件解密思路如下:
解密数据函数:
完全解密模式函数:
从文件中获取KEY:
以上为主要函数,其它函数实现思路与其一致。
程序运行情况:
实例文件:1.新建txt文档“123.txt”,其中文本内容为“456”,使用WinRAR压缩成123.rar。
2.123.rar被Satan勒索病毒加密后为[[email protected]]123.rar.sicck
3.使用自己的解密工具解密文件后与原123.rar一样,并可以解压出原txt文件。
注:本文主要是实现被Satan病毒加密文件的解密思路,因病毒模块较多其他攻击细节不再具体讲述。