主页 > 苹果下载imtoken教程 > 比特币勒索病毒分析

比特币勒索病毒分析

苹果下载imtoken教程 2023-09-10 05:09:58

在采访中获得了勒索软件样本。 结束后整理了当时的分析报告分享给大家。 这个样本比较老,2012年第一次记录在VT上。样本的逆向难度比较简单,没有反逆向技术比特币是什么文件格式,很适合新手练习。

国际奥委会

MD5 291456322adcac8f75437b9f4a715693
SHA-1 ac51cec89c0d563715a646ccf5d584f1ce1fdd5d
SHA-256 62e59afe5b604b14efeb68600ca3f179024b17d2e4babf30fa41ebbf91e2f710

静态分析&动态分析解密配置文件

从资源段加载配置文件数据,然后通过密钥解密配置文件和配置文件。

莱特币是比特币?_比特币是什么文件格式_比特币wallet文件90k

解密算法如下:

void __stdcall __spoils sub_40211B(char *a1, int a2)
{
  v2 = a1;
  v3 = a1;
  v4 = 0;
  for ( i = a2; i; --i )
  {
    if ( v4 == 16 )
      v4 = 0;
    v6 = *v2++;
    *v3++ = key[v4++] ^ v6;            // key:89 EF 37 A2 01 55 C9 80  7F 69 83 14 2D 45 6B 03
  }
}

加密文件

在start函数中比特币是什么文件格式,使用GetLogicalDrives函数获取最大可用磁盘设备号,从磁盘A开始遍历到最大可用磁盘设备号,遍历该分区下的所有目录和文件,加密目标文件类型。

比特币wallet文件90k_比特币是什么文件格式_莱特币是比特币?

加密文件格式有哪些?

在sub_4013A8函数中我们可以看到需要加密的文件的文件类型有:*.zip, .rar, .7z, .tar, .gzip, .jpg, .jpeg, .psd, .cdr, .dwg , .m ax, .bmp, .gif.* .png, .doc, .doc x, .xls, .xlsx, .ppt, .pptx, .txt, .pdf, .djvu.* .htm, .html, .md b、.cer、.p12、.pfx、.kwm、.pwm。 .1cd、.md、.mdf、.dbf、.odt、.v ob、.ifo、.lnk。 .torrent、.mov、.m2v、.3gp、.mpeg、.mpg、.flv、.avi、.mp4、.wmv、.divx、.mkv、.mp3、.wav、.flac、.ape、.wma , .ac 3, . exe、.iso、.dll 和 .html。

比特币是什么文件格式_比特币wallet文件90k_莱特币是比特币?

比特币wallet文件90k_比特币是什么文件格式_莱特币是比特币?

加密文件的数据配置信息中指定的文件加密大小

指定的加密大小为nNumberOfBytesToRead(0x1B03E4),即默认加密的最大长度为1770468字节。 此外,加密位置从第 48 个字节开始。

比特币wallet文件90k_莱特币是比特币?_比特币是什么文件格式

运行加密文件时弹出勒索提示框

通过在注册表“HKEY_CLASSES_ROOT”的根目录下添加一个键“.lUUUUUUUUU”,所有以该键为文件后缀的文件启动后,将按照HKCR\AOUIJJJBNYUXWCN\shell\open\command下的设置运行程序(默认)。

HKEY_CLASSES_ROOT 控制键包括所有文件扩展名和与可执行文件相关的所有文件。 它还确定在双击文件时做出反应的关联应用程序。

比特币wallet文件90k_莱特币是比特币?_比特币是什么文件格式

比特币wallet文件90k_比特币是什么文件格式_莱特币是比特币?

相关代码位于函数 sub_402342 中。

比特币wallet文件90k_莱特币是比特币?_比特币是什么文件格式

加密文件的文件加密算法和密钥生成

用于加密文件的tea加密密钥是基于一组固定的密钥,根据文件名末尾的地址进行4轮循环异或生成新的密钥。

比特币wallet文件90k_莱特币是比特币?_比特币是什么文件格式

加密文件有两种加密算法,使用哪种算法根据配置文件来决定:

unsigned __int32 __stdcall tea_decryph(unsigned int *a1, unsigned __int32 *a2)
{

  v2 = 0x9E3779B9 * dword_4065A5;
  x = _byteswap_ulong(*a1);
  y = _byteswap_ulong(a1[1]);
  do
  {
    v5 = y - ((dword_406591 + (x >> 5)) ^ (v2 + x) ^ (dword_40658D + 16 * x));
    v6 = x - ((dword_406589 + (v5 >> 5)) ^ (v2 + v5) ^ (newKey + 16 * v5));
    v7 = v2 + 0x61C88647;
    y = v5 - ((dword_406591 + (v6 >> 5)) ^ (v7 + v6) ^ (dword_40658D + 16 * v6));
    x = v6 - ((dword_406589 + (y >> 5)) ^ (v7 + y) ^ (newKey + 16 * y));
    v2 = v7 + 0x61C88647;
  }
  while ( v2 );
  result = _byteswap_ulong(x);
  *a2 = result;
  a2[1] = _byteswap_ulong(y);
  return result

样本勒索逻辑是否严密,加密文件能否解密? 破译思想?

该勒索病毒的勒索逻辑并不严密,很容易被破解。 加密后解密密钥存放在样本数据段中,加密算法并不复杂。 可以写个脚本直接逆向加密文件。 由于样本中也包含解密算法,因此可以修改代码逻辑,主动执行解密程序。 例如修改sub_401AB9函数中的代码逻辑,将输入密码计算出的密钥,修改为正确保存的密钥。

前一种思路太麻烦,这里是第二种解密思路:将下图圈内的硬编码地址改成0x406DC9即可,这也是最简单的修复方法。

比特币wallet文件90k_莱特币是比特币?_比特币是什么文件格式

运行后,解密程序执行成功,所有加密文件都被解密还原。

莱特币是比特币?_比特币wallet文件90k_比特币是什么文件格式

结尾

招聘小广告

ChaMd5Venom 招大佬入圈

新成立集团物联网+工控+样品分析 长期招聘

欢迎联系 admin@chamd5.org

比特币wallet文件90k_莱特币是比特币?_比特币是什么文件格式