恶意代码分析实战Lab1

第一章静态分析基础技术

  • 恶意代码分析实战
  • 恶意代码样本下载
  • 1.1反病毒引擎扫描
  • 1.2哈希值
  • 1.3查找字符串
  • 1.4加壳与混淆恶意代码
  • 1.5PE文件格式
  • 1.6链接库与函数
  • 1.7静态分析技术实战
  • 1.8PE文件头与分节
  • Lab1-1
  • Lab1-2
  • Lab1-3
  • Lab1-4


恶意代码分析实战

Michael Sikorski Andrew Honig 著
诸葛建伟 姜辉 张光凯 译

恶意代码样本下载

前言-先决条件-恶意代码样本下载链接:
https://practicalmalwareanalysis.com/
1.点击Labs
恶意代码分析实战Lab1_第1张图片
2.点击Download
NOTE: We provide a self-extracting archive and an encrypted 7-zip file containing the labs.The password “malware”.
注:我们提供自提取存档和包含实验室的加密 7 zip 文件,密码"恶意软件"
恶意代码分析实战Lab1_第2张图片
3.点击Download ZIP
恶意代码分析实战Lab1_第3张图片

1.1反病毒引擎扫描

VirusTotal网站:
https://www.virustotal.com/

1.2哈希值

MD5在线加密:
https://www.sojson.com/hash.html
恶意代码分析实战Lab1_第4张图片

1.3查找字符串

Strings程序:
http://technet.microsoft.com/enus/sysinternals/bb897439

https://docs.microsoft.com/zh-cn/sysinternals/downloads/strings

1.4加壳与混淆恶意代码

UPX工具:
http://upx.sourceforge.net/
UPX是一款免费、可移植、可扩展、高性能的可执行文件,用于多种可执行格式

1.5PE文件格式

1.6链接库与函数

Dependency Walker工具:
http://www.dependencywalker.com/

msvcrt.dll百度百科
https://baike.baidu.com/item/msvcrt.dll/10968059
msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编译的程序提供了初始化(如获取命令行参数)以及退出等功能

1.7静态分析技术实战

1.8PE文件头与分节

1.使用PEview来分析PE文件
2.使用ResourceHacker工具来查看资源节
http://www.angusj.com/
3.使用其他的PE文件工具
PEBrowse Professional:
http://www.smidgeonsoft.prohosting.com/pebrowsepro-file-viewer.html
PE Explorer(收费):
http://www.heaventools.com/

Lab1-1

实验题目:这个实验使用Lab01-01.exe和Lab01-01.dll文件
在这里插入图片描述
问题:
1.将文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
2.这些文件是什么时候编译的?
这两个文件的编译日期都在2010年12月19日。
Lab01-01.dll 2010-12-19 16:16:38
恶意代码分析实战Lab1_第5张图片
Lab01-01.exe 2010-12-19 16:16:19
恶意代码分析实战Lab1_第6张图片

3.这两个文件中是否存在迹象说明它们是否被加壳或混淆了?如果是,这些迹象在哪里?
检测加壳软件的一种方法是使用PEiD工具。
PEiD正常检测出.dll和.exe的编译环境,且EP段是正常的.text。
所以这两个文件都没有被加壳或混淆过的迹象。
恶意代码分析实战Lab1_第7张图片
恶意代码分析实战Lab1_第8张图片

4.是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
Lab01-01.dll导入函数是CreateProcess和Sleep;这个文件导入了WS2_32.dll中的函数,这些函数提供了联网功能。
P14:Wsock32.dll和Ws2_32.dll这两个是联网DLL,访问其中任何一个DLL的程序非常可能连接网络,或是执行网络相关的任务。

恶意代码分析实战Lab1_第9张图片
恶意代码分析实战Lab1_第10张图片
Lab01-01.exe导入函数是FindFirstFile、FindNextFile和CopyFile,这些导入函数告诉我们,这个程序在搜索文件系统和复制文件。
P17:FindFirstFile和FindNextFile函数是特别值得关注的,因为它们提供的功能是搜索一个目录下所有的文件。

恶意代码分析实战Lab1_第11张图片

5.是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
恶意代码分析实战Lab1_第12张图片

