三天内不给钱就泄密,Sekhmet勒索需谨慎!
2020-08-27 17:06:42 Author: www.4hou.com(查看原文) 阅读量:230 收藏

背景概述

Sekhmet勒索病毒于今年三月份出现,已有一家跨境IT服务公司的数据被该勒索病毒团伙在博客上公布了近百G的数据。

攻击者采用先窃取再加密的方式实施勒索行为。该勒索病毒和“大名鼎鼎”的Sodinokibi勒索病毒一样使用了随机加密后缀。勒索提示文档告知受害者若三天内不缴纳赎金,攻击者将在其搭建的网站上公布受害者的机密信息。

Sekhmet勒索病毒暂无公开解密方式。

执行过程

1.png

样本分析

DllRegisterServer为勒索函数:

图片1.png

该样本使用了以下方法来阻碍分析:

1. 使用大量无效跳转;

2. 使用push address ,retn进行函数调用;

3. 手动平衡堆栈。

图片2.png

利用GetProcAddress载入加密、文件、线程等函数阻碍静态特征提取;

图片3.png

创建空间写入PE文件

创建线程一并跳转执行;

图片5.png

调用WMI;

图片6.png

选择卷影删除;

图片7.png

收集用户信息;

图片8.png

生成用户RSA公私钥对2048位,获取密钥容器CryptAcquireContextW;图片9.png

生成密钥对CryptGenKey;

图片10.png

图片10.12.png

加密用户私钥CryptEncrypt。

图片11.png

创建线程二(0xACF500)

向攻击者服务器回传用户信息;

图片12.png

计算IP地址185.82.126.81;

图片13.png

连接至185.82.126.81:50端口;

图片14.png

创建POST 185.82.126.81:50/update.php?id=7118;

图片15.png

发送信息;

图片16.png

回传信息内容

使用了Chacha20算法加密,初始密钥矩阵如下:

图片17.png

图片18.png

使用EncryptBinaryToStringA转换,包含Chacha20密钥的随机值,行列置换后的密钥矩阵及密钥流,用户组信息。

图片19.png

创建线程三

对每个驱动盘进行加密,获取驱动信息;;

图片20.png

获取对每个驱动开启单独的加密线程;

图片21.png

每个文件目录下先创建RECOVER-FILE.txt;

图片22.png

写入内容;

图片23.png

遍历文件夹;

图片24.png

不加密部分文件如boot.ini、ntuser.dat等;

图片25.png

不加密文件后缀lnk、exe、sys、dll;

图片26.png

读取文件末尾0x10C字节数据;

图片27.png

获取用户公钥;

图片28.png

两次CryptGenRandom分别生成Chacha20密钥矩阵的Key和Nonce;

图片29.png

使用用户RSA公钥加密该密钥矩阵;

图片30.png

将RSA加密后的Chacha20密钥矩阵写入文件;

图片31.png

使用Chacha20加密文件写入文件;

图片32.png

生成随机后缀;

图片33.png

修改文件后缀,修改完清除内存中的chacha20初始密钥;

图片34.png

关闭句柄,退出线程。

如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/Qv8Y
如有侵权请联系:admin#unsafe.sh