木马程序设计及植入技术本科生毕业论文.doc

上传人:仙人指路1688 文档编号:2401945 上传时间:2023-02-17 格式:DOC 页数:53 大小:278.50KB
返回 下载 相关 举报
木马程序设计及植入技术本科生毕业论文.doc_第1页
第1页 / 共53页
木马程序设计及植入技术本科生毕业论文.doc_第2页
第2页 / 共53页
木马程序设计及植入技术本科生毕业论文.doc_第3页
第3页 / 共53页
木马程序设计及植入技术本科生毕业论文.doc_第4页
第4页 / 共53页
木马程序设计及植入技术本科生毕业论文.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《木马程序设计及植入技术本科生毕业论文.doc》由会员分享,可在线阅读,更多相关《木马程序设计及植入技术本科生毕业论文.doc(53页珍藏版)》请在三一办公上搜索。

1、中南大学本科生毕业论文(设计)题 目木马程序设计及植入技术毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印

2、刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、

3、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日摘 要 黑客技术是当今最火热的一个领域,近年来,黑客攻击层出不穷,对网络安全构成了极大的威胁。木马是黑客的主要攻击手段之一,它通过渗透进入对方主机系统,从而实现对目标主机的远处操作, 破坏力相当之大。本文综合了木马的发展过程,木马的类型,分析了各种木马的特点,揭示了木马的隐藏方法、特点,及

4、木马的通信方式。本文简要分析了Windows操作系统的安全机制,防火墙,防病毒软件的工作原理和木马防范的方法,重点研究了一个木马的设计及Visual C+的实现。本文设计的不是通常木马C/S结构,它旨在发送键盘记录的文件,所以它有两个重点部分,本地信息收集部分,以及信息发送部分。信息收集主要是实现被植入机器的记事本程序的键盘记录,当记事本的程序运行时,程序中的键盘钩子就开始工作,并且记录下键盘上的记录。在信息发送部分,本文采用了发送email的形式,这样虽然比较原始,但是这种方式可以避免频繁地打开端口。同时本文在木马隐藏部分也做了不少工作。在Win9x与Windows NT方面都做的不错。在W

5、in9x下将木马注册为系统服务,并且使其在进程中消失,在Windows NT中,将其进程名变为svchost.exe,使得其足够能够迷惑系统管理员。木马运行后将自动将自身复制到系统目录下,并且将其命名为一个类似系统文件的名字,使得管理员在众多的系统文件中,不敢轻易删除文件。为了尽量防止杀毒软件和防火墙警报,并且努力避免被系统管理员的察觉,减少被发现的概率,在通信部分,采用严格控制邮件发送的次数和时间发送邮件的办法,并且在发送邮件前杀死防火墙进程,使其逃避防火墙的报警。关键词:,小四号加粗宋体,英文同 计算机安全, 木马 , 键盘钩子, Email, 进程隐藏ABSTRACTThe hacker

6、 technology nowadays is the angriest field. In recent years, the hackers attacks appear endlessly. it is a great threat to networks security. The Trojan horse is one of the hackers main attack means, that illegally gains access to another host computer system and to obtain secret information or moni

7、tor special operations .so it is quiet serious.This text comprehensive evolution of Trojan horse and the type of Trojan horse, it also analyses the characteristics of different Trojan horse and announce the method and characteristics of hiding , and the communication way of the Trojan horse.This tex

8、t has analyzed the security mechanism of Windows operating system and the principle of the fire wallfirewall,后同 and anti-virus software briefly , and make a key research on the design of a Trojan horse and realization with Microsoft Visual C+. This text doesnt designs the usually structure of C/S, a

9、iming at sending the file that the keylog is written down, so it has two key parts, one of them is part of local information gathering keyboard information , the other part is sending information. Information gathering is mainly to realize the notepad keyboard record of the computer which Trojan hor

10、se has been planted into 。标点统一英文when the procedure进程用process好些,后边相关改下 of the notepad being performed , the keyboard hook in the procedure begins to work, and record the keyboard. In the part of sending information, this text has used the form of sending email, though it seems to be more primitive ,

11、it is able to avoid of opening the port frequently.At the same time,this text made much effort on the part of Trojan horse hiding. What has been done in Win9x and Windows NT is very well. Register the hobbyhorse for the service of the system under Win9x, and make it disappeared in process, in Window

