MalWare分析(1)
d4a8dca700572785447b9c37c6753bbfd34067701ecb6df9f01db4ed12920a09.ziphttps://flowus.cn/preview/ceca4453-4b9e-4274-9e7c-7fbbf1a120a4
记得用虚拟机分析拍快照
需要用的工具都在MalwareTools文件夹中
恶意样本分析的目标(蓝队整个分析的流程)
-
确定恶意样本的行为和目的。
-
分析恶意样本的传播途径和感染方法。
-
提取恶意样本的特征和指纹。
-
评估恶意样本的威胁等级和潜在影响。
一个程序是否为恶意软件不取决于它的功能,而是看攻击者如何使用它。
获取样本(日常或者安全事件中会出现的情况)
-
主动采集:通过网络爬虫、沙箱环境(云沙箱获取,但有些需要付费)或专门的样本收集工具主动收集样本。
-
被动获取:从安全日志、网络捕获、邮件网关等安全设备记录中获得样本。
- 7.
线上分析(获得样本首先需要做的事)
有时候我们会下载或接受到一些文件,这些文件很有可能是恶意的,在我们没有编程语言基础和不会使用一些分析工具的情况下,那么在线工具是最容易识别的方式,我们可以直接上传上去分析确认大概确认安全性
[VirusTotal]:https://www.virustotal.com
[any.run]:https://any.run/
[Metadefender]:https://www.metadefender.com/#!/scan-file 上传的文件最大可以到140MB
[Jotti]:http://virusscan.jotti.org/en
[VirScan]:http://virscan.org/ 支持压缩文件扫描
[微步云沙箱]:https://s.threatbook.com/
[360沙箱云]: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
安装这个的话,首先需要安装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
如果使用在线分析的话需要注册下面的网站的API才可以进行在线的动态分析
- Malware Bazaar: https://bazaar.abuse.ch/
登录需要挂代理,不要挂国内的代理,不然会出现要么无法访问恶意,要么提示405
可以使用github进行登录,登录后,需要先把名字填好,然后点击左下角有个黄色的链接作用是返回到主界面,然后再点击访问数据中的api接口,里面的文档中,找到获得秘钥,,然后会回到刚刚填名字信息的界面,点击黄按钮就会获得,记得,生成的秘钥只会显示一次
-b的平台接口是不收费的
如果找不到的话也可以通过
说几个我经常用的,免费的:
- 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://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/ 这个工具对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).