• 勒索病毒分析


    ​转载自CSDN-初识逆向大神

    本文链接:https://blog.csdn.net/w_g3366/article/details/100590112

    文章目录

    勒索病毒分析报告

    1.样本概况

    1.1 样本信息

    病毒名称:DBD5BEDE15DE51F6E5718B2CA470FC3F
    所属家族:勒索病毒
    大小: 327680 bytes
    修改时间: 2017年4月13日, 15:30:22
    MD5值: DBD5BEDE15DE51F6E5718B2CA470FC3F
    SHA1值: 863F5956863D793298D92610377B705F85FA42B5
    CRC32:1386DD7A

    1.2 测试环境及工具

    测试环境:虚拟机Windows 7 32位
    测试工具:火绒剑、PCHunter、PEiD、OllyDbg、IDA、LoadPE

    1.3 分析目标

    分析病毒具体行为,找到病毒行为的具体实现代码,了解病毒实现原理,评估病毒的威胁程度。

    1.4 样本行为概述

    是一个勒索软件,样本运行后的行为:
    ①将系统内的文本、文档等文件加密
    ②每个文件夹都会生成文字版和图片版的勒索信息
    ③程序会自我复制,自我删除,遍历进程
    ④程序会修改注册表,添加启动项,开机弹出勒索信息
    ⑤向87.238.192、85.128.216.188和85.13.137.133的80端口发送数据

    2.具体行为分析

    2.1 主要行为

    ①自我复制,自我删除,启动新进程
    在这里插入图片描述
    ②加密文件,生成文字版和图片版的勒索信息
    在这里插入图片描述
    ③设置自启动项,启动项伪装成CMD
    在这里插入图片描述
    定位到注册表可以查看启动项cmd的参数
    在这里插入图片描述
    ④遍历进程
    在这里插入图片描述
    ⑤网络连接,泄漏用户信息
    在这里插入图片描述

    2.2 提取恶意代码

    原样本存在大量的混淆代码。根据样本行为可以发现程序会释放新的进程,然后自我删除。可以猜测是在新进程中执行恶意代码。VirtualAlloc申请内存API,CreateProcessW创建进程API下断点,过程中从申请的内存中Dump出来两份PE文件,第一个PE文件和原文件完全相同,第二个PE文件比原程序要小并且没有混淆代码。
    在这里插入图片描述
    CreateProcessW创建进程函数执行时,可能会执行恶意代码。重点分析,根据参数可以发现进程创建后是挂起的,这是病毒创建傀儡进程的常用操作。在恢复进程ResumeThread API函数下断点。程序运行到这时,通过修改参数禁止恢复进程。
    在这里插入图片描述
    恢复进程ResumeThread执行后,样本进程就退出了。可以发现电脑文件并没有被病毒加密。至此,可以确定创建进程函数要执行的就是第二个PE文件。恶意代码就是该PE文件,所以详细分析该文件就可以了。

    2.3 恶意代码分析

    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:遍历文件
    获取用户设备信息,遍历指定磁盘文件
    在这里插入图片描述
    遍历磁盘,若当前对象是文件夹,则在每个文件夹目录下创建勒索文本和图片
    在这里插入图片描述
    若当前对象是文件,执行加密指定类型的文件行为
    在这里插入图片描述

    3.解决方案

    3.1 提取病毒的特征,利用杀毒软件查杀

    ①病毒特征
    UNICODE:"+recover+file.txt"
    UNICODE:“C:WindowsSYSTEM32CMD.EXE C START”
    ②Yara规则

    rule vir
    {
     strings:
      $text_1="+recover+file.txt"
      $text_2="C:WindowsSYSTEM32CMD.EXE C START"
     condition:
      $text_1 or $text_2
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.2 手工查杀步骤或是查杀思路

    勒索病毒查杀思路:

    1. 勒索病毒使用的文件加密算法以目前的技术手段是无法解密的。也就是说,中了勒索病毒,没有密钥很难去还原文件。
    2. 需要提前做好预防工作,提高系统安全级别。分析出勒索病毒提取特征,更新病毒库,杀毒软件就可以在电脑中勒索病毒之前之前将病毒截获清除。

    如果不慎中了勒索病毒,可根据以下步骤先将电脑病毒清除,防止造成更大的损失。手工查杀步骤:

    1. 使用PCHunter结束病毒进程树
    2. 删除注册表启动项,服务启动项
    3. 删除病毒exe文件
    4. 删除我的文档目录下的病毒备份文件"+recover+file.txt"
    5. 遍历磁盘文件,删除勒索信息文件

  • 相关阅读:
    JavaScript的函数(二)
    Python:os.walk()和os.path.walk()用法
    Python:代码单元、代码点介绍
    Python:如何去掉字符串中不需要的字符
    Python:更改字典的key
    Python:如何对字符串进行左、右、居中对齐
    Python:format()方法
    日常开发之缓存技术
    Web系统大规模并发——秒杀与抢购 秒杀系统优化与预防措施
    PHP之位运算符
  • 原文地址:https://www.cnblogs.com/ltyandy/p/11527803.html
Copyright © 2020-2023  润新知