如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)

這篇文章主要講解了“如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)”吧!

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)競秀,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

寫在前面的話

MaMoCrypt是一款臭名昭著的勒索軟件,該勒索軟件從去年的十二月份開始活躍,深受其害的用戶可以算是不計其數(shù)了。那么在這篇文章中,我們將告訴大家如何恢復(fù)、解密被MaMoCrypt勒索軟件加密的數(shù)據(jù)。

MaMoCrypt是一款非常與眾不同的勒索軟件,這款勒索軟件采用Delphi開發(fā),并且使用了mpress進(jìn)行封裝,是MZRevenge的一個變種版本。

勒索軟件行為

  • MaMoCrypt能夠刪除Windows卷影(ShadowVolume),并禁用防火墻以及UAC服務(wù)。這些功能在惡意軟件領(lǐng)域中其實(shí)并不罕見,因此我們在此對其不做更深入的討論。

  • 它使用了Delphi的隨機(jī)生成器(基于線性同余生成器)以及基于時間的DWORD種子(使用QueryPerformanceCounter或GetTickCount),此時將會生成兩個緩沖區(qū),其中的數(shù)據(jù)會使用Base64進(jìn)行編碼,并添加MZRKEYPUBLIC  / MZRKEYPRIVATE字符串。

  • 根據(jù)上述的兩個密鑰以及一個掩碼,該勒索軟件將會針對每個文件生成兩個加密密鑰,隨后將會使用它們來進(jìn)行文件加密。它首先會使用AES 128  CBC來進(jìn)行文件內(nèi)容加密,然后再使用Twofish 128 NOFB來對其進(jìn)行二次加密。AES加密過程中剩余的16%內(nèi)容將使用AES 128  CFB進(jìn)行加密,所有加密文件的后綴名都會添加一個“.MZ173801”。

  • 加密完成之后,惡意軟件會再次枚舉所有加密目錄,并分別存放勒索信息,而勒索信息中也會包含對應(yīng)的那兩個MZR密鑰。

雖然MZR密鑰在密鑰生成或加密的過程中不會發(fā)生變化,但掩碼會持續(xù)更新。它們的生成基于的是SHA1、SHA512和某些自定義算法的混合計算結(jié)果。每一個AES和Twofish密鑰還會使用SHA512進(jìn)行16次計算以及字節(jié)異或。

掩碼和密鑰生成

*(int*)mask_in = offset;   for (int i = 0; i < 0x800; ++i) {          SHA1(mask_in, 0x84, mask_out);       *(int*)mask_in = i + 1 + offset;       *(mask_in + 3 + (i & 0x7F) + 1) ^= mask_out[0];       mask[i] = mask_out[1];   }   offset += 0x800;   aes_key = generate_key(mask, mzrkey_private.c_str(), 0x800, mzrkey_private.size());      for (int i = 0; i < 0x200; ++i) {      SHA1(mask_in, 0x84, mask_out);       *(int*)mask_in = i + 1 + offset;       *(mask_in + 3 + (i & 0x7F) + 1) ^= mask_out[0];       mask[i] = mask_out[1];   }   offset += 0x200;   twofish_key = generate_key(mask, mzrkey_public.c_str(), 0x200, mzrkey_public.size());  generate_key:   int mzrkey_size_bswap = _byteswap_ulong(mzrkey_len);   int mask_size_bswap = _byteswap_ulong(mask_len);   for (int i = 0; i < key_SIZE; ++i) {     ((int*)in)[0] = _byteswap_ulong(i);     for (int j = 0; j < i; ++j)        in[j + 4] = key[j];     *((int*)(in + 4 + i)) = _byteswap_ulong(1);     *((int*)(in + 8 + i)) = mask_size_bswap;     memcpy(in + 3 * sizeof(int) + i, mask, mask_len);     memcpy(in + 3 * sizeof(int) + mask_len + i, &mzrkey_size_bswap, 4);     memcpy(in + 3 * sizeof(int) + mask_len + 4 + i, mzrkey, mzrkey_len);     SHA512(in, mask_len + mzrkey_len + 4 * sizeof(int) + i, out);     for (int j = 0; j < SHA512_DIGEST_LENGTH; ++j)         key[i] ^= out[j];   }

AES CBC的IV將使用AES 128 ECB生成,位置在一個16字節(jié)緩沖區(qū)內(nèi)。類似的,Twofish NOFB的IV將使用Twofish 128  ECB生成,位置同樣在一個16字節(jié)緩沖區(qū)內(nèi)。掩碼的初始內(nèi)容生成如下:

memset(mask_in, MASK_IN_SZ, 0);   memset(mask_out, MASK_OUT_SZ, 0);      for (int i = 0; i < 0x80; ++i) {     SHA1(mask_in, 0x84, mask_out);     *(int*)mask_in = i + 1;     *(mask_in + 3 + i + 1) = mask_out[0];   }

實(shí)際上,這種加密機(jī)制我們此前從未在其他勒索軟件中見到過,而且惡意代碼還會對整個文件系統(tǒng)進(jìn)行加密,該勒索軟件的硬編碼文件和驅(qū)動器列表如下:

C:\Program Files\Steam  C:\Program Files (x86)\Steam  [DRIVES A-Z, WITHOUT C]  C:\Users\%user%\AppData\Roaming\Microsoft\Windows\Recent\  C:\Users\%user%\Pictures  C:\Users\%user%\Music  C:\Users\%user%\Videos  C:\Users\%user%\Documents  C:\Users\Public\Documents  C:\Users\Public\Videos  C:\Users\Public\Music  C:\Users\Public\Pictures  C:\Users\%user%\Downloads  C:\Users\%user%\Favorites  ::{645FF040-5081-101B-9F08-00AA002F954E} (Recycle Bin)  C:\Users\Administrator  C:\Users\Public  C:\Users\Default  C:\Users\%user%\Desktop  C:\Users\Public\Desktop  C:\Users\%user%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar  C:\Users\%user%\AppData\Roaming\Microsoft\Windows\Start Menu  C:\ProgramData\Microsoft\Windows\Start Menu\

