Lab 1-1
对Lab01-01.exe和Lab01-01.dll进行分析
问题
1.将文件上传至http://www.VirusTotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
Lab01-01.exe:
在details里可以看到基础属性、检测历史、命名、PE信息(头、节、导入导出表等)
在community可以看到一些沙箱的分析报告等,有助于对样本加深理解。
Lab01-01.dll:同理上传即可
2.这些文件是什么时候编译的?
使用PEView,这里应该有一个Time Date Stamp,但是这里并没有,换一个工具试一试。
我们可以看到两个时间,好像和编译时间没什么关系
还是直接看virustotal报告吧,PE信息部分有直接给出。
Compilation Timestamp 2010-12-19 16:16:19
同理Lab01-01.dll文件的编译时间为
Compilation Timestamp 2010-12-19 16:16:38
可以看出两个文件的编译时间相差不大。
3.这两个文件中是否存在迹象说明它们是否被加壳或混淆?如果是,这些迹象在哪里?
使用PEID查看是否有壳
Lab01-01.exe
Lab01-01.dll
可见没有加壳和混淆
4.是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
使用PEID查看输入表函数,可见导入了两个dll,每个dll下对应着多个API函数,
其中FindFirstFileA
和FindNextFileA
说明该文件可能会对搜索文件等
使用strings工具查看字符串:
我们可以注意到这里出现了kerne1
32.dll,这里是为了混淆视听。
kernel32.dll
是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
msvcrt.dll
是微软在windows操作系统中提供的C语言运行库执行文件,其中提供了printf、malloc、strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能。
Lab01-01.dll文件:
使用PEID查看输入表函数
这里多了一个WS2_32.dll
,主要用于联网。
kernel32.dll
下面出现了创建进程、互斥量相关的API函数。
使用strings
在Lab01-01.dll文件中发现了一个ip地址。
5.是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
我们可以猜测Lab01-01.exe在运行时会导入kerne132.dll和这里的Lab01-01.dll文件,如果说我们在一台主机上发现有kerne132.dll,可以判断该系统被感染。
6.是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
Lab01-01.dll文件中发现了一个ip地址和WS2_32.dll
。
7.你猜这些文件的目的是什么?
后门程序,使用exe文件装载dll文件运行。