第一章静态分析基础技术

  • 恶意代码分析实战
  • 恶意代码样本下载
  • 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

2.点击Download
NOTE: We provide a self-extracting archive and an encrypted 7-zip file containing the labs.The password “malware”.
注:我们提供自提取存档和包含实验室的加密 7 zip 文件,密码"恶意软件"

3.点击Download ZIP

1.1反病毒引擎扫描

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

1.2哈希值

MD5在线加密:
https://www.sojson.com/hash.html

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

Lab01-01.exe 2010-12-19 16:16:19

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

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



Lab01-01.exe导入函数是FindFirstFile、FindNextFile和CopyFile,这些导入函数告诉我们,这个程序在搜索文件系统和复制文件。
P17:FindFirstFile和FindNextFile函数是特别值得关注的,因为它们提供的功能是搜索一个目录下所有的文件。

5.是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?

检查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.是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?

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

Lab1-2

分析Lab01-02.exe文件
问题:
1.将Lab01-02.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-02.exe匹配到已有的反病毒软件特征,截图如下:


2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-02.exe被加壳了

用kali脱壳
用ubuntu脱壳也行 upx -d file

在Kali执行upx命令可以查看参数介绍:

执行upx -d命令脱壳成功


3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
在对文件进行脱壳之后,将Lab01-02.exe文件上传至https://www.virustotal.com/,会发现导入函数CreateService、InternetOpen、InternetOpenUrl

用IDApro打开Lab01-02.exe,查看输入表

4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
用IDApro打开Lab01-02.exe,shift+Fn+F12查看字符串(我的电脑是shift+Fn+F12,有的电脑是shift+F12)
一个名为Malservice的服务,并通过到http://www.malwareanalysisbook.com的网络流量,来检查被恶意代码感染的主机。

Lab1-3

分析Lab01-03.exe文件
问题:
1.将Lab01-03.exe文件上传至https://www.virustotal.com/进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-03.exe匹配到已有的反病毒软件特征,截图如下:


2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-03.exe被加壳了

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匹配到已有的反病毒软件特征,截图如下:


2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
Lab01-04.exe没有被加壳或混淆过的迹象

3.这个文件是什么时候被编译的?

4.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
advapi32.dll权限操作相关函数

导入函数WriteFile和WinExec,以及https://www.virustotal.com/的结果,表示这个程序会写一个文件到磁盘上,然后执行它。导入函数还有一些是用于从文件的资源节中读取信息的。

5.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
用IDApro打开Lab01-04.exe,字符串\system32\wupdmgr.exe表示,这个程序会在这个位置创建或者修改文件。字符串www.malwareanalisisbook.com/updater.exe可能表示额外恶意代码的网络存储位置,用于下载。

6.这个文件在资源段中包含一个资源。使用Resource Hacker工具来检查资源,然后抽取资源,从资源中你能发现什么吗?
我用HxD打开Lab01-04.exe


认真是一种态度更是一种责任

