|
现象:
在一些进程如 Explorer.exe 、 conime.exe 进程中总含有一个类似D:\Documents and Settings\IceFire\Local Settings\Temp\sqeB.tmp 的随机生成的文件。“去之不尽,去之又来”。。。 烦烦烦。。。
反复检查终得结果: 原来系统中的大部分 PE 文件都已经感染了病毒名称为“ Win32.Parite.a ”的 PE 感染型病毒,以为是哪种厉害的后门程序。 >> 分析 从 PEiD 中探测可知:如图所示 EP Section : .spm- (这是一个随机值,每次感染都不相同); Entry Point : 0004C 000 
省略了一些啰嗦的过程,直接进入主题,跟踪该区段的代码,反汇编代码如下
0044C 000 > BB 9F 5E1600 MOV EBX,165E 9F 0044C 005 68 1CC04400 PUSH Dbgview .0044C 01C 0044C 00A 5A POP EDX 0044C 00B 68 C 4060000 PUSH 6C 4 0044C 010 5F POP EDI 0044C 011 FF 343A PUSH DWORD PTR DS:[EDX+EDI] 0044C 014 311C 24 XOR DWORD PTR SS:[ESP],EBX 0044C 017 8F 043A POP DWORD PTR DS:[EDX+EDI] 0044C 01A 83EF 03 SUB EDI,3 0044C 01D 4F DEC EDI 0044C 01E ^ 75 F 1 JNZ SHORT Dbgview .0044C 011 0044C 020 77 23 JA SHORT Dbgview .0044C 045
// 用 F4 使其跑到这里。。。
// 自解压后会还原出子模块, F7 跟进去。。。 0044C 020 E8 7D010000 CALL Dbgview .0044C 1A 2 0044C 025 0000 ADD BYTE PTR DS:[EAX],AL 0044C 027 0000 ADD BYTE PTR DS:[EAX],AL 0044C 029 0040 00 ADD BYTE PTR DS:[EAX], AL 0044C 1A 2 55 PUSH EBP 0044C 1A 3 8BEC MOV EBP,ESP 0044C 1A 5 81C 4 B4FEFFFF ADD ESP, -14C 0044C 1AB C 645 F 7 00 MOV BYTE PTR SS:[EBP-9],0 0044C 1AF 8BC5 MOV EAX,EBP 0044C 1B1 83C 0 04 ADD EAX,4 0044C 1B4 8B10 MOV EDX,DWORD PTR DS:[EAX] 0044C 1B6 83EA 05 SUB EDX,5 0044C 1B9 8955 FC MOV DWORD PTR SS:[EBP-4],EDX 0044C 1BC 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4] 0044C 1BF 81C 1 84000000 ADD ECX,84 0044C 1C 5 894D F8 MOV DWORD PTR SS:[EBP-8],ECX 0044C 1C 8 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0044C 1CB 8B50 0C MOV EDX,DWORD PTR DS:[EAX+C] 0044C 1CE 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4] 0044C 1D1 0351 08 ADD EDX,DWORD PTR DS:[ECX+8] 0044C 1D4 8BC5 MOV EAX,EBP 0044C 1D6 83C 0 04 ADD EAX,4 0044C 1D9 8910 MOV DWORD PTR DS:[EAX],EDX 0044C 1DB FF 75 F 8 PUSH DWORD PTR SS:[EBP-8] 0044C 1DE FF75 FC PUSH DWORD PTR SS:[EBP-4] 0044C 1E1 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] // // ; 存放着原程序的入口值: 0041161C // 0044C 1E4 52 PUSH EDX 0044C 1E5 E8 78000000 CALL Dbgview .0044C 262 0044C 1EA 84C 0 TEST AL , AL 0044C 1EC 74 6D JE SHORT Dbgview .0044C 25B 0044C 1EE FF 75 F 8 PUSH DWORD PTR SS:[EBP-8] 0044C 1F 1 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 0044C 1F 4 51 PUSH ECX 0044C 1F 5 8D85 B4FEFFFF LEA EAX,DWORD PTR SS:[EBP -14C ] 0044C 1FB 50 PUSH EAX 0044C 1FC E8 05020000 CALL Dbgview .0044C 406 0044C 201 84C 0 TEST AL , AL 0044C 203 74 23 JE SHORT Dbgview .0044C 228 0044C 205 66:83BD B4FEFFFF>CMP WORD PTR SS:[EBP -14C ],6 0044C 20D 72 19 JB SHORT Dbgview .0044C 228 0044C 20F FF 75 F 8 PUSH DWORD PTR SS:[EBP-8] 0044C 212 FF75 FC PUSH DWORD PTR SS:[EBP-4] 0044C 215 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 0044C 218 52 PUSH EDX 0044C 219 8D8D B6FEFFFF LEA ECX,DWORD PTR SS:[EBP -14A ] // // Stack address=0012FE72, (ASCII "D:\DOCUME~1\IceFire\LOCALS~1\Temp\sqeB.tmp") // ECX=0012FE 2C // 0044C 21F 51 PUSH ECX 0044C 220 E8 51020000 CALL Dbgview .0044C 476 // // 将 TEMP 下生成的文件注入到一些进程中。。。 // 0044C 225 8845 F 7 MOV BYTE PTR SS:[EBP-9], AL 0044C 228 807D F7 00 CMP BYTE PTR SS:[EBP-9],0 0044C 22C 75 2D JNZ SHORT Dbgview .0044C 25B 0044C 22E FF75 FC PUSH DWORD PTR SS:[EBP-4] 0044C 231 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] 0044C 234 50 PUSH EAX 0044C 235 8D95 B6FEFFFF LEA EDX,DWORD PTR SS:[EBP -14A ] 0044C 23B 52 PUSH EDX 0044C 23C E8 81020000 CALL Dbgview .0044C 4C 2 0044C 241 84C 0 TEST AL , AL 0044C 243 74 16 JE SHORT Dbgview .0044C 25B 0044C 245 FF 75 F 8 PUSH DWORD PTR SS:[EBP-8] 0044C 248 FF75 FC PUSH DWORD PTR SS:[EBP-4] 0044C 24B 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 0044C 24E 51 PUSH ECX 0044C 24F 8D85 B6FEFFFF LEA EAX,DWORD PTR SS:[EBP -14A ] 0044C 255 50 PUSH EAX 0044C 256 E8 1B020000 CALL Dbgview .0044C 476 0044C 25B 8BE5 MOV ESP,EBP 0044C 25D 5D POP EBP 0044C 25E C3 RETN // 让他跑完这段。。。 返回 0041161C // Return to 0041161C (Dbgview .0041161C ) // // 比较熟悉的 VC++ 初始化代码。。。 // 0041161C /. 55 PUSH EBP 0041161D |. 8BEC MOV EBP,ESP 0041161F |. 6A FF PUSH -1 00411621 |. 68 78A 54100 PUSH Dbgview .0041A 578 00411626 |. 68 D0034100 PUSH Dbgview.004103D0 ; SE handler installation 0041162B |. 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 00411631 |. 50 PUSH EAX 00411632 |. 64:8925 000000>MOV DWORD PTR FS:[0],ESP 00411639 |. 83EC 58 SUB ESP,58 0041163C |. 53 PUSH EBX 0041163D |. 56 PUSH ESI 0041163E |. 57 PUSH EDI 0041163F |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP 00411642 |. FF15 E 4A 14100 CALL DWORD PTR DS:[<&KERNEL32.GetVersion> >> 清除 & 修复 删除病毒的区段: .spm- ;   用 LordPE 修改 PE 头,使其恢复正常的属性。  EntryPoint : 0004C 000 => 0001161C SizeOfImage: 0004D000 => 0004C 000 NumberOfSections: 0005 => 0004 最后点击“ Save “ => “ OK ”保存修改即可。   |