对勒索病毒样本的研究
样本分析准备
基础知识:1.需要具备一定的开发能力2.熟悉汇编语言3.PE文件结构的掌握工具使用:熟练掌握以下常用工具的功能,基于以下工具展开详细分析,可以对病毒样本进行一个详细流程和功能分析,从而分析还原出关键的病毒功能,及研究对应的对抗方案。
样本分析流程
对一个病毒样本或者软件详细分析,一般可以通过五个步骤进行分析样本功能:样本基本属性、样本结构、样本静态分析、样本功能行为监控、样本动态分析。基于以上的五个步骤基本上可以分析出详细的样本功能实现。
样本基本信息
通过PEID、ExeInfoPE工具分析出样本的几个基本属性。通过Hasher工具可以分析出样本的MD5、sha1、CRC32的属性值。
PEID、ExeInfoPE两个工具原理:通过解析PE文件结构解析出样本的区段信息、通过匹配征码方式匹配出样本是否加壳、加什么壳,样本开发语言和开发工具。
样本功能分析
病毒样本功能可以从几个维度分析:自启动(服务器,注册表)、释放文件、网络通信、加密解密。
主要通过静态IDA分析和动态ollydbg分析相结合,通过IDA分析出样本中的流程结构(也重点关注下导入表信息,字符串信息),然后再针对每个函数进行分析,函数中的参数传递和返回值信息通过ollydbg工具附加下断点进行动态调试分析。
以下流程图是整个病毒样本的功能流程,主要就是进行系统服务操作,利用微软的SMB漏洞进行445端口漏洞的尝试、释放真正的勒索病毒样本。
样本在IDA工具中的main函数的流程结构
样本入口函数的关键功能函数实现的解析
恶意代码功能解析
开始对445端口漏洞尝试功能解析
进行内网445端口漏洞尝试功能实现解析
进行外网445端口漏洞尝试功能实现解析
漏洞尝试的效果展示
释放真正的勒索病毒文件通过从应用程序的资源部分进行释放出病毒样本exe和dll模块,并将样本的exe和dll模块释放到C盘的windows目录下,以伪装成为系统程序。
释放样本文件效果展示通过procmon工具,并进行针对病毒样本进程进行监控,可以实际监控到样本释放文件的操作。
释放勒索病毒功能梳理
释放出来的样本在IDA中展示main函数的流程结构(直接用拖入方式即可)
样本main函数流程中的关键函数进行解析
样本中将比特币账号采用硬编码方式直接写在代码中
采用微软的加解密算法,通过调用系统CryptDecrypt和CryptDecrypt函数用于进行加解密ZIP文件。
动态释放模块进行判断释放出来的文件是否是标准PE文件(判断PE文件的DOS头部分“MZ”,在进行判断NT头的PE签名信息“PE”)
勒索病毒对以下所有后缀文件进行加密,这些后缀文件基本覆盖所有类型的文件。
(仅分享样本大概功能流程,还有如核心的加解密算法相关的功能没有进行分析)
对勒索病毒的一点思考
1.预防中病毒通用方案
[*]在系统上安装病毒查杀软件并及时更新病毒特征库并定时查杀(建议安装火绒)。
[*]从互联网上下载的文件、程序进行查看数字签名有效性,并手动扫描查询文件。
[*]使用移动存储介质时,进行查杀病毒后再进行打开。
[*]不随意打开、安装陌生或来路不明的软件。
2.分析勒索病毒
[*]断网的虚拟机环境
[*]PE文件解析工具进行静态PE文件分析。
[*]IDA静态流程和ollydbg动态流程分析。
3.勒索病毒预防解决方案
[*]主动关闭系统中135、137、139、445端口。
[*]创建一个互斥体名称为Global\\MsWinZonesCacheCounterMutexA,让勒索病毒程序 启动不起来(仅功能的对抗思路)。
[*]及时更新系统补丁程序。
[*]定期备份重要的数据在不同位置(网盘、移动硬盘)。
溯雪 发表于 2021-7-14 10:27
创建一个互斥体名称为Global\\MsWinZonesCacheCounterMutexA,让勒索病毒程序 启动不起来
这个是怎么操作呢 ...
这个需要编写代码写程序,将这个互斥体名称给占用了。这不过是功能性的对抗方法,不是通用的。 防范蠕虫一类的病毒最重要的是打开防火墙并及时更新系统补丁,但是网上一堆所谓装系统后必做的XX件事还有所谓大神分享经验很多都是让人关闭防火墙和系统更新,说是这样系统就不容易变卡,写这些文章的人不是蠢就是坏 创建一个互斥体名称为Global\\MsWinZonesCacheCounterMutexA,让勒索病毒程序 启动不起来
这个是怎么操作呢? 还是备份好,准备硬盘,百度网盘不敢恭维{:1_907:} 很好的分析,收藏了。
多个离线硬盘备份是关键。 tek2y 发表于 2021-7-14 11:43
防范蠕虫一类的病毒最重要的是打开防火墙并及时更新系统补丁,但是网上一堆所谓装系统后必做的XX件事还有所 ...
加个路由器也会安全很多,更新我不喜欢,一般会关掉,防火墙会开着 溯雪 发表于 2021-7-14 10:27
创建一个互斥体名称为Global\\MsWinZonesCacheCounterMutexA,让勒索病毒程序 启动不起来
这个是怎么操作呢 ...
CreateEvent,你先运行你自己写的互斥体,然后再运行病毒! 很详细的分析,受教了 感谢详细分析!