2020-2021 恶意代码 20181230实践作业5.1 简单静态分析
实践目标:
1.将样例代码上传到在线杀毒中心进行分析并查看报告,从报告可以看出什么信息?
2.这个文件是否加壳了?如果加壳了,请进行脱壳;
3.有没有导入函数能够暗示出这个程序的功能?如果有,你认为是哪些函数,从这些函数你可以得到什么信息?
4.有没有什么线索可以被用来在被感染主机上进行该恶意代码的查找?
5.这个文件的作用可能是什么?
实践过程:
问题一:
将Lab01-02.exe文件上传至http://www.VirusTotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
分析报告如下


69家机构有50个显示存在恶意代码,并且显示进行了upx加壳。
下面是该病毒的一些特征:

由上图可以得出该病毒具有一下特征:
Trojan/Win32.StartPage.C26214 修改浏览器主页
Trojan Clicker 木马点击病毒
Trojan Generic:拥有与特洛伊木马病毒疑似功能的代码;
TR/Downloader.Gen 有下载功能
malware.gen 记录键盘输入,并传出
问题二:
是否有这个文件被加壳或混淆的任何迹象?如何是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话。
通过PEiD的检测,检测结果为Nothing Found。即没有找到壳,这种情况可能有两种原因:1.该程序没有加壳;2.该程序加壳了,但该壳比较新,该软件检测不出来。

但注意到了EP Section中的标识为UPX1,说明这个exe文件很可能用了一个UPX技术的变种,所以PEiD才会识别不出来.
然后我们用Dependency Walker,我们就会发现这个代码的导入表KERNEL32.DLL 中有两个函数LoadLibraryA,GetProcAddress.这两个函数都是加壳的迹象,因为加壳的程序运行时候脱壳是必须要这两个函数的。

下面再使用PE viewer进一步检测:



首先该程序的节部分很奇怪,显示的是UPX0,UPX1,UPX2.而不是常见的.text .data .rdata .rsrc,很明显这是UPX加壳后的表现.下面通过虚拟大小与原始数据大小的对比就能发现端倪。
| 分节 | 虚拟大小 | 原始数据大小 |
|---|---|---|
| UPX0 | 00004000 | 00000000 |
| UPX1 | 00001000 | 00000600 |
| UPX2 | 00001000 | 00000200 |
在IMAGE_SECTION_HEADER UPX0中可得出Virtual Size 为00004000 Size of Raw Data为00000000, 所以Virtual Size 比Size of Raw Data大
且IMAGE_SECTION_HEADER UPX1和IMAGE_SECTION_HEADER UPX2中的也是Virtual Size比Size of Raw Data大,所以可以确定该程序被加壳了.
并通过查资料该程序可能是UPX加壳,所以我们尝试一下脱壳:
使用UPX.exe进行脱壳,过程如下:
将Lab01-02.exe复制到upx所在文件夹下
命令行运行upx.exe

执行命令:upx -d Lab01-02.exe进行脱壳,显示成功。

再把已脱壳的文件放到http://www.VirusTotal.com/进行分析并查看报告,可以发现文件以及脱壳了。

问题三:
有没有任何导入函数能够暗示这个程序的功能?如果有,是哪些导入函数,它们会告诉你什么?
现在我们继续对脱壳后的程序分析,使用Dependency Walker对该程序进行分析:

由上图可以看见该程序共有四个动态链接库:
KERNEL32.DLL ADVAPI32.DLL MSVCRT.DLL WININE.DLL
KERNEL32.DLL

SystemTimeToFileTime 是一个进程,即系统时间本地时间。
GetModuleFileNameA 获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载。
CreatWaitableTimerA 创建计时器对象
ExitProcess 退出程序
OpenMutex 打开互斥
SetWaitableTimer 启动一个可等待计时器
WaitForSingleObject
CreatMutex 创建一个互斥体
CreatThread 创建一个线程
ADVAPI32.DLL

Advapi32.dll,使用了注册表,提醒我们注意程序中象注册表键值的字符串,还有服务管理.可能会恶意关闭一些服务是某些程序不能运行,或者自动开启一些服务。
CreateServiceA 创建一个服务对象,并将其添加到指定的服务控制管理器数据库
StartServiceCtrlDispatcherA 调用服务程序
OpenSCManagerA 建立一个连接到服务控制管理器并打开它的数据库
WININET.DLL

WININE.DLL使用了网络服务,InternetOpenUrl,可以访问网站,这里值得警惕,该恶意木马可能会通过访问网络下载更多病毒,或者实时监控该主机,InternetOpenA 初始化一个应用程序
问题四:
有没有什么线索可以被用来在被感染主机上进行该恶意代码的查找?
使用Strings.exe查看脱壳的程序,内容如下:

出现可疑的URL: www.malwareanalysisbook.com 还有IE8.0 推测应该是使用IE打开该网站
猜测可以通过查看浏览器浏览记录来推测是否有感染的可能。
问题五:
这个文件的作用可能是什么?
浙公网安备 33010602011771号