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