首页
论坛
专栏
课程

[原创]勒索病毒Crysis病毒变种分析报告-加密文件后缀.wallet

2019-8-23 10:04 1398

[原创]勒索病毒Crysis病毒变种分析报告-加密文件后缀.wallet

2019-8-23 10:04
1398


@[TOC](勒索病毒CrySis病毒变种分析报告-加密文件后缀.wallet)

一、样本简介

  CrySis勒索病毒在2017年5月万能密钥被公布之后,消失了一段时间,但是该病毒一直比较活跃, 该病毒是黑客利用弱口令暴力破解受害者电脑导致其中毒 ,植入到用户的服务器进行攻击,其加密后的文件的后缀名为.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:


 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等






[公告]安全测试和项目外包请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最后于 2019-8-23 10:51 被youxie编辑 ,原因:
最新回复 (2)
youxie 2019-8-24 09:09
2
0
wx_随缘居 2天前
3
0
FIN00001.PDF.id-E4B8DB43.[return.data@qq.com].arrow.l40p6613h3
这个能解吗?
游客
登录 | 注册 方可回帖
返回