恶意代码分析-工具收集 - 17bdw - 博客园 (cnblogs.com)
实验环境:Lab 1-1
这个实验使用Lab01-01.exe和Lab01-01.dll文件,使用本章描述的工具和技术来获取
关于这些文件的信息。操作环境
操作场景:
windows xp sp3
实验工具:
PEiD v0.95
Strings(新工具-在cmd窗口运行打印出目标程序的可打印字符)
PETools v1.5
VirsCAN,org
实验文件:
Lab01-01.exe
Lab01-01.dll问题
1、将文件上传至http://www.VirusTotal.com/进行分析并查看报告。文件匹配到了
已有的反病毒软件特征吗?
2、这些文件是什么时候编译的?
3、这两个文件中是否存在迹象说明它们是否被加壳或混淆了?如果是,这些
迹象在哪里?
4、是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
5、是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
6、是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
7、你猜这些文件的目的是什么?实验思路
- 利用网络扫描工具对自标程序进行扫描
- 利用本地静态分析工具分析自标程序
- 又 对上述结果进行分析
实验过程
1
如图所示:检测出报毒
2
文件.exe和.dll都是属于PE文件结构
看到下面的PE结构图
在PE头的位置,有IMAGE_FILE_HEADER
成员,里面有TimeDateStamp
的时间戳,表明了程序是什么时间编译的。由于难找工具,我直接使用的是LoadPE软件进行查看:
可以看到上面Lab01-01.exe的日期时间标志经过解码之后的时间。
然后看到Lab01-01.dll的时间也是差不多的一样。
3
以上可见Lab01-01.exe没有加壳,通过观察区段表也可以知道,非常的完整。
Lab01-01.dll分析同上理
4
我们先用PEID来观察.exe的导入表如下:
就能基本观察到他用了哪些API,懂点英文就应该能知道,find查找,filew文件,copy复制,Create创建,所以一般病毒都是先把自己复制到系统目录里隐藏起来。这事根据经验之谈。
再看Lab01-01.dll文件的导入表可以猜测功能:
分析可知,WS2_32.dll是进行一些联网的操作,然后Sleep休眠,CreateProcessA创建进程,CreateMutexA创建一个互斥体。等都是病毒经常使用的API函数。
5,6
首先这个问题我们可以使用到我们的Strings工具,这个工具我也是第一次用
(34条消息) strings工具(Win、Linux均可适用)_墨痕诉清风的博客-CSDN博客
(34条消息) chapter1 静态分析技术-04字符串搜索 strings工具_尉晓昌的博客-CSDN博客
据说可以列出在对象文件或二进制文件中查找可打印的字符串。
先看Lab01-01.exe 可以知道并且推测,由于数字1和字母l 在windows中长得太像了,所以可以推测这个程序将Lab-01-01.dll文件改名成了Kerne123.dll文件,实现伪装隐藏。
下面在看Lab-01-01.dll 可以发现一个IP地址
去查询ip.cn发现这是一个内网地址,可见病毒作者处于教学的目的,只随便写了一个内网地址,如果他是一个公网地址,那就很有可能在后台访问这个ip进行一些危险操作。
7
分析目的:
由于dll文件是不能够直接自己来运行的,所以,必须借助exe的外力在后台运行。所以exe就是专门用来安装和运行这个dll后门程序的。当exec和sleep结合使用的时候,必需特别的注意,因为exec可能通过网络来给后门程序传送命令,让他能通过CreateProcessA函数运行一个程序,而sleep可能是命令后门程序进入休眠模式。