吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14251|回复: 21
收起左侧

[PC样本分析] Crysis勒索病毒变种-.wallet文件后缀病毒分析报告

  [复制链接]
流动的盛宴 发表于 2019-8-22 21:10
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
@TOC
一、样本简介
  CrySiS勒索病毒在2017年5月万能密钥被公布之后,消失了一段时间,最近又发现这类勒索病毒的新的变种比较活跃,攻击方法同样是通过远程RDP爆力破解的方式,植入到用户的服务器进行攻击,其加密后的文件的后缀名为.wallet,CrySiS采用AES+RSA的加密方式。
二、现象描述
  该病毒感染过后会创建多个窗口
  
  文件加密方式
  
1.1 样本信息
病毒名称:哈希值
所属家族:Crysis
MD5值:4A0FF6D33C45A670E23C924435905F0C
SHA1值:2CF9750907778F553D187C3FA44DE263BA3BEAD9
CRC32:1536561E
1.2 测试环境及工具
环境:Windows 7 32位
工具:火绒剑,OD,IDA,PEiD,010Editor
病毒行为:
1)  绘制窗口、获取登录用户信息、枚举局域网服务器、判断当前计算机语言
流程图:

获取登录用户信息

枚举局域网服务器

判断电脑语言

2)  发现原始文件数据被修改,在0x400000内存地址上下硬件写入断点,发现构造shellcode通过LoadLibrary函数加载Kernel32.dll,然后利用GetProcAddress动态获取VirtualProctect等函数地址。

3)  在shellcode中动态调用VirtualAlloc申请内存,把新的变体内容拷贝到内存,调用VirtualProctet修改内存属性,把原程序地址空间清零,获取Crysis病毒变种的pdb文件,再使用新的变体填充,实行“换体”操作,阻止IDA静态分析。


4)  根据参数是否为1,分别创建互斥体变量Global\syncronize_107MKRA和Global\syncronize_107MKRA,防止被多次运行、利用OpenProcessToken、AdjustPrivilege等函数执行进程提权操作。


5)  通过RC4解密字符串,得到进程名和服务列表名,创建一个线程后,建立服务控制管理器连接,遍历服务,关闭服务更新,判断是否需要关闭服务,创建进程快照,对比关闭相应进程。
进程名:1c8.exe、1cv77.exe、outlook.exe、postgres.exe、mysqld-nt.exe、mysqld.exe、sqlservr.exe。

关闭进程

关闭服务更新

服务名:FirebirdGuardianDefaultInstance、FirebirdServerDefaultInstance、sqlwriter、mssqlserver、sqlserveradhelper。

6)  拷贝病毒文件到以下目录:
%windir%\System32

%appdata%

%sh(Startup)%

%sh(Common Starup)%
相关进程

配置文件

7)  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注册表创建三个键值,添加启动项。


8)  通过RC4解密“mode con cp select=1251 vssadmin delete shadows /all /quiet Exit”删除卷影备份文件命令字符串,创建cmd.exe进程,执行该命令,防止用户通过还原磁盘的方式恢复文件。

9)  创建线程RC4解密获取“ABCDEFGHIJKLMNOPQRSTUVWXYZ”字符串,获取本地磁盘。通过RC4解密出343种该病毒可支持的文件加密格式文件后缀、不加密保障系统正常运行的文件、感染info.hta文件等

343种可加密文件后缀


.1cd;.3ds;.3fr;.3g2;.3gp;.7z;.accda;.accdb;.accdc;.accde;.accdt;.accdw;.adb;.adp;.ai;.ai3;.ai4;.ai5;.ai6;.ai7;.ai8;.anim;.arw;.as;.asa;.asc;.ascx;.asm;.asmx;.asp;.aspx;.asr;.asx;.avi;.avs;.backup;.bak;.bay;.bd;.bin;.bmp;.bz2;.c;.cdr;.cer;.cf;.cfc;.cfm;.cfml;.cfu;.chm;.cin;.class;.clx;.config;.cpp;.cr2;.crt;.crw;.cs;.css;.csv;.cub;.dae;.dat;.db;.dbf;.dbx;.dc3;.dcm;.dcr;.der;.dib;.dic;.dif;.divx;.djvu;.dng;.doc;.docm;.docx;.dot;.dotm;.dotx;.dpx;.dqy;.dsn;.dt;.dtd;.dwg;.dwt;.dx;.dxf;.edml;.efd;.elf;.emf;.emz;.epf;.eps;.epsf;.epsp;.erf;.exr;.f4v;.fido;.flm;.flv;.frm;.fxg;.geo;.gif;.grs;.gz;.h;.hdr;.hpp;.hta;.htc;.htm;.html;.icb;.ics;.iff;.inc;.indd;.ini;.iqy;.j2c;.j2k;.java;.jp2;.jpc;.jpe;.jpeg;.jpf;.jpg;.jpx;.js;.jsf;.json;.jsp;.kdc;.kmz;.kwm;.lasso;.lbi;.lgf;.lgp;.log;.m1v;.m4a;.m4v;.max;.md;.mda;.mdb;.mde;.mdf;.mdw;.mef;.mft;.mfw;.mht;.mhtml;.mka;.mkidx;.mkv;.mos;.mov;.mp3;.mp4;.mpeg;.mpg;.mpv;.mrw;.msg;.mxl;.myd;.myi;.nef;.nrw;.obj;.odb;.odc;.odm;.odp;.ods;.oft;.one;.onepkg;.onetoc2;.opt;.oqy;.orf;.p12;.p7b;.p7c;.pam;.pbm;.pct;.pcx;.pdd;.pdf;.pdp;.pef;.pem;.pff;.pfm;.pfx;.pgm;.php;.php3;.php4;.php5;.phtml;.pict;.pl;.pls;.pm;.png;.pnm;.pot;.potm;.potx;.ppa;.ppam;.ppm;.pps;.ppsm;.ppt;.pptm;.pptx;.prn;.ps;.psb;.psd;.pst;.ptx;.pub;.pwm;.pxr;.py;.qt;.r3d;.raf;.rar;.raw;.rdf;.rgbe;.rle;.rqy;.rss;.rtf;.rw2;.rwl;.safe;.sct;.sdpx;.shtm;.shtml;.slk;.sln;.sql;.sr2;.srf;.srw;.ssi;.st;.stm;.svg;.svgz;.swf;.tab;.tar;.tbb;.tbi;.tbk;.tdi;.tga;.thmx;.tif;.tiff;.tld;.torrent;.tpl;.txt;.u3d;.udl;.uxdc;.vb;.vbs;.vcs;.vda;.vdr;.vdw;.vdx;.vrp;.vsd;.vss;.vst;.vsw;.vsx;.vtm;.vtml;.vtx;.wb2;.wav;.wbm;.wbmp;.wim;.wmf;.wml;.wmv;.wpd;.wps;.x3f;.xl;.xla;.xlam;.xlk;.xlm;.xls;.xlsb;.xlsm;.xlsx;.xlt;.xltm;.xltx;.xlw;.xml;.xps;.xsd;.xsf;.xsl;.xslt;.xsn;.xtp;.xtp2;.xyze;.xz;.zip;​​

