首页 > 其他分享 >恶意代码分析实战 数据加密 lab 13-1 13-2 13-3

恶意代码分析实战 数据加密 lab 13-1 13-2 13-3

时间:2022-10-06 12:45:34浏览次数:77  
标签:13 01 加密 函数 恶意代码 lab exe Lab13 资源

Lab13-1

整体功能:向远程主机发送本机gethostname信息,该信息通过base64加密,远程请求的主机域名也被xor加密。

看下代码反编译的情况:

下面函数是从资源文件里提取加密的:www.practicalmalwareanalysis.com

 

 

 使用了简单的xor加密:

 

 

接下来就是发送加密的gethostname:

 

 base64加密的函数:

 

 

 

下面是详细分析:

1. 比较恶意代码中的字符串与动态分析提供的有用信息,基于这些比较,哪些数据可能被加密?

string查看Lab13-01.exe字符串注意到有http字符串,并且%s表示有输出的值。

利用火绒剑监控Lab13-01.exe,可以看到文件正在访问www.practicalmalwareanalysis.com/aGFueHUtUEM=/

推测两个%s表示的正是www.practicalmalwareanalysis.com和aGFueHUtUEM=,但在查看Lab13-01.exe字符串时并没有以上两个,所以推测www.practicalmalwareanalysis.com和aGFueHUtUEM=可能被加密。

分析Lab13-01.exe

首先用peid查壳发现无壳,IDA打开恶意文件。

 首先可以看到对函数sub_401300的调用,跟进函数分析。

GetModuleHandleA函数获得Lab13-01.exe的句柄,FindResourceA函数确定Lab13-01.exe文件中名为65h的资源节所在位置。根据对资源的获取函数,推测Lab13-01.exe包含一个资源节,StudyPE查看Lab13-01.exe。

可以看到资源节0065中的内容。但是内容中看不出重要信息,可能已被加密。回到IDA中继续分析。

 

 loc_401357处已将资源加载到进程内存中。继续乡下分析:

LockResource函数所返回的是指向内中资源的指针,在004013A6处被入栈;dwBytes变量是0040135F处SizeofResource函数所返回的资源大小,在004013A2处被入栈。两个参数入栈后调用了sub_401190函数

其中arg_0是第一个参数,既是指向资源的指针;arg_4是第二个参数,是资源的大小;var_4是for循环的计数器。mov al, [edx]获得资源内容;xor eax, 3Bh进行对资源解密操作。OD中在004013A7处下断点步过,查看自解密之后的内容:

观察栈中内容“www.practicalmalwareanalysis.com”,说明对资源节中的内容进行xor eax, 3Bh解密后即为“www.practicalmalwareanalysis.com”。继续回到IDA中分析

在自揭秘操作之后,调用了WSAStartup函数初始化网络。向下分析

 

在Sleep等待后,将变量var_19C压栈,00401402处判断var_19C就是对资源节内容解密后的内容。使用peid插件KANAL查询加密方式。

 可以看出KANAL已经是被出一个BASE64编码,IDA中跳转到4050E8处分析

查看byte_4050E8处交叉引用

 在后头看IDA中执行流程

可知程序再sub_4010B1函数中调用sub_401000函数最终引用了BASE64编码。在00401201处获得主机名然后在0040122A处进行加密。OD中比较加密前后主机名

加密前主机名为“hanxu-PC”

加密后主机名为“aGFueHUtUEM=” 。

 我自己机器的尝试效果:

 

 和网络中火绒剑监控的一样:

 

 

补充:

 

 

 

 

通过PEID加密分析插件看到的!的确是有加密!

 

标签:13,01,加密,函数,恶意代码,lab,exe,Lab13,资源
From: https://www.cnblogs.com/bonelee/p/16757408.html

相关文章