首页
社区
课程
招聘
[原创]勒索病毒加密算法逆向识别
2020-11-6 11:49 4001

[原创]勒索病毒加密算法逆向识别

2020-11-6 11:49
4001

前言

使用IDA Pro进行分析时,通常只是利用它的反汇编功能,更快的分析汇编代码辅助后续需要采用的动态调试过程。由于hexray插件的强大,极大的提升了逆向效率。但是对于没有签名库匹配的情况下,得到都是未命名的函数,所以识别这些函数就成了一个问题。

 

提及一下FLIRT的原理:从函数的前32个字节中提取模式并使其成为签名。当然,如果模式相同,则会发生冲突。如果需要提取签名的库很大,则会遇到很多奔溃错误。

 

openssl算法库在勒索病毒(853358339279b590fb1c40c3dc0cdb72)中也算是比较常见,会静态链接至恶意软件,这为制作签名提供了基础。

 

所以接下来就是比较接近实操的IDA签名制作过程,记录一下。

 

首先逆向勒索病毒的时候通过IDA的字符串搜索功能找到使用的openssl版本号,这里是openssl-1.1.1b。

 

C:\lib\openssl-1.1.1b\win32-release\lib\engines-1_1
图片描述

 

需要一个库文件来制作签名,库文件是.lib文件,等效于.dll,同样编译openssl还需要Perl环境。

开始安装环境

在Window安装Perl,Perl在Window平台上有ActiveStatePerl和Strawberry Perl编译器。ActiveState Perl和 Strawberry Perl最大的区别是 Strawberry Perl 里面有多包含一些 CPAN 里的模块, 所以Strawberry Perl 下载的安装文件有 80多M, 而ActiveState Perl 只有20M 左右。

 

这里使用了 Strawberry Perl 。Window 系统上 Perl 安装步骤如下:

 

Strawberry 安装包链接: http://strawberryperl.com。
下载对应你系统的版本: 32bit 或 64bit 。
下载后双击打开,按安装向导一步步安装即可。

 

安装完后,在命令行测试一下环境。
图片描述

 

通过字符串找到勒索病毒的编译环境为VS2017,不过其实影响不大,这里就使用本地的VS2015环境。
图片描述

 

下载openssl源代码本地编译
https://www.openssl.org/source/old/1.1.1/
图片描述

 

管理员打开本地VS2015开发人员命令提示,输入执行以下命令。
perl Configure VC-WIN32 no-shared no-asm --prefix=C:\Users\onion\Desktop\openssl-1.1.1b\x86_build_out
图片描述

 

参数解释如下:

 

Configure是OpenSSl源码中自带的命令文件,必选参数;
VC-WIN32表示编译x86版本,VC-WIN64A表示编译x64版本,debug-VC-WIN32表示编译debug版x86版本,必选参数;
no-shared表示编译成静态链接lib模块,shared表示编译成动态链接库dll模块,必选参数;
no-asm如果要本地优化,还需要下载NASM,这里直接用no-asm选项,因此不需要下载NASM,必选参数;
--prefix是OpenSSL编译完后的安装路径,必选参数;

 

网上有很多关于Windows系统编译openssl的教程贴,在创建Makefile这一步中,讲到的都是使用
ms\do_ms
ms\do_masm
ms\do_nasm

 

这之类的命令,在编译时输入这些的命令都是提示找不到这些命令,按照网上的说法也重新去安装了一些编译器,结果是统统无效。从openssl 1.1.0版本以后就不再有ms\do_*.bat这样的文件,而是直接使用nmake命令。

 

所以执行完上述命令后,执行nmake命令,接着执行nmake install,最后执行nmake test进行下测试。
图片描述

 

在编译完lib文件后,接着就到了制作签名文件的步骤了。
图片描述
图片描述

 

利用工具包中的pcf工具创建模式文件(pat),在控制台使用命令pcf .lib .pat生成模式文件。接着使用sigmake .pat .sig命令生成sig文件。

结果

签名应用识别情况如下:
图片描述

 

成文的主要目的是记录一下,许多细节暂未记录,有兴趣的可自行动手练习然后解决那些问题。


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

最后于 2020-11-6 11:50 被jishuzhain编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (1)
雪    币: 622
活跃值: (1211)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
绝望的皮卡丘 2020-11-6 17:05
2
0
勒索病毒不用openssl库函数不就凉凉了
游客
登录 | 注册 方可回帖
返回