遭遇勒索病毒前幾天接到一哥們求助,說是硬盤里的文檔、相片和 MP3 等文件通通不見了,D 盤根目錄留下一個名為“EncryptV2.0.exe”的程序和一份《使用說明.txt》,主要內容如下: 【Encrypt V2.0】 功能強大的商業(yè)數(shù)據(jù)保護軟件,讓您的機密不再被他人竊取. 客服QQ : 4040458 客服E-mail : encrypt2@163.com 【精明軟件開發(fā)團隊】 運行“EncryptV2.0.exe”后主界面中可以看到“解除保護”按鈕,但需要輸入密碼。根據(jù)《使用說明.txt》中留下的 QQ 號碼和 email 地址,那哥們聯(lián)系了所謂的“客服人員”,對方嚴正告知這是有償服務,需要繳納 280 元的服務費才可提供密碼。 除了“EncryptV2.0.exe”,當初那個負責“保護”文檔的病毒樣本已經(jīng)消失無蹤,不知是程序出于防分析目的而自毀,還是那哥們根據(jù)有限的殺毒知識胡改亂刪給清除了。為簡便起見,我試圖用逆向工程方法繞過密碼保護,讓“EncryptV2.0.exe”自己還原文檔。分析結果卻讓人哭笑不得,代碼只有兩個分支:1、沒有輸入密碼;2、密碼錯誤。 此時如果不愿向流氓低頭,就只有手動恢復文檔了。通過 google 的搜索結果,大致可知勒索類軟件從今年 6 月份左右在國內傳播,而我哥們遇到的這個,在 8 月初才有人提到。這類病毒通常不采用文件過濾驅動等底層方法實現(xiàn)——有此心態(tài)的作者多半也深入不到這個層次。常用的手段是通過移動文件、修改目錄名稱、編輯 desktop.ini 文件、設置文件/目錄屬性、修改注冊表等方式使文件不可見,只要逆向操作一遍即可還原。 將 D 盤根目錄下的“F0UND.0001”、“F0UND.0002”等目錄中偽裝成打印機的目錄還原,發(fā)現(xiàn)有些是空目錄,有些則完全是<system32>目錄下的系統(tǒng)文件,文件創(chuàng)建日期均為 7 月 27 日,即病毒發(fā)作當日。由于沒有原始病毒樣本做輔助判斷,這里只能猜測,病毒程序先將文檔移動到“F0UND.0001”等目錄下的子目錄中,然后將文檔全部刪除,再用<system32>目錄下的大量系統(tǒng)文件覆蓋,最后還將這些子目錄偽裝成打印機目錄。如此操作后,D 盤的磁盤空間占用沒有明顯變化,用戶只能看到很多奇怪的目錄名稱,卻無法察看其中內容,誤認為文檔就被藏在里面。另一目的則應該是,中毒用戶即使修復并進入了這些目錄,看到的也全是垃圾文件,無奈之下只有求助于“客服人員”。如果猜得沒錯,該病毒的做法與先“撕票”再索要贖金的匪徒無異。為了證實上述猜測,使用“FinalData2.0”在 D 盤中進行反刪除操作,果然可以找到并恢復半數(shù)的被“保護”文檔——另一半已經(jīng)被大量垃圾文件覆蓋而無法恢復。 至此,文檔恢復工作告一段落。我并不確信自己的猜測百分之百正確,所以也希望“有幸”遭遇該病毒的兄弟發(fā)給我一份樣本以便進一步分析。 附1:勒索類病毒隱藏文件的常用方法 1、在目錄名后追加“.{21EC2020-3AEA-1069-A2DD-08002B30309D}”后綴,可以將目錄偽裝成“控制面板”。同理,追加“.{2227a280-3aea-1069-a2de-08002b30309d}”后綴可偽裝成打印機目錄等等。 對策——將后綴刪除即可恢復。 2、修改以下注冊表鍵值: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Hidden"=2 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "HideFileExt"=1 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "SuperHidden"=1 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "ShowSuperHidden"=0 這樣即使在“文件夾選項”中設置了“顯示所有文件和文件夾”及“顯示受保護的操作系統(tǒng)文件”,依然不能顯示病毒建立的隱藏文件夾。 對策——恢復注冊表鍵值: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Hidden"=1 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "HideFileExt"=0 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "SuperHidden"=0 [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "ShowSuperHidden"=1 3、修改目錄為“系統(tǒng)、只讀”屬性(“+s +r”);目錄下創(chuàng)建“desktop.ini”文件,設置為“系統(tǒng)、存檔、隱藏、只讀”屬性(“+s +a +h +r”),內容如下: [.ShellClassInfo] CLSID={21ec2020-3aea-1069-a2dd-08002b30309d} 其中不同的 CLSID 可以將目錄偽裝成控制面板、打印機、我的電腦、回收站等等。 對策——命令行下通過“attrib”命令取消目錄及“desktop.ini”的系統(tǒng)、隱藏、只讀屬性(-s -h -r),并刪除“desktop.ini”文件。 附2:“EncryptV2.0.exe”代碼片斷及分析結果 0040C8A8 . 816C24 04 5B00>SUB DWORD PTR SS:[ESP+4],5B 0040C8B0 . E9 9B7C0000 JMP dumped_F.00414550 ; “使用說明”按鈕 0040C8B5 . 816C24 04 5F00>SUB DWORD PTR SS:[ESP+4],5F 0040C8BD . E9 7E7D0000 JMP dumped_F.00414640 ; “服務介紹”按鈕 0040C8C2 . 816C24 04 6300>SUB DWORD PTR SS:[ESP+4],63 0040C8CA . E9 617E0000 JMP dumped_F.00414730 ; “團隊介紹”按鈕 0040C8CF . 816C24 04 6700>SUB DWORD PTR SS:[ESP+4],67 0040C8D7 . E9 447F0000 JMP dumped_F.00414820 ; “解除保護”按鈕 0040C8DC . 816C24 04 6B00>SUB DWORD PTR SS:[ESP+4],6B 0040C8E4 . E9 07810000 JMP dumped_F.004149F0 ; “取消”按鈕 ...... 00414820 > 55 PUSH EBP 00414821 . 8BEC MOV EBP,ESP 00414823 . 83EC 0C SUB ESP,0C 00414826 . 68 E6104000 PUSH ; SE handler installation 0041482B . 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 00414831 . 50 PUSH EAX 00414832 . 64:8925 000000>MOV DWORD PTR FS:[0],ESP 00414839 . 81EC 9C000000 SUB ESP,9C 0041483F . 53 PUSH EBX 00414840 . 56 PUSH ESI 00414841 . 57 PUSH EDI 00414842 . 8965 F4 MOV DWORD PTR SS:[EBP-C],ESP 00414845 . C745 F8 C81040>MOV DWORD PTR SS:[EBP-8],dumped_F.004010> 0041484C . 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8] 0041484F . 8BC6 MOV EAX,ESI 00414851 . 83E0 01 AND EAX,1 00414854 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 00414857 . 83E6 FE AND ESI,FFFFFFFE 0041485A . 56 PUSH ESI 0041485B . 8975 08 MOV DWORD PTR SS:[EBP+8],ESI 0041485E . 8B0E MOV ECX,DWORD PTR DS:[ESI] 00414860 . FF51 04 CALL DWORD PTR DS:[ECX+4] 00414863 . 8B16 MOV EDX,DWORD PTR DS:[ESI] 00414865 . 33FF XOR EDI,EDI 00414867 . 56 PUSH ESI 00414868 . 897D E8 MOV DWORD PTR SS:[EBP-18],EDI 0041486B . 897D E4 MOV DWORD PTR SS:[EBP-1C],EDI 0041486E . 897D D4 MOV DWORD PTR SS:[EBP-2C],EDI 00414871 . 897D C4 MOV DWORD PTR SS:[EBP-3C],EDI 00414874 . 897D B4 MOV DWORD PTR SS:[EBP-4C],EDI 00414877 . 897D A4 MOV DWORD PTR SS:[EBP-5C],EDI 0041487A . 897D 94 MOV DWORD PTR SS:[EBP-6C],EDI 0041487D . FF92 14030000 CALL DWORD PTR DS:[EDX+314] 00414883 . 50 PUSH EAX 00414884 . 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C] 00414887 . 50 PUSH EAX 00414888 . FF15 24104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaObjSe>; msvbvm60.__vbaObjSet 0041488E . 8BF0 MOV ESI,EAX 00414890 . 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18] 00414893 . 52 PUSH EDX 00414894 . 56 PUSH ESI 00414895 . 8B0E MOV ECX,DWORD PTR DS:[ESI] 00414897 . FF91 A0000000 CALL DWORD PTR DS:[ECX+A0] 0041489D . 3BC7 CMP EAX,EDI 0041489F . DBE2 FCLEX 004148A1 . 7D 12 JGE SHORT dumped_F.004148B5 004148A3 . 68 A0000000 PUSH 0A0 004148A8 . 68 C8BE4000 PUSH dumped_F.0040BEC8 004148AD . 56 PUSH ESI 004148AE . 50 PUSH EAX 004148AF . FF15 18104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaHresu>; msvbvm60.__vbaHresultCheckObj 004148B5 > 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18] 004148B8 . 50 PUSH EAX 004148B9 . 68 DCBE4000 PUSH dumped_F.0040BEDC 004148BE . FF15 3C104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaStrCm>; 與空字符串進行比較 004148C4 . 8BF0 MOV ESI,EAX 004148C6 . 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18] 004148C9 . F7DE NEG ESI 004148CB . 1BF6 SBB ESI,ESI 004148CD . 46 INC ESI 004148CE . F7DE NEG ESI 004148D0 . FF15 90104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeS>; msvbvm60.__vbaFreeStr 004148D6 . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 004148D9 . FF15 94104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeO>; msvbvm60.__vbaFreeObj 004148DF . B9 04000280 MOV ECX,80020004 004148E4 . B8 0A000000 MOV EAX,0A 004148E9 . 66:3BF7 CMP SI,DI 004148EC . 894D AC MOV DWORD PTR SS:[EBP-54],ECX 004148EF . 8945 A4 MOV DWORD PTR SS:[EBP-5C],EAX 004148F2 . 894D BC MOV DWORD PTR SS:[EBP-44],ECX 004148F5 . 8945 B4 MOV DWORD PTR SS:[EBP-4C],EAX 004148F8 . 894D CC MOV DWORD PTR SS:[EBP-34],ECX 004148FB . 8945 C4 MOV DWORD PTR SS:[EBP-3C],EAX 004148FE . 74 43 JE SHORT dumped_F.00414943 00414900 . 8D55 94 LEA EDX,DWORD PTR SS:[EBP-6C] 00414903 . 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C] 00414906 . C745 9C F0BF40>MOV DWORD PTR SS:[EBP-64],dumped_F.0040B> 0041490D . C745 94 080000>MOV DWORD PTR SS:[EBP-6C],8 00414914 . FF15 7C104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaVarDu>; msvbvm60.__vbaVarDup 0041491A . 8D4D A4 LEA ECX,DWORD PTR SS:[EBP-5C] 0041491D . 8D55 B4 LEA EDX,DWORD PTR SS:[EBP-4C] 00414920 . 51 PUSH ECX 00414921 . 8D45 C4 LEA EAX,DWORD PTR SS:[EBP-3C] 00414924 . 52 PUSH EDX 00414925 . 50 PUSH EAX 00414926 . 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C] 00414929 . 57 PUSH EDI 0041492A . 51 PUSH ECX 0041492B . FF15 20104000 CALL DWORD PTR DS:[<&msvbvm60.rtcMsgBox>>; 提示“請輸入密碼!” 00414931 . 8D55 A4 LEA EDX,DWORD PTR SS:[EBP-5C] 00414934 . 8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C] 00414937 . 52 PUSH EDX 00414938 . 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C] 0041493B . 50 PUSH EAX 0041493C . 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C] 0041493F . 51 PUSH ECX 00414940 . 52 PUSH EDX 00414941 . EB 41 JMP SHORT dumped_F.00414984 00414943 > 8D55 94 LEA EDX,DWORD PTR SS:[EBP-6C] 00414946 . 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C] 00414949 . C745 9C 04C040>MOV DWORD PTR SS:[EBP-64],dumped_F.0040C> 00414950 . C745 94 080000>MOV DWORD PTR SS:[EBP-6C],8 00414957 . FF15 7C104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaVarDu>; msvbvm60.__vbaVarDup 0041495D . 8D45 A4 LEA EAX,DWORD PTR SS:[EBP-5C] 00414960 . 8D4D B4 LEA ECX,DWORD PTR SS:[EBP-4C] 00414963 . 50 PUSH EAX 00414964 . 8D55 C4 LEA EDX,DWORD PTR SS:[EBP-3C] 00414967 . 51 PUSH ECX 00414968 . 52 PUSH EDX 00414969 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C] 0041496C . 57 PUSH EDI 0041496D . 50 PUSH EAX 0041496E . FF15 20104000 CALL DWORD PTR DS:[<&msvbvm60.rtcMsgBox>>; 提示“密碼錯誤!” 00414974 . 8D4D A4 LEA ECX,DWORD PTR SS:[EBP-5C] 00414977 . 8D55 B4 LEA EDX,DWORD PTR SS:[EBP-4C] 0041497A . 51 PUSH ECX 0041497B . 8D45 C4 LEA EAX,DWORD PTR SS:[EBP-3C] 0041497E . 52 PUSH EDX 0041497F . 8D4D D4 LEA ECX,DWORD PTR SS:[EBP-2C] 00414982 . 50 PUSH EAX 00414983 . 51 PUSH ECX 00414984 > 6A 04 PUSH 4 00414986 . FF15 08104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeV>; msvbvm60.__vbaFreeVarList 0041498C . 83C4 14 ADD ESP,14 0041498F . 897D FC MOV DWORD PTR SS:[EBP-4],EDI 00414992 . 68 C8494100 PUSH dumped_F.004149C8 00414997 . EB 2E JMP SHORT dumped_F.004149C7 00414999 . 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18] 0041499C . FF15 90104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeS>; msvbvm60.__vbaFreeStr 004149A2 . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] 004149A5 . FF15 94104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeO>; msvbvm60.__vbaFreeObj 004149AB . 8D55 A4 LEA EDX,DWORD PTR SS:[EBP-5C] 004149AE . 8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C] 004149B1 . 52 PUSH EDX 004149B2 . 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C] 004149B5 . 50 PUSH EAX 004149B6 . 8D55 D4 LEA EDX,DWORD PTR SS:[EBP-2C] 004149B9 . 51 PUSH ECX 004149BA . 52 PUSH EDX 004149BB . 6A 04 PUSH 4 004149BD . FF15 08104000 CALL DWORD PTR DS:[<&msvbvm60.__vbaFreeV>; msvbvm60.__vbaFreeVarList 004149C3 . 83C4 14 ADD ESP,14 004149C6 . C3 RETN 004149C7 > C3 RETN ; RET used as a jump to 004149C8 004149C8 > 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 004149CB . 50 PUSH EAX 004149CC . 8B08 MOV ECX,DWORD PTR DS:[EAX] 004149CE . FF51 08 CALL DWORD PTR DS:[ECX+8] 004149D1 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 004149D4 . 8B4D EC MOV ECX,DWORD PTR SS:[EBP-14] 004149D7 . 5F POP EDI 004149D8 . 5E POP ESI 004149D9 . 64:890D 000000>MOV DWORD PTR FS:[0],ECX 004149E0 . 5B POP EBX 004149E1 . 8BE5 MOV ESP,EBP 004149E3 . 5D POP EBP 004149E4 . C2 0400 RETN 4 |
|
來自: alone_star > 《網(wǎng)絡相關》