首页 网络安全 安全学院 查看内容

dll注入系统进程(开源代码)

2008-10-31 01:17 573 0

摘要: 文章作者:zaroty信息来源:邪恶八进制信息安全团队(www.eviloctal.com)  看到别人年纪轻轻技术就了不得,自己却仍然是菜鸟一个,总是感到有点失落,所以在不停的学习,希望能减少点...
关键词: 大牛 nbsp dll 文章 程序 权限 PRIVILEGES 函数 LookupPrivilegeV 进程

文章作者:zaroty信息来源:邪恶八进制信息安全团队(www.eviloctal.com)  看到别人年纪轻轻技术就了不得,自己却仍然是菜鸟一个,总是感到有点失落,所以在不停的学习,希望能减少点自己与别人的差距。但是这些谈何容易呢?关于dll注入技术,网上已经有很多大牛分析的很透彻了。还有一次在邪八看到有一位朋友发了一个dll注入的程序,楼下的马上就有人回复说这是一个很古老的技术了。确实,对于众多的大牛,dll注入可能是4、5年前的技术了,但是对于像我这种小菜,还是很高深啊,这几天看了一些dll注入的文章,尝试着自己写了个dll注入的东西,并且成功的把自己前面写的 键盘记录dll 加载到了系统进程中,想起来也蛮有成就感(虽然大部分dll注入代码都是抄袭)。顺便又仿照大牛写了一个自己的dll注入和卸载工具(功能有所不同,后边会讲到)。现在写这篇文章的目的是什么呢?不是再把大牛的文章修改成自己的文章发表出来,而是说一下那位大牛没有讲到的地方,作为补充吧!李马大哥写的关于dll注入的文章地址:http://www.titilima.cn/index.php?action=show&id=65 希望大家看完上面的文章再来接着向下看,看完李马大哥的详细解释之后,你会对dll注入的原理有了很深的理解,想必你已经可以自己动手写一个dll注入的程序了吧!但是那篇文章并没有谈到关于权限提升的问题,下面就放出权限提升的代码:int AddPrivilege(const char *Name)    //提升权限{HANDLE hToken;TOKEN_PRIVILEGES tp;LUID Luid;if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken)){    MessageBox(NULL,"OpenProcessToken error","error",MB_OK);    return 1;}if (!LookupPrivilegeValue(NULL,Name,&Luid)){    MessageBox(NULL,"LookupPrivilegeValue error","error",MB_OK);    return 1;}tp.PrivilegeCount = 1;tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;tp.Privileges[0].Luid = Luid;if (!AdjustTokenPrivileges(hToken, 0, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL)){    MessageBox(NULL,"AdjustTokenPrivileges error","error",MB_OK);    return 1;}return 0;}很惭愧的说一声,这段代码也是修改自网络,作者已经找不到了。函数用法:AddPrivilege (你想要的权限)函数原理:这个函数首先用 OpenProcessToken 获得当前进程访问令牌的句柄,然后调用 LookupPrivilegeValue  得到相应权限的标识符,然后用 AdjustTokenPrivileges 来激活程序的权限。对于这些API我也不知道怎么解释才恰当,下面是MSDN上关于函数和结构体的地址,大家自己看吧:LookupPrivilegeValueOpenProcessTokenTOKEN_PRIVILEGESLUID_AND_ATTRIBUTESAdjustTokenPrivileges下面就晒晒自己写的 dll注入/卸载程序 :程序截图: DLLINSERT.png (16.57 KB)图片 2008-10-9 07:42程序功能:加载/卸载相应进程内的dll,包括系统进程(个别除外,如smss不加载kernel32.dll,所以不能用CreateRemoteThread 的方法,还有System Idle Process和System两个都不算是进程)。程序已知BUG:不能判断是否成功加载dll,具体来说是不能判断在远程线程中的LoadLibrary函数是否执行成功,但是不影响使用,只要dll路径写得正确,一般是不会出错的。程序下载 InsertDllDemo.rar (73.35 KB) InsertDllDemo.rar (73.35 KB)程序下载次数: 53 2008-10-9 07:42源码下载 InsertDll.rar (801.35 KB) InsertDll.rar (801.35 KB)源码下载次数: 138 2008-10-9 07:42 var tagarray = ['逆向工程','IIS','rsa','收集','飘絮','源代码','PeakSharp','隐藏驱动','百度','90hackit','ratproxy','XSS','捆绑','资源','架构','内网','讨论','ms08-067','ms08067','驱动编程','感染','机器狗','DDoS','内核编程','Microsoft','Overflow','WPS','Office','Buffer','Serv-U','DataExplorer','EasyRecovery','Ghost','数据恢复','手机号','属主','猎头','招聘','Oracle','核心溢出'];var tagencarray = ['%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B','IIS','rsa','%E6%94%B6%E9%9B%86','%E9%A3%98%E7%B5%AE','%E6%BA%90%E4%BB%A3%E7%A0%81','PeakSharp','%E9%9A%90%E8%97%8F%E9%A9%B1%E5%8A%A8','%E7%99%BE%E5%BA%A6','90hackit','ratproxy','XSS','%E6%8D%86%E7%BB%91','%E8%B5%84%E6%BA%90','%E6%9E%B6%E6%9E%84','%E5%86%85%E7%BD%91','%E8%AE%A8%E8%AE%BA','ms08-067','ms08067','%E9%A9%B1%E5%8A%A8%E7%BC%96%E7%A8%8B','%E6%84%9F%E6%9F%93','%E6%9C%BA%E5%99%A8%E7%8B%97','DDoS','%E5%86%85%E6%A0%B8%E7%BC%96%E7%A8%8B','Microsoft','Overflow','WPS','Office','Buffer','Serv-U','DataExplorer','EasyRecovery','Ghost','%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D','%E6%89%8B%E6%9C%BA%E5%8F%B7','%E5%B1%9E%E4%B8%BB','%E7%8C%8E%E5%A4%B4','%E6%8B%9B%E8%81%98','Oracle','%E6%A0%B8%E5%BF%83%E6%BA%A2%E5%87%BA'];parsetag();
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部