恶意代码分析实战第一章习题实验
Lab 01-01
对Lab01-01.exe 和Lab01-01.dll进行分析
问题
-
将文件上传至http://www. VirusTotal. com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
首先传文件到virscan或virustotal,这个自行处理
-
这些文件是什么时候编译的?
使用PEtools打开文件,点击文件头可看到,其他同理。
-
这两个文件中是否存在迹象说明它们是否被加壳或混淆了?如果是,这些迹象在哪里?
使用PEID打开文件,注意红框内的东西,这里表示该程序是由什么写的,若有加壳,则该区域为壳的名字或者显示Not Found
再看看它的区段表,很完整,基本可以确定没有加壳
-
是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
我们查看导入表
点击dll文件,看到它导入的一些函数
如红框内的两个就是病毒常用的,查找文件的函数,同时CreateFileA和CopyFileA也算
再看dll程序
相比exe多了个WS2_32的引入,这个是用来联网操作的
-
是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
-
是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
5,6一起来看
使用Strings程序,列出程序中可打印的字符
注意红框,显示了一个路径名,特别注意kerne132.dll,这个不是原系统目录下的Kernel32.dll
那么可以基本确定该程序是想将这个文件复制替代原系统文件来造成混淆
同时再看下面的Lab01-01.dll,于是可以大胆猜测,该程序是将这个Lab01-01.dll改名kerne132.dll,从而替代
Kernel32.dll
再对dll文件使用strings
我们发现了一个ip,一个网络特征,这代表什么呢?假定这个是一个真实的病毒程序,那么该作者有可能想让这个程序访问这个ip,有可能是个恶意网站,那么会下载一些恶意的程序。从而危害本机
-
你猜这些文件的目的是什么?
由于dll文件是不能独立运行的,所以可以说exe文件是用来安装dll程序的,而dll文件是一个后门程序,从上面的strings运行结果可以看到,有exec,sleep。那么可以猜测,exec是用来传送某些命令的,而sleep是使后门程序进如休眠的。
Lab 01-02
分析Lab01-02.exe
问题
1.将Lab01-02.exe文件上传至http://www. VirusTotal. com进行分析并查看报告。文件匹配到了已有
的反病毒软件特征吗?
这个自行处理,并查看
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,
请进行脱壳,如果可能的话。
使用上次说的PEID进行查看
可以看到出现了前面说过的Not Found,那么这个很有可能就是又加壳的,我们点击深度扫描查看
得到下面结果
还可以通过区段表查看
可以看到很明显的UPX加壳
那么我们开始脱壳,使用FreeUPX工具进行自动化脱壳
选择脱壳
脱壳成功后再次查看,可以看到已经成功了
区段表也正常了
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什
么?
打开输入表,红框所圈也是病毒常用的函数
这里还使用了创建服务函数,病毒一般通过创建服务让自己运行
再看这个,看到一个联网的函数,可以判断极有可能也会连接一个网站
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
使用strings查看,先看加壳后的
大部分都是不可识别的字符,难以分析
再看不加壳的
我们可以看到,有一个网址,这个网址很有可能就是刚才那个InternetURL函数要打开的对象
MalService,极有可能也是服务创建函数要创建的服务名称
Lab 01-03
问题
- 将Lab01-03.exe 文件上传至http://www. VirusTotal. com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
老样子跳过
- 是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,
请进行脱壳,如果可能的话。
使用PEID进行解析
可以看到文件是使用FSG1.0进行的加壳
那么使用linxerupcker(通用的脱壳工具)进行脱壳,将文件放进去后可以看到,很快的识别出了加壳
单击脱壳后,会在本目录下生成一个脱壳程序
使用PEID进行查看
可以看到程序有vc6.0++编写,脱壳成功
- 有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什
么?
在PEID中查看导入表,前两个没有什么问题,看到第三个
从这里看出这个程序使用了COM对象组件模型,第一个函数用于创建对象,第二个用于实例化对象
- 有哪些基于主机或基于网络的迹象,可以被用来确定被这个恶意代码所感染的机器?
使用strings查看,发现一个网址
那么可以猜测该程序有可能会打开这样一个网址
Lab 01-04
问题
-
将Lab01-04.exe文件上传至http://www. VirusTotal. com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?略
-
是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,
请进行脱壳,如果可能的话。PEID打开查看区段表,可以看到并没有加壳
-
这个文件是什么时候被编译的?
PEtools打开
这个时间不一定准确,因为可以被修改
-
有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什
么?PEID查看
这里有个创建,写入函数,还有类似于WinExec这样的运行一个程序函数,资源函数等,这些都是后门程序经常用的API函数
这里还有提权函数
-
有哪些基于主机或基于网络的迹象,可以被用来确定被这个恶意代码所感染的机器?
这里出现了网址,出现了system32目录
这里URLDownloadToFile,说明很有可能会从网址下载一个程序并改名放到system32目录下
并且拷贝到windows的目录里面
-
这个文件在资源段中包含一个资源。 使用Resource Hacker工具来检查资源,然后抽取资源。从资源中你能发现什么吗?
首先标志的MZ,说明是PE文件
那么是什么PE文件呢?
先提取出来Action->保存文二进制文件,命名为01-04.exe(假定它为exe)
在使用PEtools查看
可以看到dll文件没有打勾,那么说明应该是个exe文件
接下来用查看一下导入表
一个执行函数,一个获取目录函数
从网页下载文件函数
从而推断,该程序有可能会下载后门程序并运行