恶意代码分析实战Lab1相关推荐

  1. 恶意代码分析实战-通过IDA对恶意代码进行静态分析(Lab05-01.dll)

    本文章为<恶意代码分析实战>的题目答案解析以及个人的一些理解,将通过一下问题对恶意代码Lab05-01.dll进行分析: D1lMain的地址是什么? 使用Imports窗口并浏览到get ...

  2. MS08067 第一期 “恶意代码分析”实战班 正式开班~

    文章来源|MS08067安全实验室 恶意代码分析实战班 恶意代码分析的分类: 恶意代码分析也可作为单独的安全专业类别来看待,不过总体是偏逆向方向的,希望的受众是逆向相关的就行了,比如以前只会逆向但是不 ...

  3. 恶意代码分析实战Lab03-01

    注:分析恶意代码一定要在安全的环境下,如与主机和外网隔离的虚拟机=>网络适配器选择主机模式或模拟一个与主机和外网隔离的虚拟网络:以及给拍个干净快照: 平台:博客园 恶意代码分析:虚拟网络环境配置 ...

  4. 学习笔记-第十四章 恶意代码分析实战

    第十四章 恶意代码的网络特征 1.网络应对措施. 网络行为的基本属性包括IP地址,TCP端口,以及流量内容等,网络和安全 设备可以利用它们,来提供网络应对措施.根据IP地址和端口,防火墙和路由器可以限 ...

  5. 恶意代码分析实战 11 恶意代码的网络特征

    11.1 Lab14-01 问题 恶意代码使用了哪些网络库?它们的优势是什么? 使用WireShark进行动态分析. 使用另外的机器进行分析对比可知,User-Agent不是硬编码. 请求的URL值得 ...

  6. 恶意代码分析实战Lab3-2

    Lab3-2 使用动态分析基础技术来分析在Lab03-02.dll文件中发现的恶意代码. 目录 Lab3-2 1.你怎样才能让这个恶意代码自行安装? 2.安装之后如何让恶意代码运行起来? 3.怎么可以 ...

  7. 恶意代码分析实战 9 隐蔽的恶意代码启动

    9.1 Lab12-1 分析 查看程序的导入函数. 通过这几个函数,可以推断出是远程线程注入. 使用ProMon检测,并没有看到什么有用的信息. 使用Proexproer检查. 也没有什么有用的信息. ...

  8. 学习笔记-第十二章 恶意代码分析实战

    第12章 隐蔽的恶意代码启动 1.启动器启动器是一种设置自身或其他恶意代码片段以达到即使或将来秘密运行的恶意代码.启动器的目的是安装一些东西,以使恶意行为对用户隐蔽.启动器经常包含它要加载的恶意代码. ...

  9. 恶意代码分析实战 8 恶意代码行为

    8.1 Lab 11-01 代码分析 首先使用strings进行分析. Gina是在 msgina.dll中的. 很多有关资源的函数. 关于注册表的函数. 使用ResourceHacker查看. 发现 ...

最新文章

  1. 递归和函数栈与setjmp和longjmp的关系
  2. imp导入时触发器的状态
  3. 拆分文件_领导让把工作表拆分每个文件,我花半个小时,同事1分钟搞定了
  4. HDU 2757 Ocean Currents
  5. 基于Django实现RBAC权限管理
  6. 【记录】Docker push 到dockerhub网站
  7. g2是一种编程语言吗_我写了一种编程语言。 这也是您可以的方式。
  8. 四川首例 “自贡话智能语音识别系统”在检察院投用
  9. python遍历文件夹方法
  10. android白圈闪现动画,Android基于Shader的图像处理(9)-仿抖音闪白特效
  11. Atitit. 软件设计 模式 变量 方法 命名最佳实践 vp820 attilax总结命名表大全
  12. 阿里云香港服务器速度快吗?
  13. 有密码的压缩包怎么解密
  14. ailess给您介绍互联网黑帽seo技术
  15. python数据可视化方法和库
  16. 功利主义穆勒思维导图_浅析穆勒的功利主义思想及现实意义
  17. 闲鱼卖货,月入1.5w的小众类目分享。
  18. 微博插件-微博图片全显示(页面样式本人优化版)
  19. 6-3 电子书表格展示
  20. Centos7创建CA和申请证书

热门文章

  1. 计算机等级考试二级是所有科目都要考?
  2. 将长秒数转成24小时制时间
  3. Python exit函数
  4. Image-Line新版flstudio20.9水果编曲制作音乐
  5. openssl 对称加密算法enc命令详解
  6. 网站打开速度慢的原因
  7. 网页制作 HTML设为首页和加入收藏_动力节点Java学院整理
  8. 丑小鸭进化 之 软件计划
  9. 解决liunx系统加载js、css失败问题
  10. labelme标注转换为yolov7 pose(xywh)