记得用虚拟机分析拍快照
需要用的工具都在MalwareTools文件夹中

恶意样本分析的目标(蓝队整个分析的流程)
-
确定恶意样本的行为和目的。
-
分析恶意样本的传播途径和感染方法。
-
提取恶意样本的特征和指纹。
-
评估恶意样本的威胁等级和潜在影响。
一个程序是否为恶意软件不取决于它的功能,而是看攻击者如何使用它。
获取样本(日常或者安全事件中会出现的情况)
-
主动采集:通过网络爬虫、沙箱环境(云沙箱获取,但有些需要付费)或专门的样本收集工具主动收集样本。
-
被动获取:从安全日志、网络捕获、邮件网关等安全设备记录中获得样本。
-
线上分析(获得样本首先需要做的事)
有时候我们会下载或接受到一些文件,这些文件很有可能是恶意的,在我们没有编程语言基础和不会使用一些分析工具的情况下,那么在线工具是最容易识别的方式,我们可以直接上传上去分析确认大概确认安全性
VirusTotal\]:[https://www.virustotal.com](https://www.virustotal.com/ "https://www.virustotal.com") \[any.run\]:[https://any.run/](https://any.run/ "https://any.run/") \[Metadefender\]:[https://www.metadefender.com/#!/scan-file](https://www.metadefender.com/#!/scan-file "https://www.metadefender.com/#!/scan-file") 上传的文件最大可以到140MB \[Jotti\]:[http://virusscan.jotti.org/en](http://virusscan.jotti.org/en "http://virusscan.jotti.org/en") \[VirScan\]:[http://virscan.org/](http://virscan.org/ "http://virscan.org/") 支持压缩文件扫描 \[微步云沙箱\]:[https://s.threatbook.com/](https://s.threatbook.com/ "https://s.threatbook.com/") \[360沙箱云\]:[https://ata.360.net/](https://ata.360.net/ "https://ata.360.net/") ### 动态分析/行为分析 PS:在进行动态分析之前关闭许虚拟机的共享文件夹,并且把主机调节为仅主机模式(勿联网的情况) **防止出现沙箱逃逸的现象** so,一般先丢到线上工具分析做个初步判断之后,可以再继续丢到虚拟环境(VMware)去做动态行为分析(当然有些恶意程序做了反沙箱,在虚拟环境是没法执行的) 观察他的行为,文件操作,进程,网络通信,注册表的修改。。。。。。。。 Autoruns Procmon Wireshark Process hacker Pchunter x64dbg/OllyDbg ..... ### 静态分析/逆向分析 PEstudio 010 Editor IDAPRO CFF Explorer .... ### malwoverview使用 [https://github.com/alexandreborges/malwoverview](https://github.com/alexandreborges/malwoverview "https://github.com/alexandreborges/malwoverview") 安装这个的话,首先需要安装python3的环境,然后把其中的 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 出现ImportError: failed to find libmagic. Check your installation报错是因为 这是 python-magic 模块依赖的底层库 libmagic 没装好,它在 Windows 上需要额外安装。 pip uninstall python-magic -y 先把原包卸载掉 pip install python-magic-bin 这个包自带了 Windows 所需的 DLL,不需要手动装 libmagic。 [requirements.txt](https://flowus.cn/preview/4f89f3d9-ad54-486c-8e3c-3adbb9b7bdc6 "requirements.txt") 如果使用在线分析的话需要注册下面的网站的API才可以进行在线的动态分析 1. Malware Bazaar: https://bazaar.abuse.ch/ 登录需要挂代理,不要挂国内的代理,不然会出现要么无法访问恶意,要么提示405 可以使用github进行登录,登录后,需要先把名字填好,然后点击左下角有个黄色的链接作用是返回到主界面,然后再点击访问数据中的api接口,里面的文档中,找到获得秘钥,,然后会回到刚刚填名字信息的界面,点击黄按钮就会获得,记得,生成的秘钥只会显示一次  -b的平台接口是不收费的 如果找不到的话也可以通过 说几个我经常用的,免费的: 1. Malware Traffic Analysis: http://www.malware-traffic-analysis.net/2018/index.html 这个网站每天更新,主要是欧美地区的新鲜流行木马样本,基本上当天更新的马都很新~ 2.Virus Bay: https://beta.virusbay.io/ 这个算是社区贡献吧 收费的: 1.Virustotal Intelligence:https://www.virustotal.com/intelligence 这个是VT提供的,你所在的公司要付钱给VT,这样你可以去根据HASH和自定义YARA去找样本。 2.Abusix:恶意垃圾邮件提供商,每天提供大量的新鲜的垃圾邮件,80%内容是恶意的。 3.Support Intelligence:收集各大反病毒厂商收集的样本,然后转手卖给各大IOC提取商~ 4.Lexsi:同Support Intelligence > 你好,比如说,我想分析利用MS17_010漏洞的病毒,又或者我想分析某款病毒分变种,有没有什么网站能够跟你条件来查样本呢? 网站能够根据条件来查样本,一般你需要去各大在线沙盘的网站,例如 Hybird-Analysis,根据Tag来找,找到了根据HASH来找样本 曾经也遇到楼主的问题,收集了一些国外的样本下载网站: 1)https://www.hybrid-analysis.com/ 这个网站可以下载,但是需要注册账号,个人注册需要提交三个以上博客或者原创技术文章链接,使用企业邮箱申请的通过的比较快一些 2)https://app.any.run/ 这个网站是一个免费沙箱,可以浏览其他人跑的样本结果,也可以下载样本,不需要注册账号就能下载,注册也是免费的! 3)http://vxvault.net/ViriList.php 这个!!没下载过 4)http://malc0de.com/database/ 每天更新最新样本 最后老外推荐的样本资源:https://zeltser.com/malware-sample-sources/ python malwoverview.py -v 8 -V 58db89cb50b7dd18e00aae6b126e09bcc718f5dba3c06d27420c8528ab05f52e -c malwapi.conf 大多数人都没有付费的VTAPI下载,可以从其他平台获取 python malwoverview.py -b 1 -B 58db89cb50b7dd18e00aae6b126e09bcc718f5dba3c06d27420c8528ab05f52e python malwoverview.py -b 5 -B 58db89cb50b7dd18e00aae6b126e09bcc718f5dba3c06d27420c8528ab05f52e 获取行为信息 python malwoverview.py -v 12 -v 58db89cb50b7dd18e00aae6b126e09bcc718f5dba3c06d27420c8528ab05f52e -c malwapi.conf ### 文档分析(拿到一个文档,丢到沙箱,有可疑行为但是没有具体的信息) 分析恶意文档使用下面的工具链接 [https://blog.didierstevens.com/didier-stevens-suite/](https://blog.didierstevens.com/didier-stevens-suite/ "https://blog.didierstevens.com/didier-stevens-suite/") 对文档中的恶意文件进行解码使用下面的链接 [https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/ "https://gchq.github.io/CyberChef/") 平台分析,平台会分析并给出这个样本的行为 python malwoverview.py -b 1 -B 59ed41388826fed419cc3b18d28707491a4fa51309935c4fa016e53c6f2f94bc   自己分析,把样本下载下来 把其中的数值改为5代表把样本下载下来 下载下来的样本存在密码 密码为: infected python malwoverview.py -b 5 -B 59ed41388826fed419cc3b18d28707491a4fa51309935c4fa016e53c6f2f94bc #### 对**恶意文档**进行分析: 直接用现成的一个工具进行分析: olddump.py hash 可以把**文档的结构**dump出来,可进行初步的分析  比较可疑,为什么很大  简单熟悉和学习一下VBA编程 11.这个位置文件比较大 16,17,18这个几个是VBA脚本的控件的名称 打开文档的可疑的节的内容信息,然后进行分析,如果节特别大,可以查看和节相关联的节的内容信息来查看和分析。 PS:如果查看节时,控台显示乱码,更改控制台的编码的字符集 chcp 65001 (改为utf-8的字符集) -s 指定要打开的文档结构部分 -v 将要打开的结构部分打印出来 oledump.py -s 16 -v 文档名  打开节16的vba脚本的代码 可以看出是对信息通过!号进行了一些加密的分隔信息  打开节 15的节的信息和可疑大的文件有关联的脚本信息 可以很明显的看出exe文件的路径信息   打开节11的代码信息 如果用-s 无法打开的情况下,使用-d 进行查看 可以看出是类似shellcode或者被加密的脚本信息 oledump.py -s 11 -d 文件名   打开节18的代码信息 oledump.py -s 18 -v 文件名   PS: 碰到文件内容很大的节点,查看后发现疑似为shellcode或者恶意的加密脚本信息,通过将脚本信息,dump下来,然后进解密判断。dump前记得先把控制台的编码改为utf-8的类型65001,不然在解码后会出现乱码的现象。 脚本名称 恶意的word文件名 -s 需要进行保存的节点的标签 oledump.py 文件名 -s 11 -d dump下来 > dump1 文件名为dump1 10进制保存  把dump下来的文件,通过记事本或者hex 16进制的文本编辑器打开,然后删除掉其中乱码的部分或者不是加密内容的信息部分,中间不要留空格 通过[https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/ "https://gchq.github.io/CyberChef/") 这个工具对dump下来加密的脚本信息进行解码操作: 如果dump下来的文件编码的分隔符为其他不常见符号,可以通过全局替换的方式替换为常见的符号,然后进行解码操作。  点右下角的保存,可以把解码后的文件保存下来。。。。。。 这里我们就获取到了威胁样本,可以先上传到沙箱进行初步的分析 也可以进行逆向的调试分析等等 #### 配套分析的工具 恶意文件在同一目录下 olevba.exe -a 文件名 可以用来分析文档里面的**vba**脚本  分析出来恶意文档执行的一些动作 可以看出文档文件执行了 自动打开文档行为,进行弹窗行为,打开文件,写入文件,移动文件,不打开文档对文档进行一些执行操作,保存文件,创建文件,初步判断是为了后台隐藏窗口来执行恶意vba脚本行为,展示窗口,创建对象,获取对象,把二进制转为16进制,然后进行了base64加密行为 上面的行为其实都是恶意的。可以初步判断文档为恶意文档的行为 监测出来IOC,文档释放了 恶意的exe文件 说明确实是恶意的脚本行为  除了vba识别,还有id识别 恶意文件在同一目录下 oleid.exe 文件名  这个分析很清晰的告诉你,文档执行了vba脚本,并且恶意行为为高  分析完后,回到第一步,如何判别这个呢 **对恶意vbs脚本分析** ### 工具Procmon(对样本的动态行为进行监控) 通过工具对恶意样本或者脚本的进程情况进行监控 这个是一个经典的Vbs的恶意脚本,命令是把样本下载下来 python malwoverview.py -b 5 -B 375798f97452cb9143ffb08922bebb13eb6bb0c27a101ebc568a3e5295361936 使用tools工具箱中的Process Monitor3.87工具对恶意样本的行为进行监控  需要设置过滤器,不然每秒会生成大量的事件,先点击下面的图标进行停止捕获,然后把当前捕获的信息给删除掉,方便进行观察。  在过滤器时,因为脚本为vbs脚本,可以通过设置进程的名称来进行过滤,这里可以跟据具体的程序的类型的进程名称来进行过滤。 先点击提那家,然后选择应用,去掉包含lsass  等设置好过滤器后,然后双击恶意的样本  一般捕获一会就可以点击停止了,因为该捕获的也捕获完了 工具的使用 第一栏里面工具→选择进程树 主要是看恶意文件的进程树,看这个进程都做了什么  启动了命令窗口,可以查看一下命令行都执行了什么东西,碰到不认识的进程名称可以百度搜索一下  可以看到后面的powershell终端也是在执行这一段加密程序  这里可以把这一串,base64加密的部分信息给,解密一下看看 选择from base64进行解密  看到存在很多空字节,可以通过网站的内容替换掉  解码出来的东西,意思是在访问一个网站下载恶意的东西  可以在虚拟机中尝试访问这个链接进行测试 如果不能访问或者也可以把这个链接放到威胁情报中进行查询,确定为已被标记的恶意域名  也可根据过滤条件,通过工具查看恶意样本或者脚本的威胁行为比如说文件行为,注册表等 #### 对压缩文件进行分析 先把样本提取出来,然后使用die工具进行分析,把恶意样本直接拖进die文件中   可以看出这个恶意样本是一个安装程序 点击信息熵,可以查看到样本是进行了加壳 然后可以对这个exe恶意样本进行解压缩,打开发现存在三个exe文件:  尝试将其中解压出的文件,放入到die中进行查看,发现只有第一个文件事可以正常读出来的,这个文件是没有进行加壳的。 对这个文件进行一个调试,通过x32dbg工具对文件进行调试: 如果是恶意软件都会释放一些东西,遇事不绝,先打断点:可以对一些常用的API打断点   打完断点,按F9之后,没有进入断点说明,第一种没有分配内存,第二种,也有可能是其他原因 如果调试中出现一些问题,我们需要借助静态分析来进行,这里使用工具。 这个东西和IDA相同,但是IDA还是最好的   ### 使用硬件断点提取 tips:在 VirtualAlloc(或其他 api)上设置 bp 时,最好将其设置在第二条指令(push ebp)上或者使用硬件断点。因为一些加壳程序/恶意软件会在第一条指令上检查断点。 python malwoverview.py -b 5 -B 08ec3f13e8637a08dd763af6ccb46ff8516bc46efaacb1e5f052ada634a90c0e windows API 返回值存放在哪一个寄存器??? RAX call ebp ### \*解析API Hash python malwoverview.py -b 5 -B 7512be2746137d9694e3ec3a83e8ab4c6e4d826798a04381de53d4c6973d519f 很多malware都看不到导入表无法直接判断它的功能,基本上都是采用函数hash动态获取函数地址以达到隐藏导入表(函数调用)的效果 解析函数地址出来之后,再根据它有哪些功能去下断点分析 分别不同的四种tips 使用API hash隐藏函数调用 自己分析,把样本下载下来 把其中的数值改为5代表把样本下载下来 下载下来的样本存在密码 密码为: **infected** python malwoverview.py -b 5 -B 59ed41388826fed419cc3b18d28707491a4fa51309935c4fa016e53c6f2f94bc Get a malware sample from malpedia (zip format -- password: **infected**).