12、s NT , turn its process name into SVCHOST. EXE小写 , which is able to confuse the system manager.The Trojan horse will be copied to the systematic catalogue automatically after the hobbyhorse is operated, and will be named as similar one of the systematic files ,which make administrators dare not to d

13、elete the file easily among the numerous systematic file .To avoid antivirus software and fire walls alarm , the perception of the system manager, and to decrease probability of being percepted Trojan horse .前面的句子有问题,连不上In communication part, it controls the number of times and time of sending email

14、s strictly .Before sending Emails ,it kills the fire wall process , so that it can escape from the alarm of fire wall .KEYWORDS: Computer Security, Trojan horse, KeyLog, Email, Process Hiding英文单词间都空一格,标点紧跟单词,后空一格较美观,统一一下吧 目录第一章 绪论11.1 计算机安全背景11.2 木马的研究背景11.2.1 木马的产生背景11.2.2木马的发展过程21.2.3木马的未来21.3 WIN

15、DOWS安全机制31.4 研究内容与本文所做的工作31.5 本课题的设计目的及意义41.6 论文的组织5第二章 木马程序的总体设计及关键技术分析62.1 程序设计环境62.2 方案分析及基本思想62.3 程序总体结构72.3.1 木马程序的主体部分92.3.2 WINDOWS键盘事件监控原理102.3.3 电子邮件实现原理112.4 关键技术152.4.1 MFC152.4.2 动态链接库技术18第三章 木马程序的实现183.1 木马的主体部分183.1.1 自身复制模块183.1.2 自启动模块183.1.3 隐藏模块183.1.4 提升权限模块183.1.5 杀死目标进程模块183.1.6

16、 判断发送条件183.2 键盘记录的具体实现183.2.1 钩子的制作183.2.2 钩子的使用183.3 发送邮件的实现183.3.1 SMTP协议的会话流程183.2.2 邮件的格式化183.3.3 由Socket套接字为SMTP提供网络通讯基础183.3.4 SMTP会话应答的实现183.3.5 base64编码183.4 木马的捆绑18第四章 “木马”病毒的防范184.1 木马的入侵184.2 如何发现自己电脑中的木马184.3 删除木马184.4 使用防火墙184.5 使用杀毒软件184.5.1 杀毒基本原理184.5.2 经典杀毒引擎介绍184.6 注意事项18第五章 结束语18参

17、考文献44致谢45目录可以考虑单独编页码,使用分节即可实现第一章 绪论1.1 计算机安全背景计算机网络技术的飞速发展和普及应用,使人们充分享受网络带来的种种便利, 与此同时, 也对网络与系统安全提出了更高的要求。近年来,随着社会及家庭网络应用的大量普及,计算机信息安全越来越成为人们重视与关心的焦点问题。在用户享受宽带网络带来的便利与快捷的同时,也为各类严重威胁计算机信息安全的病毒提供了方便之门。据有关部门连续三年调查表明,2001年约73%的计算机用户曾感染过病毒,其中,感染三次以上的用户高达59%;到了2002年,受感受的用户上升到近84%;2003年上半年又增加到85%,并呈现出继续上升趋

18、势。 在众多病毒当中,木马病毒由于具备能够隐蔽地随时向外发送指定信息,甚至具备远程交互能力而成为黑客们钟爱的后门工具。臭名昭著的BO , 使人谈“冰”色变的冰河,号称“地狱巴士”的NetBus,“网络间谍” 前边空格勇逗号或者其他标点“广外女生”等等都是经典的木马。木马作为黑客的攻击手段之一, 它对系统具有强大的控制功能。一个功能强大的木马一旦被植入您的机器, 攻击者就可以像操作自己的机器一样控制您的机器, 甚至可以远程监控您的所有操作, 其破坏力是不容忽视的。对于用户而言,木马病毒的危害是巨大的,它使用户的计算机随时暴露于黑客的控制监视之下,黑客们可以轻易地窃取自己感兴趣的数据并传输到指定的

