深探逆向勒索病毒加密算法

admin 2023年2月23日21:23:17评论64 views字数 2005阅读6分41秒阅读模式

前言


这是个人业余针对性逆向的一些记录,文中如有错误,感谢指正,采用的样例:853358339279b590fb1c40c3dc0cdb72。


提一下,这个作者其实已经被抓了,不过当前这个病毒确实编写的很强,说明软件开发能力还是很不错的,逆向完后其实程序大体脉络也很清楚了。

深探逆向勒索病毒加密算法



开始


VS编译的程序通常情况下会带有如下代码,这些代码并不是用作反调试技巧,而是用来计算security cookie,作为堆栈保护机制,所以下次遇到的时候,直接就可以快速略过。

深探逆向勒索病毒加密算法

深探逆向勒索病毒加密算法


通过一些技巧找到的main函数入口点地址为00409CE0

深探逆向勒索病毒加密算法


在开始加密文件之前,出现了梅森旋转伪随机数算法,下面是seed,主要是产生后续使用的随机数,通过随机数作为位置取相应的字符进行拼接组成一段字符串,在随机数这个过程暂时没有缺陷。

深探逆向勒索病毒加密算法


以上是黑客采用的公开算法案例,所以在随机数的产生内部会采用系统的相关库,例如:"minkernelcrtsucrtsrcappcrtstdlibrand_s.cpp",这是C运行时库。


在IDA中应用签名UCRT,可以识别一些系统库函数,效果还是不错的,有1457个函数被识别。

深探逆向勒索病毒加密算法


采用上述的梅森旋转伪随机数算法产生0xC8大小随机数,其实直到最后才发现随机数最有用的是只使用了第一段16个字节数据,也就是HQooL$}#hN*jo*uP

深探逆向勒索病毒加密算法


明文:

HQooL$}#hN*jo*uPz^l?*^{Y2LCpV7q*mA:KMudxurWpO)L}w!8CnsJ?>#cn9kiA^kQlop^k%zXGeSE!<l7<dYV*njpDnxB53{6bRus2i1D9dY!T4AHjJkMx(PzC$e9V(yZt)R}NQRP<Po4_peld08ATn@*Uj!o<NUsM9WJXM%&RPCoB!ne(orLZA>1NCh4>e%:WBuas


如下是RSA加密函数过程,采用的是OpenSSL算法库。

深探逆向勒索病毒加密算法


通过相应的源码比对也可以看出

深探逆向勒索病毒加密算法


至于出现的5ss5c_token文件的内容值是固定的:SEV5QV6EO15JE4QB9ME9X6HB1ME12IM97ZDXKCPD



密钥处理


对生成的随机数进行RSA加密前的编码处理

深探逆向勒索病毒加密算法


以下是RSA加密过程,导入的公钥。

深探逆向勒索病毒加密算法


明文:

-----BEGIN PUBLIC KEY-----.MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICC

gKCAgEAuvAlR0E7ien3N1LJh+kJ.2rmoLhgoNNxYUZH/M8cSEGke+PvDVHpbEblZ

4eHYd0ebAU8ml5mqGGqfM8JwA6ep.JkQvoWdNYzieN66H+Uncd80zisY6fNbtzme

0oR/QcIdhnYotWc6Ox5VoLWH+d6ZQ.9+H3kfwPy0eVFHlmHen1fuc+hyNOpN8jcJ

s4G46FxymzyJwzpuhEw5u3wGWOQ6mE.oPuaJzuhpS0GoBfh1cQ3M0BABhsm78Ilp

tZkndpQnhKLw3elIK2jlNRtoUqKv9YE.rXzfhKPn1LHBi/NHxM3OtWOxiRiDUYPD

dMRMngTyBo9UYIFp/JzOArEHMm7uXZlT./1JjFsXP9tnHyQeTVMJdbCfuZ0AQI7y

kNjpBb0MPTcxmK1mO78Tld63b8pXMf7Rk.Iyix9AHxaUsDNvLVKs8i7HzsDu4u/Y

t5nKMS9k8KWBL2fYcktIwLWYSET7L2cTRh.mxJpi94sStjcBMiAf0q+l/Aejya5y

zqYJEuoG9d7WWaIXHuFKkcfP6ArmQ+4tCWw.Wb3cfSYn5eZJiH733VzD3ZIf1fiZ

uqEWYR4dV3y+CUgDNijEn69SEj5JUtM7R39k.VcZEX3fcQFJTjvDlTqWTmpnVKJ+

SaplaFRA1OHaQKjXDTCrcueKLEuFwDfN39cGe.5hsAPmBB42j6Cp9voLZggEUCAw

EAAQ==.

-----END PUBLIC KEY-----


上述导入的RSA公钥加密如下该数据(之前产生的随机数)

深探逆向勒索病毒加密算法


加密结果

深探逆向勒索病毒加密算法


后续经过base64编码得到如下加密结果

深探逆向勒索病毒加密算法


base64编码后的可见字符串作为勒索信中的解密凭证,保存在文件中,方便黑客后续自行解密这段内容,得到之前产生的随机数(也相当于密钥)。

深探逆向勒索病毒加密算法


未加密前的密钥布局

深探逆向勒索病毒加密算法


最终发现加密文件采用的AES密钥为上述固定值加第二行数据组成,由于采用的是ECB模式,所以没有IV值参与。

深探逆向勒索病毒加密算法



解密探索


刚刚上面分析时也提及了,未加密的数据被内置RSA密钥进行了加密,存在勒索信的解密凭证中,所以如果没有黑客的RSA私钥,无法破解这个加密过程,除非RSA存在缺陷。

原文始发于微信公众号(OnionSec):深探逆向勒索病毒加密算法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月23日21:23:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   深探逆向勒索病毒加密算法http://cn-sec.com/archives/700281.html

发表评论

匿名网友 填写信息