频道栏目
首页 > 资讯 > 杀毒防毒 > 正文

XData勒索病毒加密方式剖析及解密工具

17-06-12        来源:[db:作者]  
收藏   我要投稿

多年以来, 一些不法分子看中了勒索 用户 所获取的巨大利益 , 变化 各种 传播方式,改变加密手法, 给电脑安全带来威胁 。 最近 ,腾讯安全反病毒实验室监控到一类 “XData”勒索病毒,此病毒目前 已在乌克兰,俄罗斯 , 德国等地传播, 国内也出现了个别中毒用户 。 上周 病毒作者 已公布出 解密 密钥 。本文 着 重 介绍“XData” 勒索 病毒的加密方式,并给出我们的解密工具。

XData病毒背景

通过分析 收集到的 信息 ,我们 将 病毒 的 勒索流程 分为两个阶段 。病毒作者 首先 利用社工的手法诱骗用户去运行此病毒。 病毒运行起来之后 ,如果电脑处于 局域网 环境,病毒会利用Mimikatz 工具,获取电脑的 管理员 登录凭证,并 借此密码 尝试 连接局域网 其他电脑的 139端口,试图 访问共享资源 文件夹。

如果 猜对 密码 或者远程 用户没有设置共享目录密码, 那么病毒便会 加密 此 共享目录下的所有文件,并释放勒索 提示 文件 , 成功勒索局域网内其他用户。

“XData”病毒在局域网中 的 传播 方式 给我们 一定的提示,要做好网络资源共享 目录 的安全检查 ,关闭不需要的共享目录,防止被局域网中其它染毒机器攻击 。

加密 流程

 

 

上图 展示了 XData勒索病毒 加密的流程图, 各步骤的详细解释 如下:

加密过程

1,  病毒 运行时 会 随机生成RSA Session 公私 钥对,私钥命名为 : 计算机-#-加密时间.key。

此文件 会被随机生成的AES-256 key对称加密 , 保存在 计算机 -#-加密时间.key.~xdata~ 文件的头部。

2,  病毒作者 用事先准备好的RSA公钥, 把 随机生成的AES-256 key加密后,保存在 *.key.~xdata~ 文件 的尾部。

3,  普通 文件, 用 随机生成的AES-256 key 进行 加密后存在文件头部。 (大于100 M的文件,只加密前 15 M,小于等于 100 M,大于 等 于 10 M 的, 加密前 10 M,小于 10 M的文件,加密 filesize  & 0xFFFFFFF0的 全文)

4,  用 RSA Session public key加密随机生成的AES-256 key,并保存在加密文件的尾部。

解密过程

5,  病毒作者手中的 RSA private key 可以 用来解密*.key.~xdata~ 的 文件尾,获取到文件加密的AES-256 key。

6,  用 上一步 解密 出来的 AES-256 key 解密 *.key.~xdata~ , 可以获取完整的RSA Session private key。

7,  用 RSA Session private key解密 用户 电脑上所有的*.~xdata~ 文件 尾部,获取每个文件的AES -256 key。

 

8,  用 上一步 获取到的 AES-256 key解密 每个 被 加密文件。

 

下面 结合逆向分析,详细解释“XData” 加密 的每一步实现过程。

Session  key加密 过程

上图中 可以看到 有 两对RSA公私钥对 , 黄色 的 一 对私钥 由作者持有,公钥则 通过 加密的方式存储在了 数据 资源中,病毒在运行时通过解密 释放 在了内存,为后续加密数据 做准备。

之后 , 病毒 会随机生成一对公私钥对, 对应 上图中的绿色图片 RSA  Session key。

将这个 密钥 保存在计算机-#-加密时间.key 文件中,并 把 密钥 内存清空。

然后 病毒调用 sub_4053f0 函数 , 对该 文件进行加密 处理 。

 

加密 之前 会对取出文件 末尾的 0 x108 个 字节 , 判断是否是已被加密文件 。 然后 对 文件 大小进行判断 , 文件大于100M的,只加密15M(F00000),小于等于100M,大于等于10M的,只加密10M(A00000) 。 小于10M的, 对16取整 后加密 。 加密 时 会随机生成一个 0 x80 字节长度 的随机数, 然后取其中的 256 bit作为AES 对称加密 的秘钥。

 

加密时 会对CPU 进行判断,如果支持 AES -NI的,则调用相应的指令,加快加密速度。 AES -NI是一个x86指令集架构的扩展,用于Intel和AMD微处理器,该指令集的目的是改进应用程序使用高级加密标准(AES)执行加密和解密的速度。

如果 不支持,则调用软件 自己的代码 进行AES-256 位 加密。

文件全文 被 加密后, 接下来一步是 把 随机生成的AES key通过 RSA 加密后,存在文件尾部。 首先 写入8个字节 的标志位 0 x1FF22AA1, 0 x97DEFF97 , 作为前面判断文件是否已经加密的依据 。 紧接着调用RSA算法, 利用 RSA public key把AES-256 key进行加密后存入文件尾部。

至此 ,病毒就 把随机 生成的RSA Session key 进行了 加密。病毒 再 调用MoveFileEx等函数把文件进行 移动 ,重命名 , 最终会保存在桌面,并命名为 : 计算机-#-加密时间.key .~ xdata。

 

 

普通文件加密过程

对于 用户电脑上的普通文件, 整个加密 过程与 R SA Session  K ey 的加密过程 基本 一致,唯一的 区别 在于 , 在 把随机生成的AES-256 key 加密保存 在文件末尾 时 ,普通 文件用的是RSA Session Public Key 进行 RSA加密,而不是 病毒作者 事先生成 好 后保存在数据资源的RSA Public Key 。 要想解密 用户 的文件,必须得有RSA Session Private Key,而此文件 又 被RSA Public Key加密了。 所以 , 必须 等待 病毒作者 释放手中的RSA Private Key才能成功解密。

解密 与查杀

上周 , 病毒作者将 手中的私钥 公布在了beepingcomputer论坛上 , 根据此密钥,卡巴斯基等安全厂商先后发布了解密工具。腾讯安全反病毒实验室哈勃分析系统根据上述样本的分析结果,也发布了自己的解密 工具,用户可以 登录 网页进行下载 ( https://habo.qq.com/tool/detail/xdatacrack ) 。


 

 

相关TAG标签
上一篇:MSF外网持久控制Android手机并渗透测试局域网
下一篇:浅谈WAF绕过技巧
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站