19、计算机中,这较之传统病毒只能破坏用户数据的危害又大了许多。1.2 木马的研究背景1.2.1 木马的产生背景特洛伊木马(Trojan Horse,以下简称木马),名称来源于古希腊的特洛伊木马的故事,希腊人围攻特洛伊城,很多年不能得手后想出了木马的计策,他们把士兵藏匿于巨大的木马中。在敌人将其作为战利品拖入城内后,木马内的士兵爬出来,与城外的部队里应外合而攻下了特洛伊城。计算机木马的设计者套用了同样的思路,把木马程序插入正常的软件、邮件等宿主中。在受害者执行这些软件的时候,木马就可以悄悄地进入系统,向黑客开放进入计算机的途径。木马是一种基于远程控制的黑客工具,通过互联网资源隐蔽地对远程目标主机进行

20、非授权的访问。木马对系统具有强大的控制功能,操纵木马的人可以通过网络像使用自己的机器一样远程控制木马所在的目标主机,甚至可以远程监控受控主机上的所有操作。1.2.2木马的发展过程木马的产生阶段和发展,到目前为止,木马的发展已经经历了五代:(1)第一代木马只是实现简单密码窃取,发送等,在隐藏和和通信方面均无特别之处。(2)第二代木马的典型代表是冰河,它以文件关联方式启动通过电子邮件发送信息,在木马技术发展上开辟了新的篇章。(3)第三代木马的信息传输方式有所突破,采用ICMP协议,增加了查杀的难度。(4)第四代木马在进程隐藏方面获得了重大的突破,采用插入内核的嵌入方式,利用远程插入线程技术,嵌入D

21、LL线程,或挂接PSAPI等,实现木马程序的隐藏,利用反弹端口技术突破放火墙限止,在Windows NT/2000下取得了良好的隐藏效果。(5)第五代木马和病毒紧密结合,利用操作系统漏洞,直接实现感染传播的目的,而不必像以前木马那样需要欺骗用户主动激活,例如最近新出现的类似冲击波病毒的木马“噩梦2”。1.2.3木马的未来(1) 传统的TCP 端对端连接会被抛弃, 未来木马要么采用非TCP/UDP 的IP 族数据包, 如ICMP 方式, 增加了查杀的难度, 它们十分隐蔽, 如果不对数据包详细分析, 很难查出木马入侵; 要么采用寄生TCP端口(例如: 我们进行TCP操作时打开21号端口, 当我们进

22、行FTP操作时, 木马也可同时通过21 号端口与服务端进行连接) , 这样木马传输的数据包和正常的数据包很难区分开来。(2) 在传播方式上, 未来木马会和病毒一样,采用交叉式迅速大规模扩散, 并且运行方式越来越隐蔽。(3) 将更注重底层的通讯编程, 如针对网卡和Modem 的通讯编程, 这样可以避开防火墙的监视和过滤。(4)采取虚拟设备驱动程序(VXD) 及动态链接库(DLL) 技术, 伪装隐藏方式更隐蔽。据悉, 目前已有采用此种方式编写的木马。采用这种方式编写的木马与一般的木马不同, 它基本上摆脱了原有的木马模式, 而采用DLL 动态嵌入远程线程技术。这样做的结果是: 系统中没有增加新的文件

23、, 不需要打开新的端口, 没有新的进程。在正常运行时木马几乎没有任何的症状,而一旦木马的控制端向被控端发出特定的信息后, 隐蔽的程序就立即开始动作。1.3 Windows安全机制黑客利用木马对网络上的主机进行攻击,是在其充分认识了网络操作系统中的安全体系之后进行的。那么,同样应付他们的攻击对于我们同样重要。计算机网络中常用的安全技术有:主机安全技术、身份认证技术、访问控制技术、密码技术、防火墙技术、安全审计技术和安全管理技术。当今Windows NT系统是最火热的系统,下面就以Windows NT为例简单讲述。1. Windows NT中的对象是NT操作系统中的基本元素对象可以是文件、目录、存

24、储器、驱动器、系统程序或Windows中的桌面等。2.Windows NT 4.0的安全性设计目标在设计Windows NT结构的时候,微软把目标定位于一个具有各种内在安全功能的强大而坚实的网络操作系统。3. 使用Windows NT的实现网络安全策略Windows NT 4.0的安全结构由3个基本安全子系统的模块组成,即身份认证、信任确定和审计跟踪。对于每一个机构,任何操作系统的安全机制都不是自动生成的,因此,在使用Windows NT之前必须先制定它们的安全策略。这些策略需要进行详细地说明,在明确了该机构对访问控制信息的保护及审核方面的具体要求之后,还需要对所制定的安全策略进行正确地配置,

25、并实现了对象的访问控制之后,才能说用NT构建一个高度安全地系统。由此可见,只有将企业的安全策略和Windows NT底层的安全机制有机地结合起来,才能充分发挥Windows NT的各项安全特性。4. Windows NT的安全机制微软的Windows NT Server提供了安全管理的功能,以及在企业级网络中实现和管理这些功能的工具。()Windows NT的安全子系统有:本地安全权威、安全账户管理、安全访问监督等。(2)Windows NT提供的安全机制有:登录过程控制、存取控制、存取标识和存取控制列表等。1.4 研究内容与本文所做的工作综述现有流行的木马技术,分析和总结木马设计的一般原理;

26、使用VC设计实现一良性木马程序,要求木马植入过程尽可能避免常见的防火墙及杀毒软件报警。要求木马程序激活后能够绕过常见的防火墙及防毒软件(或结束此类进程)并开始工作; 要求木马程序每隔一段时间发送一次植入机器记事本程序的键盘记录。本文首先阐述了木马的产生背景,发展过程,以及木马的未来的发展方向。分析了网络安全的现状,和严峻性。之后分析了一个简单木马的实现相关技术背景,和如何防御木马的入侵,重点研究了一个键盘记录类型的木马的实现。本文首先要实现木马的最基本功能,既信息的盗取,和信息的发送。信息的盗窃是要实现在记事本运行的过程中记录键盘的记录。那么在检视到记事本已经运行,键盘记录模块的功能便能记录键

27、盘的记录。之后,便是如何将信息发送出去。发送部分可以选择客户/服务器类型的,在被植入电脑的服务器端程序将信息通过端口发送到正在被监听客户端。发送EMAIL也是非常通用和有效的方法,设置好EMAIL地址,服务器将记录下的文件以EMAIL的形式发送到指定的邮箱去。木马的隐藏与防止杀毒软件和防火墙的追杀和拦截同样是木马的最重要的部分。本文将木马生成的美丽的诱人的图标,吸引受害者安装。木马将自己隐藏在系统目录下并且迷惑系统管理员;木马通过修改注册表中的键值实现木马的自启动。在进程进程隐藏,在Win9x下通过注册为系统服务在进程中隐藏,在Windows NT下更改进程名为Windows NT下多个SVC

28、HOST.EXE名字迷惑管理员。信息发送使用EMAIL的形式,通过严格控制EMAIL的发送时间和次数,并且在发送邮件前杀死防火墙进程的方式避免防火墙的报警。1.5 本课题的设计目的及意义本课题涉及到的是现在不管是政府机构,公司,还是个人都关心的网络安全问题。当前的这个问题对于每个人都是首先要面对的问题。那么我们应当怎么去应对这个问题呢,“知己知彼,百战不殆”,只有知道黑客是怎么样去攻击,怎样实现他们的木马。在熟悉木马的各方面的实现原理、关键技术后,就能基本上对付黑客的攻击,维护自己的利益,保证自己的机密信息不被泄漏,把自己损失降到最低点。本文介绍了一些最基本的网络及个人电脑的安全问题,还设计实

29、现了一个简单木马,并且还介绍了木马程序的高级技巧和未来的趋势。本文介绍木马编程的一般技巧,并不是教人去如何攻击他人,目的只是让大家了解木马的工作原理和简单的编写步骤,以便更好地防范和清除木马,维护我们自己应有的网络安全。本次设计侧重于设计实现一个简单木马。根据木马程序目的性,将木马分为隐藏部分、信息收集部分和信息发送部分。它基本功能就是键盘记录和发送记录文件。该木马是在Windows平台下,利用Visual C6.0进行编程,大量调用Windows API进程编程,并且使用了DLL技术进行模块化设计。这种设计方法有利于锻炼Windows 程序员模块设计能力,和不同模块的接口问题。这不仅可以使我

30、们学习和理解到网络安全方面的基本知识、木马的基本原理和实现方法,而且有利于对于Windows编程有更深入的理解,拓宽知识面,增强我们对网络安全防范的意识,不管是对于学习、生活还是生产实践都有很大的意义。1.6 论文的组织全文共分5章,首先讲述木马产生的背景,发展情况,和未来木马技术以及Windows的安全机制基本原理。之后重点研究实现了一个键盘记录类型的木马,在研究一个木马实现后,讲述怎样去防范木马病毒。第一章为绪论,介绍木马发展情况,简单讲述计算机的安全机制,以及该研究的目的及意义。第二章介绍木马的设计思想、总体结构,开发方案。第三章详细介绍本文研究的重点部分木马的设计与实现。第四章讲述木马

31、病毒的防范。第五章是总结。对本文所做的工作进行总结,并阐述进一步的研究工作。 第二章 木马程序的总体设计及关键技术分析这部分主要介绍本木马的程序设计所在的程序设计环境和程序设计的相关关键技术。根据本木马设计的基本出发点:顺利注入目标机器,尽量隐藏自身,不被查杀软件的报警,避免系统管理员的察觉,顺利的把记事本程序运行时的键盘记录发送出来。首先分析了当前一些木马的特点,确定本木马程序实现方案。之后分析了要实现该方案的关键技术。2.1 程序设计环境本木马的程序设计的软硬件环境如下:硬件环境:CPU 1.8G ;内存 256DDR。软件环境:Windows XP 操作系统,开发工具采用Visual C

32、6.0。 其中在系统目录的还添加了psapi.lib和psapi.h文件。2.2 方案分析及基本思想当前木马的种类繁多,木马的形式与其功能有着密切的关系。究竟采用那种形式与木马设计者的目标有着直接的关系,例如要获得被侵入机器的控制权,查阅目标机器中的重要文献,上传病毒,下载有用的机密文件,或者恶性的格式化机器硬盘。则一般采用网络客户/服务程序类型。根据本木马设计的基本目的:隐藏自身,把记事本程序运行时的键盘记录发送出来。下面提出了基于Visual C6.0开发木马设计思想:1点号统一,其后标题文字监空格要加全加捆绑文件由于本木马采用模块化设计,将键盘记录和记录信息发送功能分别封装在几个DLL(

33、动态链接库)中,只提供几个对外的函数接口,于是在程序主体部分,需要实现这些功能的时候,只要装入动态链接库就行了,调用要实现功能的函数即可。在程序运行时候,DLL必须要跟程序主体的可执行文件在同一目录下。所有的功能才能正常的实现。所以要将这两个DLL文件和一个EXE文件捆绑起来变成一个可执行文件,在当然在进入目标计算机时候,只要该文件被执行,三个文件将释放到同一系统目录下,并且执行木马主体的EXE文件。2伪装隐藏木马木马它是一种基于远程控制的黑客工具, 具有隐蔽性和非授权性的特点。隐蔽性是指为了防止木马被发现,采用各种手段伪装隐藏木马。木马在工作时候不能出现主界面,木马必须在任务栏中隐藏,木马要

34、复制自身到隐蔽的地方。给木马选一个好图标和一个好名字。木马要尽量在Windows的各种版本中的进程中隐藏。3. 自启动木马木马的运行不会指望用户每次启动系统后, 点击木马图标来运行木马服务端。Windows的自启动方式其实有许多方式。除了一些常见的启动方式之外,还有一些非常隐蔽的可用来启动文件的方式。木马要做的是如何在每次用户启动时自动装载服务端。Window s 支持多种的在系统启动时自动加载应用程序的方法, 在Windows系统下,木马可以通过注册表、Win.ini、system.ini、Autoexec.bat和Config.sys、捆绑替换系统文件、启动菜单及程序配置.ini文件来自我

35、启动运行。本文通过修改注册表,实现了木马的自启动。4.利用键盘钩子实现对键盘的记录钩子的本质是一段用以处理系统消息的程序,通过系统调用,将其挂入系统。钩子的种类有很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息、得到对此消息的控制权。此时在钩子函数中就可以对截获的消息进行加工处理,甚至可以强制结束消息的传递。键盘记录就是使用钩子截获键盘消息,钩子可以实现下面的功能:把截获的消息复制一份自己保留,在把原消息原封不动发出去;把截获的到的消息扣留;把截获到的消息改变后发出去.为了不使原来的程序出现错误,我们采用第一条作用.分为两步实现:钩子的制作

36、和钩子的使用。5.基于SMTP协议的电子邮件形式实现木马的通信。由于本木马主要功能就是发送记事本程序运行时的键盘记录,不用对被植入机器的进行如打开文件夹,上传,下载,以及格式化硬盘等等控制。所以EMAIL式本木马是很好的选择,它避免了通常的网络客户/服务程序形式,以及频繁的开端口进行实时监控。因为这样很容易被一些防杀软件查杀,也很容易引起管理员的察觉。而利用EMAIL就能很好的避免这一缺点。它的原理就是在被植入方中的木马程序选择一个有利时机瞬时发送记录键盘模块生成的文件到指定的EMAIL地址上去,并且尽量避免防火墙的警告。2.3 程序总体结构本木马的主要功能就是记录键盘记录,发送键盘记录,并尽

37、量隐藏以避免被察觉。程序基本工作作图如图2-1所示:下边的图我看到乱,只要打印预览正常就行,绘图对象位置微调用CTRL+方向键开始点击木马进入被植入机器符合发送条件杀死防火墙进程结束图2-1 木马工作总图记录键盘记录发送记录文件启动木马YN通过木马的工作流程对其有个初步认识,那么程序的结构根据木马的功能三个重要组成部分:键盘记录部分(由test3.dll封装实现功能),邮件发送部分(由smtp_dll.dll封装实现功能),木马主体部分。木马的结构图如下: 图2-2 木马的结构总体发送EMAIL模块(smtp_dll.dll)键盘记录模块(test3.dll)隐藏判断发送条件提高权限杀死进程复

38、制自身木马主体装载装载自启动2.3.1 木马程序的主体部分程序的主体部分是包括装载键盘记录和发送邮件封装的动态链接库,以及确定木马启动方式,和各种隐藏,记录文件,发送邮件的功能。木马主体部分通过装载键盘记录的动态链接库“test3.dll”,安装键盘记录的钩子;还静态装载了发送邮件的动态链接库smtp_dll.dll。捆绑后的木马一旦点击必须复制自身到系统目录下,隐藏自己,并且开始运行。木马具有非授权性,因此要隐藏自己,在隐藏模块中,它通过各种方法隐藏程序的显示窗口,在任务栏中隐藏,并且使其在Windows98进行进程隐藏,在Windows 2000和Windows XP等更高的系统中隐藏进程

39、。同时在主体部分的判断发送条件模块,检查是否符合发送邮件的条件,可以任意设置发送邮件条件,如文件长度为1k,发送时间段为上午11点。如果符合就先杀死天网防火墙的进程,并且初始化邮件发送邮件,并且把发送后的文件清空,继续记录键盘记录。否则就不发送记录文件,继续记录。通过判断系统类型,木马是个特殊的程序,它需要足够的权限来实现比较特殊的功能,比如杀死防杀软件的进程,就必须提高该木马程序的权限,通过提高权限模块提高权限,该功能在提高权限模块中实现。同时木马需要杀死其不希望的程序,在杀死进程模块中就要实现两个功能:通过进程名就能找到该进程在系统工作的PID,那么找到PID后,就能够通过PID杀死目标进

40、程,如天网防火墙等等。2.3.2 WINDOWS键盘事件监控原理WINDOWS的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接各种反调函数(HOOK)的功能。这种挂钩函数(HOOK)类似扩充中断驱动程序,挂钩上可以挂接多个反调函数构成一个挂接函数链。系统产生的各种消息首先被送到各种挂接函数,挂接函数根据各自的功能对消息进行监视、修改和控制等,然后交还控制权或将消息传递给下一个挂接函数以致最终达到窗口函数。1. 在WINDOWS键盘事件上挂接监控函数的方法WINDOW下可进行挂接的过滤函数种类WH_CALLWNDPROC窗口函数的过滤函数WH_CBT计算机培训过滤函数WH_DE

41、BUG调试过滤函数WH_GETMESSAGE获取消息过滤函数WH_HARDWARE硬件消息过滤函数WH_JOURNALPLAYBACK消息重放过滤函数WH_JOURNALRECORD消息记录过滤函数WH_MOUSE鼠标过滤函数WH_MSGFILTER消息过滤函数WH_SYSMSGFILTER系统消息过滤函数WH_KEYBOARD键盘过滤函数其中键盘过滤函数是最常用最有用的过滤函数类型,不管是哪一种类型的过滤函数,其挂接的基本方法都是相同的。WINDOW调用挂接的反调函数时总是先调用挂接链首的那个函数,因此必须将键盘挂钩函数利用函数SetWindowsHookEx()将其挂接在函数链首。至于消息

42、是否传递给函数链的下一个函数是由每个具体函数功能确定的,如果消息需要传统给下一个函数,可调用API函数的CallNextHookEx()来实现,如果不传递直接返回即可。挂接函数可以是用来监控所有线程消息的全局性函数,也可以是单独监控某一线程的局部性函数。如果挂接函数是局部函数,可以将它放到一个.DLL动态链接库中,也可以放在一个局部模块中;如果挂接函数是全局的,那么必须将其放在一个.DLL 动态链接库中。挂接函数必须严格按照下述格式进行声明,以键盘挂钩函数为例:int FAR PASCAL KeyboardProc( int nCode,WORD wParam,DWORD lParam) 其中

43、KeyboardProc为定义挂接函数名,该函数必须在模块定义文件中利用EXPORTS命令进行说明;nCode决定挂接函数是否对当前消息进行处理;wParam和lParam为具体的消息内容。2键盘事件挂接函数的安装与下载在程序中可以利用函SetWindowsHookEx()来挂接过滤函数,在挂接函数时必须指出该挂接函数的类型、函数的入口地址。SetWindowsHookEx(iType,iProc,hInst,iCode) 其中iType为挂接函数类型,键盘类型为WH_KEYBOARD,iProc为挂接函数地址,hInst 为挂接函数链接库实例句柄,iCode为监控代码0表示全局性函数。如果挂

44、接函数需要将消息传递给下一个过滤函数,则在该挂接函数返回前还需要调用一次CallNextHookEx()函数,当需要下载挂接函数时,只要调用一次UnhookWindowsHookEx(iProc)函数即可实现。如果函数是全局性的,那么它必须放在一个.DLL动态链接库中,这时该函数调用方法可以和其它普通.DLL函数一样有三种:(1)在DEF定义文件中直接用函数名或序号说明:EXPORTS WEP 1 RESIDENTNAME InitHooksDll 2 InstallFilter 3 KeyboardProc 4 用序号说明格式为:链接库名.函数名(如本例中说明方法为KEYDLL.Keyboa

45、rdProc)。(2)在应用程序中利用函数直接调用:首先在应用程序中利用LoadLibrary(LPSTR 链接库名)将动态链接库装入,并取得装载库模块句柄hInst,然后直接利用GetProcAddress(HINSTANCE hInst,LPSTR 函数过程名)获取函数地址,然后直接调用该地址即可,程序结束前利用函数FreeLibrary( )释放装入的动态链接库即可。(3)利用输入库.LIB方法利用IMPLIB.EXE程序在建立动态链接库的同时建立相应的输入库.LIB,然后直接在项目文件中增加该输入库。3. WINDOWS挂钩监控函数的实现步骤WINDOWS挂钩函数只有放在动态链接库DL

46、L中才能实现所有事件的监控功能。在.DLL 中形成挂钩监控函数基本方法及其基本结构(1)首先声明DLL中的变量和过程;(2)然后编制DLL主模块LibMain(),建立模块实例;(3)建立系统退出DLL机制WEP()函数;(4)完成DLL初始化函数InitHooksDll(),传递主窗口程序句柄;(5)编制挂钩函数KeyboardProc(),在其中设置监控功能,并确定继续调下一个钩子函数还是直接返回WINDOWS应用程序。(6)在WINDOWS主程序中需要初始化DLL并安装相应挂钩函数,由挂接的钩子函数负责与主程序通信;(7)在不需要监控时由下载功能卸掉挂接函数。2.3.3 电子邮件实现原理电子邮件服务在网络应用中也起到非常重要的作用。如同其他的网络服务,电子邮件系统也有其使用的传输协议,包括SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、POP(Post Office Protocol,邮局协议)和IMAP(Internet Message Access Protocal,消息访问协议)等,其中SMTP负责邮件的发送, POP3负责邮件的接收。在本文中,我们只需要木马发送邮件到指定的邮箱上去,邮箱使用的公用的免费邮箱,所以我们只需要发送邮件,并不需要负责邮件接收的POP3协议。下面讲述以SMTP协议为研究对象,在

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号