背景概述
Sekhmet勒索病毒于今年三月份出现,已有一家跨境IT服务公司的数据被该勒索病毒团伙在博客上公布了近百G的数据。
攻击者采用先窃取再加密的方式实施勒索行为。该勒索病毒和“大名鼎鼎”的Sodinokibi勒索病毒一样使用了随机加密后缀。勒索提示文档告知受害者若三天内不缴纳赎金,攻击者将在其搭建的网站上公布受害者的机密信息。
Sekhmet勒索病毒暂无公开解密方式。
执行过程
样本分析
DllRegisterServer为勒索函数:
该样本使用了以下方法来阻碍分析:
1. 使用大量无效跳转;
2. 使用push address ,retn进行函数调用;
3. 手动平衡堆栈。
利用GetProcAddress载入加密、文件、线程等函数阻碍静态特征提取;
创建空间写入PE文件
创建线程一并跳转执行;
调用WMI;
选择卷影删除;
收集用户信息;
生成用户RSA公私钥对2048位,获取密钥容器CryptAcquireContextW;
生成密钥对CryptGenKey;
加密用户私钥CryptEncrypt。
创建线程二(0xACF500)
向攻击者服务器回传用户信息;
计算IP地址185.82.126.81;
连接至185.82.126.81:50端口;
创建POST 185.82.126.81:50/update.php?id=7118;
发送信息;
回传信息内容:
使用了Chacha20算法加密,初始密钥矩阵如下:
使用EncryptBinaryToStringA转换,包含Chacha20密钥的随机值,行列置换后的密钥矩阵及密钥流,用户组信息。
创建线程三
对每个驱动盘进行加密,获取驱动信息;;
获取对每个驱动开启单独的加密线程;
每个文件目录下先创建RECOVER-FILE.txt;
写入内容;
遍历文件夹;
不加密部分文件如boot.ini、ntuser.dat等;
不加密文件后缀lnk、exe、sys、dll;
读取文件末尾0x10C字节数据;
获取用户公钥;
两次CryptGenRandom分别生成Chacha20密钥矩阵的Key和Nonce;
使用用户RSA公钥加密该密钥矩阵;
将RSA加密后的Chacha20密钥矩阵写入文件;
使用Chacha20加密文件写入文件;
生成随机后缀;
修改文件后缀,修改完清除内存中的chacha20初始密钥;
关闭句柄,退出线程。
如若转载,请注明原文地址: