一个关于用作文件锁的加密/解密算法的小POC

作者:Sec-Labs | 发布时间:

Ultra:关于用作文件索的加密/解密算法的小 Poc


项目地址

https://github.com/ORCx41/Ultra

为什么 ?

  • 基本上它是一种算法,我想生成密钥,使用尽可能多的小代码
  • 我想看看勒索软件是如何运作和运行的,所以在研究了泄露的代码之后,我想我自己做了一些东西,因此这个 repo

支持:

  • 从命令行加密/解密 1 个文件
  • 从命令行加密/解密 1 个目录

算法:

  • 它使用 rc4 加密算法进行文件加密(使用 20 字节密钥)
  • 每个文件都将使用 hmac 算法为其生成一个不同的 20 字节加密密钥。
  • hmac 算法需要 2 个种子,这将生成用于解密的密钥。
  • 改变这两个种子,显然会改变密钥,这就是这里发生的事情。
  • 对于解密部分,locker 会保存文件中使用的种子,并且会保存使用的密钥的前 4 个字节,这样如果我们错误地生成了不同的密钥,我们就不会破坏文件。
  • 在大文件的情况下,储物柜只能读写 65535 字节,这样可以节省时间。
  • 储物柜使用SetFilePointer带有负 lDistanceToMove 和 FILE_END 参数的 api,因此它从下往上读取文件,这说明了解密器中的完全反转偏移量......
  • 我尝试尽可能地减少代码,并且不会在大文件加密和其他文件算法(完全加密和部分加密)之间产生很大的差距,为了节省时间,所以两种情况都有相同的写入功能,例如,您在 conti 中看不到的东西
  • 储物柜和解密器都在再次运行算法之前检查给定文件是否已加密(并对其进行修改)
  • hmac 算法来自这里
  • 我研究的 conti locker 泄露的代码可以在这里找到



超文件

标签:工具分享, 勒索POC