首页
社区
课程
招聘
[原创]通俗易懂讲解-GandCrab勒索病毒加密原理
发表于: 2019-7-14 11:43 15891

[原创]通俗易懂讲解-GandCrab勒索病毒加密原理

2019-7-14 11:43
15891

        笔者根据对“侠盗”勒索病毒V5.3新变种全面剖析 https://paper.seebug.org/911/"这篇文章的自我理解,隐掉一些细节之后,以大白话的方式来阐述GandCrab勒索病毒的加密原理,以及数据为什么无法解密。

1、RSA加密算法是一种非对称加密算法。所谓非对称,就是指该算法需要一对密钥(公私钥),使用其中一个加密(公钥),则需要用另一个才能解密(私钥)。

2、Salsa加密算法是一种对称加密算法,加密和解密双方使用相同的密钥,加密后数据长度不变。


关键字解释:关键字根据自己的理解做了稍许改变。

RsaHackerPrivateKey = 病毒作者预先生成的RSA私钥,只有病毒作者知道。

RsaHackerPublicKey = 病毒作者预先生成的RSA公钥,勒索病毒体内嵌的RSA公钥。

SalsaPrivateKey = 随机生成的Key,用于Salsa20加密算法的Key

RsaLocalPrivateKey = 本地随机生成RSA私钥

RsaLocalPublicKey = 本地随机生成RSA公钥

SalsaFileKey = 随机生成的Key,用于Salsa20加密算法的Key。(就是这个Key加密的文件)

SrcUserFile = 待加密的文件数据

Data3 =  加密后的文件数据 = "随机生成的SalsaFileKey" 使用Salsa20算法加密"SrcUserFile"后形成的加密数据

RAS加密函数定义 = typedef RSA(Key,待加密数据 )

Salsa20加密函数定义 = typedef Salsa20(Key, 待加密数据 )

1、根据"勒索病毒体内嵌的RSA公钥(RsaHackerPublicKey )"使用RSA算法来加密"随机生成的SalsaPrivateKey",得到Data1

2、根据"随机生成的SalsaPrivateKey"使用Salsa20算法来加密"本地生成的RSA私钥RsaLocalPrivateKey",得到Data2

3、根据"本地生成的RSA公钥RsaLocalPublicKey "使用RSA算法来加密"随机生成的SalsaFileKey",得到Data4

4、根据"随机生成的SalsaFileKey"使用Salsa20算法来加密原始文件,得到Data3


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-7-15 20:40 被AYZRxx编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (10)
雪    币: 10845
活跃值: (1054)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
2
是不是?
RSA加密函数定义 = typedef RSA2048(Key, 待加密数据)
Salsa20加密函数定义 = typedef Salsa20(Key, 待加密数据)
2019-7-14 21:52
0
雪    币: 3395
活跃值: (900)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
3
看场雪 是不是? RSA加密函数定义 = typedef RSA2048(Key, 待加密数据) Salsa20加密函数定义 = typedef Salsa20(Key, 待加密数据)
谢谢指正。原文已经修改成正确的了。
2019-7-14 22:50
0
雪    币: 10845
活跃值: (1054)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
4
吹毛求疵,还有几个字
RSA加密函数定义 = typedef RSA2048(Key, 待加密数据)
^^^                                              ^^^^
最后于 2019-7-15 09:33 被看场雪编辑 ,原因:
2019-7-15 09:33
0
雪    币: 3395
活跃值: (900)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
5
看场雪 吹毛求疵,还有几个字RSA加密函数定义 = typedef RSA2048(Key, 待加密数据)^^^  & ...
已修改,同属强迫症患者,握个爪.......
2019-7-15 20:42
0
雪    币: 117
活跃值: (3042)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
這種就妙了, 要求解密的人,作者是要給他private key,哪麼這人只要公開PRIVATE KEY,其它人不就可以拿來用了?
2019-8-2 14:27
0
雪    币: 10962
活跃值: (2925)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
7
powerpcer 這種就妙了, 要求解密的人,作者是要給他private key,哪麼這人只要公開PRIVATE KEY,其它人不就可以拿來用了?
作者私钥怎么可能给你,给你了还怎么勒索你。详见解密公式1,Data1这个玩意儿你给作者,作者解密后明文的东西给你。
2019-8-2 16:19
0
雪    币: 10845
活跃值: (1054)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
8
当支付赎金之后
黑客不会把RSAHackerPrivateKey给用户
也不会把用户的明文数据发给用户
而是会把RSALocalPrivateKey给用户,然后勒索软件在收到这个key之后,会解密用户所有被加密的文件
最后于 2019-8-2 18:11 被看场雪编辑 ,原因:
2019-8-2 18:11
0
雪    币: 1728
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
照这种方式来看,作者可以只给你提供一个 SalsaFileKey, 解密一个文件,让你相信他有解密的实力。然后当你支付赎金之后他再提供 RSALocalPrivateKey 解密所有 SalsaFileKey,从而解密所有文件。
作者可以搞个分层加密,一个局域网用一级密钥,每台电脑用二级密钥,每个文件用三级密钥。在支付赎金的时候可以选择解密一个文件,一台电脑,还是一个局域网。这样中毒之后可以让公司申请团购。
2019-8-13 16:50
0
雪    币: 5568
活跃值: (3208)
能力值: ( LV12,RANK:407 )
在线值:
发帖
回帖
粉丝
10
解密文件关键在于RSA加密算法,看来中招就是无解了,除非能破解RSA
2019-8-13 17:53
0
雪    币: 10845
活跃值: (1054)
能力值: (RANK:190 )
在线值:
发帖
回帖
粉丝
11
nositno 照这种方式来看,作者可以只给你提供一个 SalsaFileKey, 解密一个文件,让你相信他有解密的实力。然后当你支付赎金之后他再提供 RSALocalPrivateKey 解密所有 SalsaFil ...
一般现在没做那么复杂
当作者需要向用户证明他有解密能力时,会让用户选择不超过3个被加密的文件,限制文件大小,且不允许是有价值的文件,发送给作者;
作者发还解密后的文件给用户。然后用户就相信了。
2019-8-13 19:27
0
游客
登录 | 注册 方可回帖
返回
//