主页 > 苹果下载imtoken教程 > 比特币勒索病毒分析
比特币勒索病毒分析
在采访中获得了勒索软件样本。 结束后整理了当时的分析报告分享给大家。 这个样本比较老,2012年第一次记录在VT上。样本的逆向难度比较简单,没有反逆向技术比特币是什么文件格式,很适合新手练习。
国际奥委会
MD5 291456322adcac8f75437b9f4a715693
SHA-1 ac51cec89c0d563715a646ccf5d584f1ce1fdd5d
SHA-256 62e59afe5b604b14efeb68600ca3f179024b17d2e4babf30fa41ebbf91e2f710
静态分析&动态分析解密配置文件
从资源段加载配置文件数据,然后通过密钥解密配置文件和配置文件。
解密算法如下:
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开始遍历到最大可用磁盘设备号,遍历该分区下的所有目录和文件,加密目标文件类型。
加密文件格式有哪些?
在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。
加密文件的数据配置信息中指定的文件加密大小
指定的加密大小为nNumberOfBytesToRead(0x1B03E4),即默认加密的最大长度为1770468字节。 此外,加密位置从第 48 个字节开始。
运行加密文件时弹出勒索提示框
通过在注册表“HKEY_CLASSES_ROOT”的根目录下添加一个键“.lUUUUUUUUU”,所有以该键为文件后缀的文件启动后,将按照HKCR\AOUIJJJBNYUXWCN\shell\open\command下的设置运行程序(默认)。
HKEY_CLASSES_ROOT 控制键包括所有文件扩展名和与可执行文件相关的所有文件。 它还确定在双击文件时做出反应的关联应用程序。
相关代码位于函数 sub_402342 中。
加密文件的文件加密算法和密钥生成
用于加密文件的tea加密密钥是基于一组固定的密钥,根据文件名末尾的地址进行4轮循环异或生成新的密钥。
加密文件有两种加密算法,使用哪种算法根据配置文件来决定:
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即可,这也是最简单的修复方法。
运行后,解密程序执行成功,所有加密文件都被解密还原。
结尾
招聘小广告
ChaMd5Venom 招大佬入圈
新成立集团物联网+工控+样品分析 长期招聘
欢迎联系 admin@chamd5.org