首页
社区
课程
招聘
[原创]NotPetya勒索病毒分析小结
发表于: 2019-4-13 22:06 6866

[原创]NotPetya勒索病毒分析小结

2019-4-13 22:06
6866

         NotPetya是源自类似Petya的全新形式勒索病毒,可以将硬盘整个加密和锁死,从内存或者本地文件系统里提取密码。[源自于百度百科]

         本篇分析的关于MBR修改一节部分参照了前辈maydayRn 的分析结果。

         原文发表在安全客上,看到阅读量太少,所以在论坛分享一下。

<!-- more -->

         这一类勒索病毒(GrandCrab,NotPetya)都有着很强的隐匿手段,而且采用的并不是普通的隐匿手段(DLL注入),而是将PE文件直接写入内存,然后修正导入表实现的。这样可以实现文件不落地,避免被查杀。

 
 
<3ds.7z.accdb.ai.asp.aspx.avhd.back.bak.c.cfg.conf.cpp.cs>
<.ctl.dbf.disk.djvu.doc.docx.dwg.eml.fdb.gz.h.hdd.kdbx.mai>
<l.mdb.msg.nrg.ora.ost.ova.ovf.pdf.php.pmf.ppt.pptx.pst.pv>
<i.py.pyc.rar.rtf.sln.sql.tar.vbox.vbs.vcb.vdi.vfd.vmc.vmd> <k.vmsd.vmx.vsdx.vsv.work.xls.xlsx.xvd.zip.>
  • 1.目录
  • 2.样本信息
  • 3.行为分析
  • 4.样本分析
  • 5.技术总结

    <!-- more -->

  • 1.样本名称:efegfeisjwi.exe
  • 2.样本md5:71b6a493388e7d0b40c83ce903bc6b04
  • 3.是否加壳:无壳
  • 4.编译语言:vc++
  • 5.样本来源:来自于网络收集
  • 行为分析:
  • 概括
  • 提升权限,需要将进程权限提高到关机权限,调试权限,操作系统级权限
  • 排除指定的安全软件进程
  • 将装载器读入进程堆空间
  • 将自身复制到进程空间
  • 设置堆的保护属性
  • 卸载自身dll,删除dll文件,达到隐藏自身的目的

  • 使用调试权限,破坏MBR
  • 搜索之前的文件是否存在,如果存在退出进程,否则重新创建新的

  • 修改C盘前10个扇区内存
  • 修改MBR设备文件
    • 产生随机码并写入MBR

    • 加密MBR数据,对MBR0x200字节进行xor 0x7操作

  • 产生随机码并写入MBR

  • 加密MBR数据,对MBR0x200字节进行xor 0x7操作

  • 获取shutdown.exe的路径,利用system权限创建定时任务,任务为重启,时间为在当前时间后1hour



  • 复制本地计算机IP到IP地址表

  • 将获取到的适配器和IP地址以及DHCP地址对应起来
  • 判断系统是否是DHCP服务器
  • 获取子网中的IP地址,并将IP放在IP表中


  • 利用枚举出来的IP表,暴力链接目标IP的445和139端口,将可以利用IP保存起来


  • 利用TCP节点表获取目标的IP

  • 释放资源文件到临时目录

  • 将CLSID作为管道名称创建管道,利用之前释放的资源文件获取用户密码,然后通过管道,交给后续远程登录机器。


  • 创建刚刚释放的文件GetPasswd.exe进程。获取用户密码,然后与远程登录进程共享。
  • 删除刚刚释放的文件,保证不被查杀
  • 释放PsExec文件
  • 枚举网络资源,获取用户登陆凭证,收入密码表。创建网络连接,利用Psexec和wmic远程执行命令
  • 枚举网络资源。

  • 获取用户的登录凭证,排除TERMSRV,后面的字符就是允许保存计算机远程终端凭证
  • 将IP表和登录凭据表对应
  • 创建网络连接,检查之前释放的Psexec文件是否存在,不存在重新写入文件

  • 利用Psexec远程执行恶意dll
  • 利用wmic远程执行恶意dll
  • 创建上传命令的进程
  • 利用永恒之蓝和永恒浪漫传播
  • 理论上判断所有硬盘,使用RSA和AES加密。

  • 遍历目录,除了C://windows目录不加密,加密后缀为如下:
  • 根据文件大小,使用不同的加密策略
  • 利用文件映射的方式使用AES加密方式进行文件加密
  • 创建勒索提示信息README
  • 生成AES加密秘钥对
  • 利用AES加密文件
  • 导入内置的RSA公钥

  • 利用RSA公钥加密AES秘钥,并导出

  • 写入AES秘钥
  • 利用cmd调用wevtutil清除相关日志信息

  • 调用NtRaiseHardError诱发蓝屏
  • 获取文件MZ头,并读取到进程空间
  • 搜索重定位表
    • 根据PE结构的相关知识,可得知SectionHeader = *(_WORD *)(this + 20) + this + 24;// NtHeader其实是获取节区头。
    • 然后获取了节区的数目,NumberOfSection = *(_WORD *)(this + 6); // NumberOfSection=NtHeader+6
    • 接着遍历节区,目的是为了获取reloc节区

  • 卸载自身,将源文件写入全零,然后删除自身文件(此时代码在进程中执行)


  • 接着修复导入函数地址表

  • 最后跳转到新的函数入口点
  • 根据PE结构的相关知识,可得知SectionHeader = *(_WORD *)(this + 20) + this + 24;// NtHeader其实是获取节区头。
  • 然后获取了节区的数目,NumberOfSection = *(_WORD *)(this + 6); // NumberOfSection=NtHeader+6
  • 接着遍历节区,目的是为了获取reloc节区

  • 1.目录
  • 2.样本信息
  • 3.行为分析
  • 4.样本分析
  • 5.技术总结

    <!-- more -->

  • 1.样本名称:efegfeisjwi.exe
  • 2.样本md5:71b6a493388e7d0b40c83ce903bc6b04
  • 3.是否加壳:无壳
  • 4.编译语言:vc++
  • 5.样本来源:来自于网络收集
  • 行为分析:
  • 概括
  • 提升权限,需要将进程权限提高到关机权限,调试权限,操作系统级权限
  • 排除指定的安全软件进程
  • 将装载器读入进程堆空间
  • 将自身复制到进程空间
  • 设置堆的保护属性
  • 卸载自身dll,删除dll文件,达到隐藏自身的目的

  • 使用调试权限,破坏MBR

  • [注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

    收藏
    免费 3
    支持
    分享
    最新回复 (1)
    雪    币: 182
    活跃值: (343)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    2
    NotPetya勒索病毒分析小结 中行为分析的图片看不清楚了,博主能提供一下吗
    2022-11-3 16:26
    0
    游客
    登录 | 注册 方可回帖
    返回
    //