MalWare分析(1)

d4a8dca700572785447b9c37c6753bbfd34067701ecb6df9f01db4ed12920a09.ziphttps://flowus.cn/preview/ceca4453-4b9e-4274-9e7c-7fbbf1a120a4

记得用虚拟机分析拍快照

需要用的工具都在MalwareTools文件夹中

恶意样本分析的目标(蓝队整个分析的流程)

  1. 确定恶意样本的行为和目的

  2. 分析恶意样本的传播途径和感染方法

  3. 提取恶意样本的特征和指纹

  4. 评估恶意样本的威胁等级和潜在影响

一个程序是否为恶意软件不取决于它的功能,而是看攻击者如何使用它。

获取样本(日常或者安全事件中会出现的情况)

  1. 主动采集:通过网络爬虫、沙箱环境(云沙箱获取,但有些需要付费)或专门的样本收集工具主动收集样本。

  2. 被动获取:从安全日志、网络捕获、邮件网关等安全设备记录中获得样本。

线上分析(获得样本首先需要做的事)

有时候我们会下载或接受到一些文件,这些文件很有可能是恶意的,在我们没有编程语言基础和不会使用一些分析工具的情况下,那么在线工具是最容易识别的方式,我们可以直接上传上去分析确认大概确认安全性

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接口,里面的文档中,找到获得秘钥,,然后会回到刚刚填名字信息的界面,点击黄按钮就会获得,记得,生成的秘钥只会显示一次 ![](https://i-blog.csdnimg.cn/direct/17db4ba1c6c34bb490224e6278ae8a9f.png) -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 ![](https://i-blog.csdnimg.cn/direct/55c2296585b04d17b7dec5d8e17cd002.png) ![](https://i-blog.csdnimg.cn/direct/da5ca1712ac347059c66e81d1648a7cc.png) 自己分析,把样本下载下来 把其中的数值改为5代表把样本下载下来 下载下来的样本存在密码 密码为: infected python malwoverview.py -b 5 -B 59ed41388826fed419cc3b18d28707491a4fa51309935c4fa016e53c6f2f94bc #### 对**恶意文档**进行分析: 直接用现成的一个工具进行分析: olddump.py hash 可以把**文档的结构**dump出来,可进行初步的分析 ![](https://i-blog.csdnimg.cn/direct/1b98373181b84c898994e67e17aeca7f.png) 比较可疑,为什么很大 ![](https://i-blog.csdnimg.cn/direct/a1fb7ad025324ab7b788bf23bf23e445.png) 简单熟悉和学习一下VBA编程 11.这个位置文件比较大 16,17,18这个几个是VBA脚本的控件的名称 打开文档的可疑的节的内容信息,然后进行分析,如果节特别大,可以查看和节相关联的节的内容信息来查看和分析。 PS:如果查看节时,控台显示乱码,更改控制台的编码的字符集 chcp 65001 (改为utf-8的字符集) -s 指定要打开的文档结构部分 -v 将要打开的结构部分打印出来 oledump.py -s 16 -v 文档名 ![](https://i-blog.csdnimg.cn/direct/0705e83c4c794b0ab999af7076faafbc.png) 打开节16的vba脚本的代码 可以看出是对信息通过!号进行了一些加密的分隔信息 ![](https://i-blog.csdnimg.cn/direct/ab3da07282214c3dad8276fc6241a923.png) 打开节 15的节的信息和可疑大的文件有关联的脚本信息 可以很明显的看出exe文件的路径信息 ![](https://i-blog.csdnimg.cn/direct/af104d2aae7049ca8f48596c25893019.png) ![](https://i-blog.csdnimg.cn/direct/f4eaa9bb5c7843d6ab8aca0d0d52dc1d.png) 打开节11的代码信息 如果用-s 无法打开的情况下,使用-d 进行查看 可以看出是类似shellcode或者被加密的脚本信息 oledump.py -s 11 -d 文件名 ![](https://i-blog.csdnimg.cn/direct/2ed599e1b87646d59d1429700e40fb63.png) ![](https://i-blog.csdnimg.cn/direct/83b1a54cb08948bfbcdffbaa6af85b62.png) 打开节18的代码信息 oledump.py -s 18 -v 文件名 ![](https://i-blog.csdnimg.cn/direct/be61815320e040778ee9de3f7f178bac.png) ![](https://i-blog.csdnimg.cn/direct/0637092f5a4d467a986a5021fb5e0217.png) PS: 碰到文件内容很大的节点,查看后发现疑似为shellcode或者恶意的加密脚本信息,通过将脚本信息,dump下来,然后进解密判断。dump前记得先把控制台的编码改为utf-8的类型65001,不然在解码后会出现乱码的现象。 脚本名称 恶意的word文件名 -s 需要进行保存的节点的标签 oledump.py 文件名 -s 11 -d dump下来 > dump1 文件名为dump1 10进制保存 ![](https://i-blog.csdnimg.cn/direct/877700e0e83d453189252a7e336d555f.png) 把dump下来的文件,通过记事本或者hex 16进制的文本编辑器打开,然后删除掉其中乱码的部分或者不是加密内容的信息部分,中间不要留空格 通过[https://gchq.github.io/CyberChef/](https://gchq.github.io/CyberChef/ "https://gchq.github.io/CyberChef/") 这个工具对dump下来加密的脚本信息进行解码操作: 如果dump下来的文件编码的分隔符为其他不常见符号,可以通过全局替换的方式替换为常见的符号,然后进行解码操作。 ![](https://i-blog.csdnimg.cn/direct/00667a2307464100be2324d2a461c381.png) 点右下角的保存,可以把解码后的文件保存下来。。。。。。 这里我们就获取到了威胁样本,可以先上传到沙箱进行初步的分析 也可以进行逆向的调试分析等等 #### 配套分析的工具 恶意文件在同一目录下 olevba.exe -a 文件名 可以用来分析文档里面的**vba**脚本 ![](https://i-blog.csdnimg.cn/direct/62e8adb15e2145edb60b9d02588e3293.png) 分析出来恶意文档执行的一些动作 可以看出文档文件执行了 自动打开文档行为,进行弹窗行为,打开文件,写入文件,移动文件,不打开文档对文档进行一些执行操作,保存文件,创建文件,初步判断是为了后台隐藏窗口来执行恶意vba脚本行为,展示窗口,创建对象,获取对象,把二进制转为16进制,然后进行了base64加密行为 上面的行为其实都是恶意的。可以初步判断文档为恶意文档的行为 监测出来IOC,文档释放了 恶意的exe文件 说明确实是恶意的脚本行为 ![](https://i-blog.csdnimg.cn/direct/f3cf81b1267f4a11910bd16f5b742adb.png) 除了vba识别,还有id识别 恶意文件在同一目录下 oleid.exe 文件名 ![](https://i-blog.csdnimg.cn/direct/bdac219fa8354ec2ba44831aa4017362.png) 这个分析很清晰的告诉你,文档执行了vba脚本,并且恶意行为为高 ![](https://i-blog.csdnimg.cn/direct/896d45dccaa74bfd9234d4942d18d6e1.png) 分析完后,回到第一步,如何判别这个呢 **对恶意vbs脚本分析** ### 工具Procmon(对样本的动态行为进行监控) 通过工具对恶意样本或者脚本的进程情况进行监控 这个是一个经典的Vbs的恶意脚本,命令是把样本下载下来 python malwoverview.py -b 5 -B 375798f97452cb9143ffb08922bebb13eb6bb0c27a101ebc568a3e5295361936 使用tools工具箱中的Process Monitor3.87工具对恶意样本的行为进行监控 ![](https://i-blog.csdnimg.cn/direct/680ca3fe5f234b23a7a43914df8f4d21.png) 需要设置过滤器,不然每秒会生成大量的事件,先点击下面的图标进行停止捕获,然后把当前捕获的信息给删除掉,方便进行观察。 ![](https://i-blog.csdnimg.cn/direct/b3d4562dcc0b4c939f37e2548e91a6a3.png) 在过滤器时,因为脚本为vbs脚本,可以通过设置进程的名称来进行过滤,这里可以跟据具体的程序的类型的进程名称来进行过滤。 先点击提那家,然后选择应用,去掉包含lsass ![](https://i-blog.csdnimg.cn/direct/7a77d22800954c5daafb356718b0db9e.png) 等设置好过滤器后,然后双击恶意的样本 ![](https://i-blog.csdnimg.cn/direct/7151c91d0c9341619ced7b38e1f8ab53.png) 一般捕获一会就可以点击停止了,因为该捕获的也捕获完了 工具的使用 第一栏里面工具→选择进程树 主要是看恶意文件的进程树,看这个进程都做了什么 ![](https://i-blog.csdnimg.cn/direct/c2b9f05fc6df416d97174c3bb11f3436.png) 启动了命令窗口,可以查看一下命令行都执行了什么东西,碰到不认识的进程名称可以百度搜索一下 ![](https://i-blog.csdnimg.cn/direct/b408f1156b85430aa249ed41597e531a.png) 可以看到后面的powershell终端也是在执行这一段加密程序 ![](https://i-blog.csdnimg.cn/direct/e93d1063666e4e26bc90e410b8762254.png) 这里可以把这一串,base64加密的部分信息给,解密一下看看 选择from base64进行解密 ![](https://i-blog.csdnimg.cn/direct/ee15d638f4b1482b85735dbac927404f.png) 看到存在很多空字节,可以通过网站的内容替换掉 ![](https://i-blog.csdnimg.cn/direct/9cf4c375be944f2f8bd739d43d805c7f.png) 解码出来的东西,意思是在访问一个网站下载恶意的东西 ![](https://i-blog.csdnimg.cn/direct/3936410f9bbd4925820131adfe46d0e1.png) 可以在虚拟机中尝试访问这个链接进行测试 如果不能访问或者也可以把这个链接放到威胁情报中进行查询,确定为已被标记的恶意域名 ![](https://i-blog.csdnimg.cn/direct/d6c9d4acaeb14644ba823d2941f888e5.png) 也可根据过滤条件,通过工具查看恶意样本或者脚本的威胁行为比如说文件行为,注册表等 #### 对压缩文件进行分析 先把样本提取出来,然后使用die工具进行分析,把恶意样本直接拖进die文件中 ![](https://i-blog.csdnimg.cn/direct/09414f5bfef34961a35607f830163983.png) ![](https://i-blog.csdnimg.cn/direct/e32b8ea836a548c8a333637f382021e9.png) 可以看出这个恶意样本是一个安装程序 点击信息熵,可以查看到样本是进行了加壳 然后可以对这个exe恶意样本进行解压缩,打开发现存在三个exe文件: ![](https://i-blog.csdnimg.cn/direct/b0c22f2494e94ad0b80194ac2b7cdc0b.png) 尝试将其中解压出的文件,放入到die中进行查看,发现只有第一个文件事可以正常读出来的,这个文件是没有进行加壳的。 对这个文件进行一个调试,通过x32dbg工具对文件进行调试: 如果是恶意软件都会释放一些东西,遇事不绝,先打断点:可以对一些常用的API打断点 ![](https://i-blog.csdnimg.cn/direct/af5f4d491e794e698d725a1036b44f73.png) ![](https://i-blog.csdnimg.cn/direct/0ffd6ffb9120431ea49ee4bc0898c91b.png) 打完断点,按F9之后,没有进入断点说明,第一种没有分配内存,第二种,也有可能是其他原因 如果调试中出现一些问题,我们需要借助静态分析来进行,这里使用工具。 这个东西和IDA相同,但是IDA还是最好的 ![](https://i-blog.csdnimg.cn/direct/5b22bbf47efd479799a24c9931250a0a.png) ![](https://i-blog.csdnimg.cn/direct/0e8c0c222d8147b39a5d14edecb62acc.png) ### 使用硬件断点提取 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**).

相关推荐
~巴哥~1 年前
一例MFC文件夹病毒的分析
恶意代码分析
~巴哥~2 年前
一例恶搞的样本的分析
恶意代码分析
~巴哥~2 年前
一例jse蠕虫的分析
恶意代码分析