计算机毕业论文,毕业论文,毕业设计 毕业论文免费检测 知网论文检测
当前位置: 骆驼论文网 > 信息安全 >

无进程无端口DLL木马

时间:2011-04-11 12:50来源: 骆驼毕业论文网 作者:admin
摘 要 随着网络技术的发展,越来越多的人开始接触到互联网。在人们感叹互联网功能强大的同时,面对了越来越多的网络信息安全的问题。网络木马程序对于网络信息安全是一个极大的挑战,它不同于计算机病毒,它能够盗取他人主机上的信息,或者拦截、监听、篡改

QQ交谈计算机毕业设计,毕业设计,毕业论文,计算机毕业论文

摘  要
随着网络技术的发展,越来越多的人开始接触到互联网。在人们感叹互联网功能强大的同时,面对了越来越多的网络信息安全的问题。网络木马程序对于网络信息安全是一个极大的挑战,它不同于计算机病毒,它能够盗取他人主机上的信息,或者拦截、监听、篡改他人发布到互联网上的信息。
DLL木马正是在研究木马程序的工作原理和工作方式的前提下,利用线程插入技术设计并开发出一种动态连接的木马,并且实现无进程和无端口的特点。木马设计主要侧重于将进程隐藏、端口隐藏和破坏word文档这三个功能实现并且有机的结合起来,对木马的远程注入有待进一步研究。
论文介绍了木马程序的工作原理和实现的功能,描述了主要的API函数,并且总结了一些查杀DLL木马的方法。

关键词:木马;线程插入;动态链接库;无进程
目录
                                                    论文总页数:19页                                                              
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 1
2 相关理论基础 1
2.1 动态链接技术 1
2.2 应用编程接口 API 2
2.3 木马的有关知识 3
2.3.1 木马的定义 3
2.3.2 木马发展的方向 3
2.3.3 木马程序分类 4
3 需求分析 4
3.1 功能需求 4
3.2 性能需求 5
3.3 开发环境需求 5
3.3.1 单机模式 5
3.3.2 Visual C++ 6.0开发软件 6
4 设计与实现 6
4.1 系统结构原理的介绍 6
4.1.1 木马的主体 6
4.1.2 木马的注入 6
4.1.3 木马的启动 6
4.1.4 系统的各结构关系 7
4.2 具体设计的步骤及相关函数 8
4.2.1 木马功能的设计 8
4.2.2 木马的注入 9
4.2.3 木马的启动 12
4.3 木马的防治 13
5 系统测试 15
5.1 测试环境: 15
5.2 测试效果: 15
5.3 测试结果: 16
结    论 16
参考文献 17
致    谢 18
声    明 19

2 相关理论基础
2.1  动态链接技术
1.DLL的定义
Windows系统使用一种新的链接技术,这种被称为“动态链接”(Dynamic Link)的新技术同样也是使用库文件,微软称它们为“动态链接库”——Dynamic Link Library,DLL的名字就是这样来的。动态链接本身和静态链接没什么区别,也是把通用代码写进一些独立文件里,但是在编译方面,微软绕了个圈子,并没有采用把库文件加进程序的方法,而是用了把库文件做成已经编译好的程序文件,给它们开个交换数据的接口,程序员写程序的时候,一旦要使用某个库文件的一个功能函数,系统就把这个库文件调入内存,连接上这个程序占有的任务进程,然后执行程序要用的功能函数,并把结果返回给程序显示出来,在我们看来,就像是程序自己带有的功能一样。完成需要的功能后,这个DLL停止运行,整个调用过程结束。微软让这些库文件能被多个程序调用,实现了比较完美的共享,程序员无论要写什么程序,只要在代码里加入对相关DLL的调用声明就能使用它的全部功能。
2. DLL 的类型
当您在应用程序中加载 DLL 时,可以使用两种链接方法来调用导出的 DLL 函数。这两种链接方法是加载时动态链接和运行时动态链接。
加载时动态链接:
在加载时动态链接中,应用程序像调用本地函数一样对导出的 DLL 函数进行显式调用。要使用加载时动态链接,请在编译和链接应用程序时提供头文件 (.h) 和导入的库文件 (.lib)。当您这样做时,链接器将向系统提供加载 DLL 所需的信息,并在加载时解析导出的 DLL 函数的位置。
运行时动态链接
在运行时动态链接中,应用程序调用 LoadLibrary 函数或 LoadLibraryEx 函数以在运行时加载 DLL。成功加载 DLL 后,可以使用 GetProcAddress 函数获得要调用的导出的 DLL 函数的地址。在使用运行时动态链接时,无需使用导入库文件。


2.3  木马的有关知识
2.3.1 木马的定义
木马:指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。