由于掩碼/密鑰生成使用了一個偏移量來代表每一個文件的遞增,那么解密的過程將依賴于文件的加密文件夾。

這款勒索軟件支持的文件加密類型如下:

.cs;.lnk;.mp3;.jpg;.jpeg;.raw;.tif;.gif;.png;.bmp;.3dm;.max;.accdb;.db;.dbf;.mdb;.pdb;.sql;.dwg;.dxf;.c;.cpp;.cs;.h;.php;.asp;.rb;.java;.jar;.class;.py;.js;.aaf;.aep;.aepx;     .plb;.prel;.prproj;.aet;.ppj;.psd;.indd;.indl;.indt;.indb;.inx;.idml;.pmd;.xqx;.xqx;.ai;.eps;.ps;.svg;.swf;.fla;.as3;.as;.txt;.doc;.dot;.docx;.docm;.dotx;.dotm;.docb;.rtf;.wpd;     .wps;.msg;.pdf;.xls;.xlt;.xlm;.xlsx;.xlsm;.xltx;.xltm;.xlsb;.xla;.xlam;.xll;.xlw;.ppt;.pot;.pps;.pptx;.pptm;.potx;.potm;.ppam;.ppsx;.ppsm;.sldx;.sldm;.wav;.aif;.iff;.m3u;.m4u;     .mid;.mpa;.wma;.ra;.avi;.mov;.mp4;.3gp;.mpeg;.3g2;.asf;.asx;.flv;.mpg;.wmv;.vob;.m3u8;.mkv;.dat;.csv;.efx;.sdf;.vcf;.xml;.ses;.rar;.zip;.7zip;.dtb;.bat;.apk;.vb;.sln;.csproj;     .vbproj;.hpp;.asm;.lua;.ibank;.design;.aspx;.bak;.obj;.sqlite;.sqlite3;.sqlitedb;.back;.backup;.one;.pst;.url;.onetoc2;.m4a;.m4v;.ogg;.hwp;.HWP;.OGG;.M4V;.M4A;.ONETOC2;     .URL;.PST;.ONE;.BACKUP;.BACK;.SQLITEDB;.SQLITE3;.SQLITE;.OBJ;.BAK;.ASPX;.DESIGN;.IBANK;.LUA;.ASM;.HPP;.VBPROJ;.CSPROJ;.SLN;.CS;.VB;.LNK;.JPG;.JPEG;.RAW;.TIF;.GIF;     .PNG;.BMP;.3DM;.MAX;.ACCDB;.DB;.DBF;.MDB;.PDB;.SQL;.DWG;.DXF;.C;.CPP;.CS;.H;.PHP;.ASP;.RB;.JAVA;.JAR;.CLASS;.PY;.JS;.AAF;.AEP;.AEPX;.PLB;.PREL;.PRPROJ;.AET;.PPJ;.PSD;     .INDD;.INDL;.INDT;.INDB;.INX;.IDML;.PMD;.XQX;.XQX;.AI;.EPS;.PS;.SVG;.SWF;.FLA;.AS3;.AS;.TXT;.DOC;.DOT;.DOCX;.DOCM;.DOTX;.DOTM;.DOCB;.RTF;.WPD;.WPS;.MSG;.PDF;.XLS;     .XLT;.XLM;.XLSX;.XLSM;.XLTX;.XLTM;.XLSB;.XLA;.XLAM;.XLL;.XLW;.PPT;.POT;.PPS;.PPTX;.PPTM;.POTX;.POTM;.PPAM;.PPSX;.PPSM;.SLDX;.SLDM;.WAV;.MP3;.AIF;.IFF;.M3U;.M4U;.MID;     .MPA;.WMA;.RA;.AVI;.MOV;.MP4;.3GP;.MPEG;.3G2;.ASF;.ASX;.FLV;.MPG;.WMV;.VOB;.M3U8;.MKV;.DAT;.CSV;.EFX;.SDF;.VCF;.XML;.SES;.RAR;.ZIP;.7ZIP;.DTB;.BAT;.APK;

加密成功之后,該勒索軟件將枚舉全部加密目錄,并一一存放勒索信息,勒索文本文件名為“How Do I Recover My Files  (Readme).txt”:

如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)

如何解密

第一步:首先點(diǎn)擊【這里】下載解密工具,并存儲在本地設(shè)備中。

第二步:雙擊下載下來的BDMaMoDecryptTool.exe應(yīng)用程序文件,然后在彈出的UAC提示中點(diǎn)擊“Yes”:

如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)

第三步:讀取并接受終端用戶許可證協(xié)議:

如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)

第四步:考慮到這款勒索軟件家族的特殊性,工具將會以特定的順序來掃描系統(tǒng),而無法允許用戶指定需要解密的文件夾或文件數(shù)據(jù),因此我們強(qiáng)烈建議用戶選擇“備份文件”選項(xiàng)。

第五步:點(diǎn)擊“Start  Tool”按鈕,剩下的就交給解密工具來完成吧!如果你選擇了備份選項(xiàng),那么加密文件和解密文件都將同時出現(xiàn),你還可以在%temp%\BDRemovalTool目錄中查看到解密過程的日志記錄。

如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)

感謝各位的閱讀,以上就是“如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前文章:如何恢復(fù)被MaMoCrypt勒索軟件加密的數(shù)據(jù)
分享URL:http://muchs.cn/article10/ijcogo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、虛擬主機(jī)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)