不论走多远,都不应忘记出发时的目标。 注册 | 登陆

遭遇勒索软件

    前几天接到一哥们求助,说是硬盘里的文档、相片和 MP3 等文件通通不见了,D 盘根目录留下一个名为“EncryptV2.0.exe”的程序和一份《使用说明.txt》,主要内容如下:

    【Encrypt V2.0】
    功能強大的商業數據保護軟件,讓您的機密不再被他人竊取.
    客服QQ : 4040458
    客服E-mail : encrypt2@163.com
    【精明軟件開發團隊】

    运行“EncryptV2.0.exe”后主界面中可以看到“解除保护”按钮,但需要输入密码。根据《使用说明.txt》中留下的 QQ 号码和 email 地址,那哥们联系了所谓的“客服人员”,对方严正告知这是有偿服务,需要缴纳 280 元的服务费才可提供密码。
    除了“EncryptV2.0.exe”,当初那个负责“保护”文档的病毒样本已经消失无踪,不知是程序出于防分析目的而自毁,还是那哥们根据有限的杀毒知识胡改乱删给清除了。为简便起见,我试图用逆向工程方法绕过密码保护,让“EncryptV2.0.exe”自己还原文档。分析结果却让人哭笑不得,代码只有两个分支:1、没有输入密码;2、密码错误。
    此时如果不愿向流氓低头,就只有手动恢复文档了。通过 google 的搜索结果,大致可知勒索类软件从今年 6 月份左右在国内传播,而我哥们遇到的这个,在 8 月初才有人提到。这类病毒通常不采用文件过滤驱动等底层方法实现——有此心态的作者多半也深入不到这个层次。常用的手段是通过移动文件、修改目录名称、编辑 desktop.ini 文件、设置文件/目录属性、修改注册表等方式使文件不可见,只要逆向操作一遍即可还原。
    将 D 盘根目录下的“F0UND.0001”、“F0UND.0002”等目录中伪装成打印机的目录还原,发现有些是空目录,有些则完全是 <system32> 目录下的系统文件,文件创建日期均为 7 月 27 日,也就是病毒发作那天。由于没有原始病毒样本做辅助判断,这里只能猜测,病毒程序先将文档移动到“F0UND.0001”等目录下的子目录中,然后将文档全部删除,再用 <system32> 目录下的大量系统文件覆盖,最后还将这些子目录伪装成打印机目录。如此操作后,D 盘的磁盘空间占用没有明显变化,用户只能看到很多奇怪的目录名称,却无法察看其中内容,误认为文档就被藏在里面。另一个目的应该是,中毒用户即使修复并进入了这些目录,看到的也全是垃圾文件,无奈之下只有求助于“客服人员”。如果猜得没错,该病毒的做法与先“撕票”再索要赎金的匪徒无异。为了证实上述猜测,使用“FinalData2.0”在 D 盘中进行反删除操作,果然可以找到并恢复半数的被“保护”文档——另一半已经被大量垃圾文件覆盖而无法恢复。
    至此,文档恢复工作告一段落。我并不确信自己的猜测百分之百正确,所以也希望“有幸”遭遇该病毒的兄弟发给我一份样本以便进一步分析。

   
    附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
    这样即使在“文件夹选项”中设置了“显示所有文件和文件夹”及“显示受保护的操作系统文件”,依然不能显示病毒建立的隐藏文件夹。
    对策——恢复注册表键值:
    [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、修改目录为“系统、只读”属性(“+s +r”);目录下创建“desktop.ini”文件,设置为“系统、存档、隐藏、只读”属性(“+s +a +h +r”),内容如下:
    [.ShellClassInfo]
    CLSID={21ec2020-3aea-1069-a2dd-08002b30309d}
    其中不同的 CLSID 可以将目录伪装成控制面板、打印机、我的电脑、回收站等等。
    对策——命令行下通过“attrib”命令取消目录及“desktop.ini”的系统、隐藏、只读属性(-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 <JMP.&msvbvm60.__vbaExceptHandler>  ;  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

Tags: 勒索软件

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

3条记录访客评论

你好,请教个问题吧,x-scan的漏洞扫描模块应该是您编写的吧,扫描后提示有CVS pserver堆溢出漏洞,有关这个漏洞的详细资料一直没有找到,用这个漏洞能够发起攻击吗,请您详细指点。方便的话能回封邮件吗,nsdxy@sina.com

Post by nsdxy on 2008, July 8, 4:32 PM 引用此文发表评论 #1

这个文章我想让更多人看到,本来想转的,不过想想还是问下冰河好点,暂时不转了~

Post by AlertSniper on 2009, November 28, 11:15 PM 引用此文发表评论 #2

汇编语言!.....

Post by cfaner on 2010, June 22, 9:07 PM 引用此文发表评论 #3


发表评论

评论内容 (必填):