2.3.2 木马发展的方向
1. 跨平台性:主要是针对windows系统而言,木马的使用者当然认为一个木马可以在95/98下使用,在NT、windows2000下也可以使用更好。在95/98下也许大家没感觉,但NT和windows2000都具有了权限的概念,这和95/98是不同的,黑客NT、windows2000的木马需要更高的手段,如控制进程等,现在的一些木马也的确做到了这一点。
2. 模块化设计:似乎模块化设计是一种潮流,winamp就是模块化的典范,现在的木马也有了模块化设计的概念,像bo、net bus、sub7等经典木马都有一些优秀的插件在纷纷问世就是一个很好的说明。
3. 更新更强的感染模式:传统的修改ini文件和注册表的手法已经不能适应更加隐秘的需要,目前的很多的木马的感染方式已经开始在悄悄转变,像前一阶段的YAI事件就给了我们很多的启发,像病毒一样的感染,感染windows下的文件,我认为这件事对木马设计者们有很多的启发。
4. 即时通知:木马是否已经装入?目标在哪里?如果中招的人是使用固定IP的话,还能够补救,如果目标使用的是动态IP那么怎么办?如果要进行扫描,速度太慢,现在的木马已经有了即时通知的功能,如IRC,ICQ通知等,但还是太少,我不使用ICQ,也不是每次都用IRC,但是以后会更加的完善的,也许说不定某天木马们的即时通知功能变成了一个专门的软件也说不定。
5. 更强更多的功能:每个人都是不满足的,每当出现强大功能的时候,我们就期望更强大的功能,以后的木马的功能会如何呢?我也不大清楚,也许会让大家大吃一惊的。

4 设计与实现
4.1  系统结构原理的介绍
4.1.1 木马的主体
千万别把木马模块写得真的像个API库一样,这不是开发WINAPI。DLL木马可以导出几个辅助函数,但是必须有一个过程负责主要执行代码,否则这个DLL只能是一堆零碎API函数。 如果涉及一些通用代码,可以在DLL里写一些内部函数,供自己的代码使用,而不是把所有代码都开放成接口,这样它自己本身都难调用了,更不可能发挥作用。 DLL木马的标准执行入口为DllMain(),所以必须在DllMain()里写好DLL木马运行的代码,或者指向DLL木马的执行模块。

4.1.2 木马的注入
 Windows中,每个进程都有自己的私有内存空间,别的进程是不允许对这个私人领地进行操作的,但是,实际上我们仍然可以利用种种方法进入并操作进程的私有内存,这就是动态嵌入,它是将自己的代码注入正在运行的进程中的技术。动态嵌入有很多种,最常见的是钩子、API以及远程线程技术,现在的大多数DLL木马都采用远程线程技术把自己挂在一个正常系统进程中。其实动态嵌入并不少见,罗技的MouseWare驱动就挂着每一个系统进程。
远程线程技术就是通过在另一个进程中创建远程线程(Remote Thread)的方法进入那个进程的内存地址空间。在DLL木马的范畴里,这个技术也叫做“注入”,当载体在那个被注入的进程里创建了远程线程并命令它加载DLL时,木马就挂上去执行了,没有新进程产生,要想让木马停止惟有让挂接这个木马DLL的进程退出运行。

4.1.3 木马的启动
直接把这个DLL加入系统启动项目是不可以的。前面说过,DLL不能独立运行,所以无法在启动项目里直接启动它。要想让木马跑起来,就需要一个EXE使用动态嵌入技术让DLL搭上其他正常进程的车,让被嵌入的进程调用这个DLL的DllMain函数,激发木马运行,最后启动木马的EXE结束运行,木马启动完毕。
启动DLL木马的EXE是个重要角色,它被称为Loader,如果没有Loader,DLL木马就是破烂一堆,因此,一个算得上成熟的DLL木马会想办法保护它的Loader不会那么容易被毁灭。Loader可以是多种多样的,Windows的rundll32.exe也被一些DLL木马用来做了Loader,这种木马一般不带动态嵌入技术,它直接挂着rundll32进程运行,用rundll32的方法(rundll32.exe [DLL名],[函数] [参数])像调用API一样去引用这个DLL的启动函数激发木马模块开始执行,即使你杀了rundll32,木马本体还是在的,一个最常见的例子就是3721中文实名,虽然它不是木马。
注册表的AppInit_DLL键也被一些木马用来启动自己,如求职信病毒。利用注册表启动,就是让系统执行DllMain来达到启动木马的目的。因为它是kernel调入的,对这个DLL的稳定性有很大要求,稍有错误就会导致系统崩溃,所以很少看到这种木马。

 

参考文献
[1] 朱友芹.新编Windows API 参考大全[M].北京:电子工业出版社,2002年。
[2] 马建红.Visual C++程序设计与软件技术基础[M].北京:中国水利水电出版社,2004年。
[3] 钱能.C++程序设计教程[M].北京:清华大学出版社,1999年。
[4] 李光明.Visual C++6.0经典实例大制作[M].北京:中国人事出版社,2001年。
[5] 潘景平.软件系统开发技术[M].西安:西安电子科技大学出版社,2000年。
[6] 张仕斌,谭三,易勇,蒋毅.网络安全技术[M].北京:清华大学出版社,2004年。
[7] 将建春.黑客攻击机制与防范[M].北京:机械工业出版社,2002年。
[8] 郭志峰.阻止黑客进攻防卫技术[M].北京:机械工业出版社,2003年。
 

 

本文内容只是论文部分简介,如需了解更多详情请咨询本站客服! QQ交谈计算机毕业设计,毕业设计,工程硕士论文,计算机毕业论文
毕业论文搜集整理:毕业论文网 计算机毕业设计 计算机毕业论文 毕业设计


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
计算机毕业设计
计算机毕业论文
论文发表