实验环境以及设备
实验环境:windows XP(虚拟机环境)
实验工具:PEid,PETools
实验文件:Lab01-01.exe,Lab01-01.dll
实验思路
1、利用网络扫描工具对目标程序进行扫描
2、利用本地静态分析工具分析目标程序
3、对上述结果进行分析
实验问题
1、将文件上传至http://www.VirusTotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
由于这个网站是一个国外的网站需要翻墙,所以采用了Virscan网站进行分析。具体网址如下:https://www.virscan.org/language/zh-cn/
VirScan网站首页
点击浏览以后选择lab01-01.exe文件以及lab01-01.dll文件分别分析就可以获得对应很多公司的报毒情况
2、这些文件是什么时候开始编译的?
回顾PE文件头,PE文件头中有一个结构为:_IMAGE_FILE_HEADER结构体,其中包含了一个属性为:TimeDateStamp,即为时间戳,这个时间戳的值表明此程序是什么时候开始编译的。我们可以使用PETools进行分析。
编译时间获取
进行如上操作以后就可以查看到lab01-01.exe文件的编译时间为:2010年12月19号16:16:19。同理可以查看lab01-01.dll文件的编译时间为:2010年12月19号16:16:38
3、这两个文件是否存在迹象表明他们是否被加壳或被混淆了?如果是,这些迹象在哪里?
查看是否加壳可以使用PEID这个软件检测,检测lab01-01.exe文件结果如下:
PE文件加壳检查
可以看到此文件是由Visual C++ 6.0编写的,此程序没有被加壳。
4、是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
使用软件为PEID,同样将lab01-01.exe文件拖入到PEID中,点击子系统结果如下:
子系统信息
点击输入表:
输入表信息
可以观察到此系统调用了两个dll文件。分别为:kernel32.dll以及msvcrt.dll。点击kernel32.dll可以出现:
kernel32.dll
如上所示,可以观察到此dll文件调用了哪些函数,其中FindNextFileA函数以及FindFirstFile函数是病毒常用函数,经常用来查找一些特定的文件,病毒使用CopyFile函数主要目的是将自己隐藏到系统的目录里面,从而起到混淆的作用。
同样的操作我们可以查看lab01-01.dll文件如下:
dll文件信息
可以看到多调用了一个ws2_32.dll文件,此文件经常是用来进行联网操作的。
5、是否有任何其他文件或者基于主机的迹象,让你可以在受感染的系统上查找?
使用strings工具,将strings.exe文件和lab01-01.dll以及lab01-01.exe文件放置在相同的目录下,使用cmd命令行驱动使用。cmd进入到文件目录以后,输入:strings lab01-01.exe,后回车得到:
strings
此时就得到了此exe文件中所有可打印的字符。但是此时我们注意到最后几个路径文件中:
文件混淆
此文件并不是kernel32而是kerne'1'32,所以我们有理由猜测,程序是想通过混淆名字的方式对受害者系统进行混淆,最大的可能就是将lab01-01.dll文件变为kelne132.dll文件。
同理我们可以分析lab01-01.dll文件如下:
dll文件
这时我们可以看到存在一个网址,可以通过ip138查看一下打印出来的这个网址是什么:
ip地址
可以看到这个是保留地址,因为是实验文件,如果是真实的恶意代码程序,这个网址通常会是恶意代码编写者指定的网址,目的很有可能是向这个网址请求下载数据。
6、是否有基于网络的迹象可以用来发现受感染机器上的恶意代码?
127.26.152.13即为网络迹象
7、猜测这些文件的目的是什么
此文件可能是一个后门程序,我们可以通过strings分析dll文件时发现exec以及sleep文件,exec可能是通过网络给后门传送命令,使其可以通过createprocess函数运行程序,sleep可能是命令后门程序进行休眠模式。
附件如下:
strings工具:
strings.rar
(408.1 KB, 下载次数: 49)
病毒文件:
lab01-01.zip
(284.65 KB, 下载次数: 39)
|