不加密保障用户操作系统正常的文件


boot.ini;bootfont.bin;ntldr;ntdetect.com;io.sys;
10) 计算RSA公钥的SHA1结果,通过GetVolumeInformationW函数获取硬盘序列号,函数405690:连续两次通过RDTSC指令获取CPU自启动以来的周期数,生成0x20字节的随机数,计算SHA1值;使用RC4加密,RC4加密的结果为后面对文件加密的AES密钥。通过函数405b80进行RSA加密,初始IV随机生成16字节,再用SHA1加密生成IV
1、硬盘序列号:

2、获取RSA_SHA1:

随机生成0x20字节的随机数,计算SHA1值,RC4加密:

在这里插入图片描述0x20的RC4加密的随机密钥+32字节处填写硬盘序列号+20字节是RSA——SHA1的值:

11) 创建文件加密线程函数4033b0,先判断文件大小是否大于0x180000,
1、 创建加密线程、判断文件大小

   2、如果文件小于0x180000:
创建加密文件,利用ReadFile将文件读入内存:

3、取16字节,每四字节倒序:

4、与IV进行xor运算:

5、进行AES加密文件数据,写入加密文件

6、在文件末尾利用memset函数初始化0x20字节,并填充固定数据
再把文件名+107MKR+文件补齐长度+0x20RSA_SHA1的值+0x10AES_IV+0x80RSA加密AES_Key+(0x20+文件名长度)


7、利用SetEndOfFile设置文件末尾、设置文件属性、利用DeleteFile删除原文件

8、如果文件大于0x180000:
利用MoveFile进行AES加密操作,直接写入文件:

总结:近几年勒索病毒变种速度极快,常采用RSA+AES等成熟算法加密文件,不易破解,并且用户一旦中招,通常情况下只能支付赎金,黑客也不一定会帮你解密,危害性巨大。
防范方法:
1、对重要数据要备份文件
2、不要浏览非法网站,接受来历不明的软件
3、开启防火墙,及时更新杀毒工具
4、重命名vssadmin.exe进程,防止勒索病毒利用它一次性清除文件的卷影副本
5、关闭不必要的端口,如:445、135、139、3389等

免费评分

参与人数 6吾爱币 +5 热心值 +5 收起 理由
这醋好甜 + 1 我很赞同!
撸冰花 + 1 + 1 我很赞同!
zhangchang + 1 + 1 用心讨论,共获提升!
阿萨德话噶 + 1 谢谢@Thanks!
chmod755 + 1 + 1 我很赞同!
linwenhui + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 流动的盛宴 发表于 2019-8-24 00:17
kingwl 发表于 2019-8-23 19:58
牛逼 https://www.52pojie.cn/thread-1003712-1-1.html 大佬看一下我中的这个

https://tieba.baidu.com/p/6218205807?red_tag=0667858529你问下楼主,是否有最快的解决方案?
 楼主| 流动的盛宴 发表于 2019-8-23 23:57
kingwl 发表于 2019-8-23 19:58
牛逼 https://www.52pojie.cn/thread-1003712-1-1.html 大佬看一下我中的这个

你这个肯定是种了相关病毒变种了
kingwl 发表于 2019-8-23 19:58
fhxylang 发表于 2019-8-24 07:46
跟着楼主一步步学
 楼主| 流动的盛宴 发表于 2019-8-24 09:13
fhxylang 发表于 2019-8-24 07:46
跟着楼主一步步学

加油,有什么不懂的可以问我,我也在慢慢学习中
hnadsl2001 发表于 2019-9-2 17:25
感谢分享。。。
Gredb 发表于 2019-9-4 15:09
学习学习
逆向小白成长记 发表于 2019-9-5 11:18
楼主,病毒样本可以发我一份吗,我学习学习
霖僡 发表于 2019-9-5 12:33
楼主厉害,赞
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 03:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表