检查C:\Windows\System32\kerne132.dll来发现额外的恶意活动。请注意,文件kerne132.DLL,用数字1代替了字母l,是为了看起来像是系统文件kernel32.dll。这个文件可以用来在主机作为恶意代码感染的迹象进行搜索。
P436详细分析过程:C:\Windows\System32\kernel32.dll和C:\Windows\System32\kerne132.dll(字母l和数字1的变化),kerne132.dll文件显然是想将自己冒充混淆为Windows的系统文件kernel32.dll。因此kerne132.dll可以作为一个基于主机的迹象来发现恶意代码感染,并且是我们分析恶意代码所需要关注的一个线索。

6.是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
恶意代码分析实战Lab1_第13张图片

7.你猜这些文件的目的是什么?
.dll文件可能是一个后门
.exe文件是用来安装与运行DLL文件的
P3:后门:恶意代码将自身安装到一台计算机来允许攻击者访问。后门程序通常让攻击者只需很少认证甚至无需认证,便可连接到远程计算机上,并可以在本地系统执行命令。

Lab1-2

分析Lab01-02.exe文件
问题:
1.将Lab01-02.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-02.exe匹配到已有的反病毒软件特征,截图如下:
恶意代码分析实战Lab1_第14张图片
恶意代码分析实战Lab1_第15张图片
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-02.exe被加壳了
恶意代码分析实战Lab1_第16张图片
用kali脱壳
用ubuntu脱壳也行 upx -d file

在Kali执行upx命令可以查看参数介绍:
恶意代码分析实战Lab1_第17张图片
执行upx -d命令脱壳成功
恶意代码分析实战Lab1_第18张图片
恶意代码分析实战Lab1_第19张图片
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
在对文件进行脱壳之后,将Lab01-02.exe文件上传至https://www.virustotal.com/,会发现导入函数CreateService、InternetOpen、InternetOpenUrl
恶意代码分析实战Lab1_第20张图片
用IDApro打开Lab01-02.exe,查看输入表
恶意代码分析实战Lab1_第21张图片
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
用IDApro打开Lab01-02.exe,shift+Fn+F12查看字符串(我的电脑是shift+Fn+F12,有的电脑是shift+F12)
一个名为Malservice的服务,并通过到http://www.malwareanalysisbook.com的网络流量,来检查被恶意代码感染的主机。
恶意代码分析实战Lab1_第22张图片

Lab1-3

分析Lab01-03.exe文件
问题:
1.将Lab01-03.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-03.exe匹配到已有的反病毒软件特征,截图如下:
恶意代码分析实战Lab1_第23张图片
恶意代码分析实战Lab1_第24张图片
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-03.exe被加壳了
恶意代码分析实战Lab1_第25张图片
Lab01-03.exe是由FSG进行加壳的,而不是UPX,学到18章后再回来分析Lab01-03.exe。
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
这个问题在没有脱壳的情况下还无法回答。
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
这个问题在没有脱壳的情况下还无法回答。

Lab1-4

分析Lab01-04.exe文件
问题:
1.将Lab01-04.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-03.exe匹配到已有的反病毒软件特征,截图如下:
恶意代码分析实战Lab1_第26张图片
恶意代码分析实战Lab1_第27张图片
恶意代码分析实战Lab1_第28张图片

2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-04.exe没有被加壳或混淆过的迹象
恶意代码分析实战Lab1_第29张图片
3.这个文件是什么时候被编译的?
恶意代码分析实战Lab1_第30张图片

4.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
advapi32.dll权限操作相关函数
恶意代码分析实战Lab1_第31张图片
导入函数WriteFile和WinExec,以及https://www.virustotal.com/的结果,表示这个程序会写一个文件到磁盘上,然后执行它。导入函数还有一些是用于从文件的资源节中读取信息的。
恶意代码分析实战Lab1_第32张图片
恶意代码分析实战Lab1_第33张图片

5.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
用IDApro打开Lab01-04.exe,字符串\system32\wupdmgr.exe表示,这个程序会在这个位置创建或者修改文件。字符串www.malwareanalisisbook.com/updater.exe可能表示额外恶意代码的网络存储位置,用于下载。
恶意代码分析实战Lab1_第34张图片
6.这个文件在资源段中包含一个资源。使用Resource Hacker工具来检查资源,然后抽取资源,从资源中你能发现什么吗?
我用HxD打开Lab01-04.exe
恶意代码分析实战Lab1_第35张图片
恶意代码分析实战Lab1_第36张图片
认真是一种态度更是一种责任

你可能感兴趣的:(恶意代码分析实战,安全)