转载自CSDN-初识逆向大神算法
本文连接:https://blog.csdn.net/w_g3366/article/details/100590112安全
病毒名称:DBD5BEDE15DE51F6E5718B2CA470FC3F
所属家族:勒索病毒
大小: 327680 bytes
修改时间: 2017年4月13日, 15:30:22
MD5值: DBD5BEDE15DE51F6E5718B2CA470FC3F
SHA1值: 863F5956863D793298D92610377B705F85FA42B5
CRC32:1386DD7A网络
测试环境:虚拟机Windows 7 32位
测试工具:火绒剑、PCHunter、PEiD、OllyDbg、IDA、LoadPE函数
分析病毒具体行为,找到病毒行为的具体实现代码,了解病毒实现原理,评估病毒的威胁程度。工具
是一个勒索软件,样本运行后的行为:
①将系统内的文本、文档等文件加密
②每一个文件夹都会生成文字版和图片版的勒索信息
③程序会自我复制,自我删除,遍历进程
④程序会修改注册表,添加启动项,开机弹出勒索信息
⑤向87.238.19二、85.128.216.188和85.13.137.133的80端口发送数据测试
①自我复制,自我删除,启动新进程
②加密文件,生成文字版和图片版的勒索信息
③设置自启动项,启动项假装成CMD
定位到注册表能够查看启动项cmd的参数
④遍历进程
⑤网络链接,泄漏用户信息加密
原样本存在大量的混淆代码。根据样本行为能够发现程序会释放新的进程,而后自我删除。能够猜想是在新进程中执行恶意代码。VirtualAlloc申请内存API,CreateProcessW建立进程API下断点,过程当中从申请的内存中Dump出来两份PE文件,第一个PE文件和原文件彻底相同,第二个PE文件比原程序要小而且没有混淆代码。
CreateProcessW建立进程函数执行时,可能会执行恶意代码。重点分析,根据参数能够发现进程建立后是挂起的,这是病毒建立傀儡进程的经常使用操做。在恢复进程ResumeThread API函数下断点。程序运行到这时,经过修改参数禁止恢复进程。
恢复进程ResumeThread执行后,样本进程就退出了。能够发现电脑文件并无被病毒加密。至此,能够肯定建立进程函数要执行的就是第二个PE文件。恶意代码就是该PE文件,因此详细分析该文件就能够了。.net
2.3.1 样本中Dump的恶意代码基本信息
在分析样本时,样本会在内存中释放出来一个PE文件,负责执行恶意攻击行为。Dump内存获得的是一个.exe
文件,使用PEID查看基本信息,能够肯定是VS2010编写的。
2.3.2 样本中Dump的恶意代码分析
①程序流程和关键函数样本的主要流程和关键恶意代码函数见下图
关键代码执行流程:
②检测代码分析
样本开始有一系列的检测代码,若是触发就会退出进程。
样本的流程先拷贝自身,执行新进程,退出本进程。OD动态调试,实时修改验证函数返回值,使进程不退出。
样本中不少函数都调用了sub_4013B0,用OD动态分析,肯定该函数功能是获取函数地址。
③解密字符串函数分析
Sub_402170函数的解密流程:申请内存->解密字符串->释放内存。解密关键函数是Sub_403EB0,一共解密五组字符串。
解密获得各类扩展名字符串
解密获得生成勒索信息文件名用到的字符串
解密获得代码中经常使用用到的各类字符串,如cmd命令、系统环境变量等
解密获得各类网址
解密获得勒索文本内容
④获取权限信息和提升进程权限
获取进程权限信息
提升进程权限
⑤自我复制和删除
⑥修改注册表,设置启动项
⑦建立病毒备份文件
⑧线程回调1:枚举进程
判断进程中若是存在任务管理器、注册表、进程工具、组策略、cmd,将其结束掉。
⑨线程回调2:执行Shell脚本
⑩线程回调3:经过HTTP协议链接网络,发送数据
⑪线程回调4:遍历文件
获取用户设备信息,遍历指定磁盘文件
遍历磁盘,若当前对象是文件夹,则在每一个文件夹目录下建立勒索文本和图片
若当前对象是文件,执行加密指定类型的文件行为线程
①病毒特征
UNICODE:"+recover+file.txt"
UNICODE:“C:\Windows\SYSTEM32\CMD.EXE \C START”
②Yara规则3d
勒索病毒查杀思路:
若是不慎中了勒索病毒,可根据如下步骤先将电脑病毒清除,防止形成更大的损失。手工查杀步骤: