计算机网络课程设计木马程序设计与实现Word格式文档下载.doc
《计算机网络课程设计木马程序设计与实现Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《计算机网络课程设计木马程序设计与实现Word格式文档下载.doc(41页珍藏版)》请在冰豆网上搜索。
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字2011年7月1日
课程设计任务书
城南学院通信工程专业
课程名称
计算机网络
时间
2010-2011学年第二学期18~19周
学生姓名
指导老师
题目
木马程序的设计与实现
主要内容:
(1)查找木马程序主要技术及相应软件;
(2)比较他们的技术及优缺点;
(3)实现一个简单的木马程序;
(4)提交文档;
要求:
(1)按要求编写课程设计报告书,能正确阐述设计结果。
(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。
(3)学会文献检索的基本方法和综合运用文献的能力。
(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。
应当提交的文件:
(1)课程设计报告。
(2)课程设计附件(源程序、各类图纸、实验数据、运行截图等)
第38页共38页
《木马程序的设计与实现》
学生姓名:
指导老师:
摘要本文在研究著名木马BO2K技术的基础上设计了一款远程控制木马。
该木马程序能够通过客户端对远程主机进行控制和监视,服务端可以自动连接客户端。
另外该木马程序还包括远程文件操作(文件复制、拷贝、删除、下载、上传等),远程系统控制(重启、屏幕锁定、启动项管理),网络连接控制,远程进程管理和键盘监控等功能。
最后本文实现了这一款木马程序,并对其进行了测试。
测试结果显示该木马程序实现了所有的功能,能够对远程主机进行控制。
关键字客户端/服务端;
BO2K;
远程控制
1引言
随着互联网技术的迅猛发展,网络给人们带来了很多便利,日益发达的网络产品越来越多。
伴随这样的发展,随之而来的是越来越多的帐号与密码,而这些帐号与密码背后伴随的是很多的经济价值。
在这种状况下,很多人想尽一切办法的去找取配套的密码与帐号,所以为了使帐号与密码更加安全,有必要去研究木马的工作原理。
1.1课程设计目的
(1)掌握木马编程的相关理论,理解木马工作的基本原理,学会运用C++进行编程实现。
(2)加深对课本知识的理解,并运用所学理论和方法进行一次综合性的设计训练,同时掌握工程设计的具体步骤和方法,从而培养独立分析问题和解决问题的能力,提高实际应用水平。
(3)以所学知识为基础,针对具体设计问题,充分发挥自己的主观能动性,独立地完成课程设计分配的各项任务,并通过课程设计培养严谨的科学态度和认真的工作作风。
1.2课程设计内容
1.3课程设计要求
2设计原理
2.1木马的背景介绍
《荷马史诗》中所描述的那场特洛伊战争想必很多读者都已经很熟悉了。
传说古希腊士兵藏在木马内进入了特洛伊城,从而占领了敌方城市,取得了战争的胜利。
这与中国的“明修栈道,暗渡陈仓”之计有着异曲同工之妙。
网络社会中的“特洛伊木马”并没有传说中的那样庞大,它们是一段精心编写的程序。
与传说中的木马一样,它们会在用户毫不知情的情况下悄悄地进入用户的计算机,进而反客为主,窃取机密数据,甚至控制系统。
特洛伊木马(Trojan)[1](也叫黑客程序或后门病毒)是指隐藏在正常程序中的一段具有特殊功能的恶意代码,具备破坏和删除文件、发送密码、记录键盘和攻击等功能,会使用户系统被破坏甚至瘫痪。
恶意的木马程序具备计算机病毒的特征,目前很多木马程序为了在更大范围内传播,从而与计算机病毒相结合。
因此,木马程序也可以看做一种伪装潜伏的网络病毒。
1986年出现了世界上第一个计算机木马。
[2]它伪装成Quicksoft公司发布的共享软件PC-Write的2.72版本,一旦用户运行,这个木马程序就会对用户的硬盘进行格式化。
而1989年出现的木马更富有戏剧性,它竟然是通过邮政邮件进行传播的。
木马的制造者将木马程序隐藏在含有治疗AIDS和HIV的药品列表、价格、预防措施等相关信息的软盘中,以传统的邮政信件的形式大量散发。
如果邮件接收者浏览了软盘中的信息,木马程序就会伺机运行。
它虽然不会破坏用户硬盘中的数据,但会将用户的硬盘加密锁死,然后提示受感染的用户花钱消灾。
计算机网络的发展给木马的传播带来了极大的便利,其传播速度和破坏范围都是以往的木马程序所无法比拟的。
木马兼备伪装和传播这两种特征并与TCP/IP网络技术相结合。
木马一般分为客户端(client)和服务端(server)两部分。
对于木马而言,“服务端”和“客户端”的概念与我们平常理解的有所不同。
在一般的网络环境中,“服务器”(server)往往是网络的核心,我们可以通过服务器对“客户端”进行访问和控制,决定是否实施网络服务。
而木马则恰恰相反,客户端是控制端,扮演着“服务器”的角色,是使用各种命令的控制台,而服务端是被控制端。
木马的制造者可以通过网络中的其他计算机任意控制服务端的计算机,并享有服务端的大部分操作权限,利用控制端向服务器端发出请求,服务端收到请求后会根据请求执行相应的动作,其中包括:
查看文件系统,修改、删除、获取文件;
查看系统注册表,修改系统设置;
截取计算机的屏幕显示,并且发给控制端;
查看系统中的进程,启动和停止进程;
控制计算机的键盘、鼠标或其他硬件设备的动作;
以本机为跳板,攻击网络中的其他计算机;
通过网络下载新的病毒文件。
一般情况下,木马在运行后,都会修改系统,以便在下一次系统启动时自动运行该木马程序。
修改系统的方法有下面几种:
利用Autoexec.bat和Config.sys进行加载;
修改注册表;
修改win.ini文件;
感染Windows系统文件,以便进行自动启动并达到自动隐藏的目的。
随着目前国内网络游戏和网上银行的兴起,以盗取网络游戏软件、OICQ、网上银行的登陆密码和账号为目的的木马病毒越来越猖獗。
这些病毒利用操作系统提供的接口,在后台不停地查找这些软件的窗体。
一旦发现登陆窗体的时候就会找到窗体中的用户名和密码的输入框,然后窃取输入的密码和用户名。
还有的木马会拦截计算机的键盘和鼠标的动作,只要键盘和鼠标被点击,病毒就会判断当前正在进行输入的窗体是否是游戏的登陆界面,如果是的话就将键盘输入的数据复制一份。
还有的病毒会直接拦截网络数据包,并窃取数据包中的密码和用户名。
病毒窃取到密码和用户名后会通过网络发送邮件,将窃取到的数据发送到黑客的邮箱内,用以进行盗窃或网络诈骗。
木马病毒的兴起往往伴随着网络犯罪的发展和延伸。
因此,掌握木马病毒的防范技巧和知识就像是为我们的计算机穿上了一层防弹衣,对于阻止网络犯罪的蔓延和侵害有着至关重要的作用。
2.2木马的发展现状
到目前为止,木马的发展已经历了五代[3]:
第一代木马只是实现简单的密码窃取、发送等,在隐藏和通信方面均无特别之处。
第二代木马的典型代表是冰河,它以文件关联方式启动。
通过电子邮件传送信息,在木马技术发展史上开辟了新的篇章。
第三代木马的信息传输方式有所突破采用ICMP协议,增加了查杀的难度。
第四代木马在进程隐藏方面获得了重大突破,采用插入内核的嵌入方式、利用远程插入线程技术、嵌入队DLL线程,或挂接PSAPI等,实现木马程序的隐藏,利用反弹端口技术突破防火墙限制,在WindowsNT/2000下取得了良好的隐藏效果。
第五代木马与病毒紧密结合。
利用操作系统漏洞,直接实现感染传播的目的,而不必像以前的木马那样需要欺骗用户主动激活,例如最近新出现的类似冲击波病毒的术马——噩梦II。
2.3木马的工作原理
木马的运行大致分为六个阶段,本文将结合这六个阶段给大家详细介绍木马的工作原理。
一.配置木马
一般来说一个设计成熟的木马都有木马配置程序,从具体的配置内容看,主要是为了实现以下两方面功能:
(1)木马伪装:
木马配置程序为了在服务端尽可能好的隐藏木马,会采用多种伪装手段,如修改图标,捆绑文件,定制端口,自我销毁等。
(2)信息反馈:
木马配置程序将就信息反馈的方式或地址进行设置,如设置信息反馈的邮件地址,帐号信息等。
二.传播木马
(1)传播方式:
木马的传播方式主要有三种:
一种是通过E-MAIL[4],控制端将木马程序以附件的形式夹在邮件中发送出去,收信人只要打开附件系统就会感染木马;
另一种是软件下载,一些非正规的网站以提供软件下载为名义,将木马捆绑在软件安装程序上,下载后,只要一运行这些程序,木马就会自动安装;
通过在网页中加入脚本代码,植入木马,也被称为网马。
当然现在的木马传播途径已经远远不止这些,类似通过第三方而已程序下载等等,请大家牢记,病毒技术和网络技术共同发展的,永远不要轻易放弃一个微小的细节。
(2)伪装方式:
鉴于木马的危害性,很多人对木马知识还是有一定了解的,这对木马的传播起了一定的抑制作用,这是木马设计者所不愿见到的,因此他们开发了多种功能来伪装木马,以达到降低用户警觉,欺骗用户的目的。
但不管如何伪装木马由于其工作原理的限制,只要细心是完全可以及时发现和预防的。
(a)修改图标
这种木马主要是通过伪装成大家熟知的压缩包或文挡图标,来迷惑用户,从而消除用户的警觉性。
(b)捆绑文件
这种伪装手段是将木马捆绑到一个安装程序上,当安装程序运行时,木马在用户毫无察觉的情况下,从后台安装到系统中。
至于被捆绑的文件一般是可执行文件(即EXE,COM一类的文件),现在也有通过绑定图片、压缩包等来达到目的的。
(c)出错显示
有一定木马知识的人都知道,如果打开一个文件,没有任何反应,这很可能就是个木马程序,木马的设计者也意识到了这个缺陷,所以已经有木马提供了一个叫做出错显示的功能。
当服务端用户打开木马程