特洛伊木马程序的设计与实现_第1页
特洛伊木马程序的设计与实现_第2页
特洛伊木马程序的设计与实现_第3页
特洛伊木马程序的设计与实现_第4页
特洛伊木马程序的设计与实现_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第一章绪论1.1木马的研究背景1.2木马发展的现状1.3论文研究的意义和目的第二章木马技术基础2.1木马系统结构2.2木马的基本特征2.3木马的功能2.4木马的分类第三章木马工作原理及关键技术3.1木马的伪装3.2木马的隐藏3.3木马常见的启动方式3.4远程控制技术3.5木马的通信第四章远程控制木马的设计4.1功能分析4.2系统总体设计4.3系统实现的关键技术4.4系统的开发工具第五章远程控制木马的实现5.1服务端程序的实现161616175.2客户端的实现17181920第六章结束语23参考文献24

第一章绪论1.1木马的研究背景随着网络的快速发展,Internet深入到社会的每个角落,人们充分享受到了其给工作和生活带来的巨大便利,人类社会对计算机系统和信息网络的依赖性也越来越大。工业和信息化部统计数据显示,2009年中国网民规模已达3.84亿;预计2010中国网民规模突破4亿[1]。由于计算机系统和信息网络系统本身固有的脆弱性,网络入侵工具(如蠕虫、木马等不断涌现,社会、企业和个人也因此蒙受了越来越大的损失。木马由于它的隐蔽性、远程可植入性和可控制性等技术特点,已成为黑客攻击或不法分子入侵网络的重要工具,目前,不断发生的互联网安全事故中,大部分都有木马的身影。木马程序使得远程的黑客能够享有系统的控制权。“知己知彼,百战不殆”,如果想找出防御木马攻击的有效途径,就必须认真地研究木马攻击的技术。在研究木马攻防的过程中,如果能够理清木马攻击手段的发展脉络,就有可能进一步找出木马发展的趋势,并提早思考应对策略。1.2木马发展的现状自从世界上出现第一个木马程序(1986年的PC-Write木马)到今天,木马的发展已经历了五代[4][5]:第一代木马出现在网络发展的早期,是以窃取网络密码为主要任务,即简单的密码窃取、发送等,在隐藏和通信方面均无特别之处。第二代木马在技术上有很大的进步,使用标准的C/S架构,提供远程文件管理、屏幕监视等功能。但是由于植入木马的服务端程序会打开连接端口等候客户端连接,比较容易被发现。如:“冰河”、“Qmitis”。第三代木马在功能上与第二代木马没有太大差异,它的改变主要在网络连接方式上,它的特征是不打开连接端口进行侦听,而是使用ICMP通信协议进行通信或使用反向连接技术让服务器端主动连接客户端,以突破防火墙的拦截。在数据传递技术上也做了不小的改进,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了查杀的难度。如:网络神偷、Peep201等。第四代木马在进程隐藏方面,做了大改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程,或者挂接PSAPI[6],实现木马的隐藏。前三代木马,大多都有独立的木马,因此用户可以根据启动项目中的描述内容,很快找到木马,并删除它。但是,第四代木马选择注册表的方式,伪装成DLL文件形式加载到正常的启动程序上,无法通过“任务管理器”查看到正在执行的木马。不过在连接方式上,依然使用第三代木马或第二代木马的连接方式。如:Beast木马。第五代木马实现了与病毒紧密结合,利用操作系统漏洞,直接实现感染传播的目的,而不必象以前的木马那样需要欺骗用户主动激活。例如类似冲击波病毒的木马——噩梦II。特洛伊木马程序发展到今天已经相当完善了,但随着计算机技术的发展,木马仍会继续演变并运用一些新的技术和方法使其更具有攻击性和破坏性。从现在的趋势来看,木马将在隐藏性、代码的模块化设计、及时通知、跨平台、底层通信以及和蠕虫病毒技术融合等方面有所提升和发展。1.3论文研究的意义和目的由于木马活动的猖獗和其实现技术的不断更新,木马的防范工作也必须与时俱进。只要了解木马的工作原理,借助协议分析工具,就能及时发现蛛丝马迹,降低木马带来的危害;只要熟悉木马的隐藏方法,就能快速找到并彻底清除木马,甚至找到入侵者;如果能够预先了解木马攻击手段,就可以有针对性防范木马主动入侵或攻击。论文通过对木马的原理进行深入分析,总结一些木马的一般规律和最新技术,对于提高木马的防范水平以及网络管理提供了一定的借鉴作用。第二章木马技术基础在计算机领域中特洛伊木马程序是一种未经授权的程序,它包含在一段正常的程序当中,这个未经授权的程序提供了一些用户不知道的功能,其目的是不需要管理员的准许就可获得系统使用权。它可以控制用户计算机系统,造成用户资料的泄漏,甚至造成整个计算机系统崩溃等。特洛伊木马和病毒的区别是它不能自行传播,而要依靠宿主以其它假象出现,冒充一个正常的程序,如Bo、Happy99、sub7、网络神偷、冰河等就是典型的特洛伊木马程序。本章详细论述了木马的分类、特征、功能、工作原理和攻击手段等。木马的全称是“特洛伊木马”,是一种新型的计算机网络病毒程序。在RFC1244安全手册中给出的:“特洛伊木马是这样一种程序,它提供了一些有用的,或仅仅是有意思的功能。但是通常要做一些用户不希望的事,诸如在你不了解的情况下拷贝文件或窃取你的密码”。它利用自身所具有的植入功能,依附其它具有传播能力病毒,或者通过入侵后植入等多种途径,进驻目标机器,搜集其中各种敏感信息,并通过网络与外界通信,发回所搜集到的各种敏感信息,接受植入者指令,完成其它各种操作,如修改指定文件、格式化硬盘等。2.1木马系统结构一个完整的木马系统由硬件部分、软件部分和具体的连接部分组成[7]。1、硬件部分,建立木马连接所必须的硬件实体,分为控制端,服务端和Internet。控制端是对服务进行远程控制的一方;服务端是被控制端远程控制的一方;Internet是控制段对服务端进行远程控制,数据传输的网络载体。2、软件部分,实现远程控制所必须的软件程序。控制端程序,控制端用以远程控制服务端的程序。木马程序,潜入服务端内部,获取其操作权限的程序。木马配置程序,设置木马的端口号,触发条件,木马名称等,并使其在服务端隐藏的更隐蔽的程序。3、具体连接部分,通过Internet在服务端和控制端之间建立一条木马通道所必须的一条元素。控制端IP和服务端IP,即控制端和服务端的网络地址,也是木马进行数据传输的目的地。控制端端口和木马端口,即控制端和服务端的数据入口,通过这个端口,数据可以直达控制端程序或木马程序。2.2木马的基本特征综合现在流行的木马程序,它们都具有以下基本特征:1、隐蔽性木马必须有能力长期潜伏于目标机器中而不被发现。一个隐蔽性的木马往往会很容易暴露自己,进而被杀毒(或杀马软件,甚至用户手工检查来,这样将使得这类木马变得毫无价值。因此可以说隐蔽性是木马的生命。2、自动运行性木马程序是一个系统启动即自动运行的程序,所以它可能嵌入在启动配置文件(如win.ini、system.ini、winstart.bat等)、启动组或注册表中。3、欺骗性木马程序要达到长期隐藏的母的,就必须借助系统中已有的文件以防被发现。木马经常类似以常见的文件名或扩展名的名字(如dll、win、sys),或者仿制一些不易被人区分的文件名(如字母“i”和数字“1”,字母“o”和数字“0”),或者伪装成常见的文件图标。以骗取用户的信任。4、顽固性木马顽固性就是指有效清除木马的易程度。若一个木马在检查出来之后,仍然无法将其一次性有效清除,那么该马就具有较强的顽固性。很多木马程序中的功能模块已不再是单一的文件组成,而是将文件分别存储在不同的位置。这些分散的文件可以相互恢复,因此难以清除。5、易植入性任何木马必须首先能够进入目标机器(植入操作),因此易入性就成为木马有效性的先决条件。欺骗性是自木马诞生起最常见的植入手段因此各种好用的小功能软件就成为木马常用的栖息地。利用系统漏洞进行木马入也是木马入侵的一类重要途径。目前木马技术与蠕虫技术的结合使得木马具类似蠕虫的传播性,这也就极大提高了木马的易植入性。从上面对木马特性的分析,可以看到木马的设计思想除了具有病毒和蠕虫的设计思想(即主要侧重于其隐蔽性和传播性的实现),还更多地强调与木马控制端通信能力,和反清除与反检测能力。由于有了控制端的攻击者的指挥,因此木马的行为特征就有了很强的智能化,具有很强的伪装能力和欺骗性。而木马的反清除能力,也使其极为固地和被寄生的系统纠合在一起。要想彻底清除木马,系统也得付出惨痛代价。2.3木马的功能只要在本地计算机上能操作的功能,目前的木马基本上都能实现。木马的控制端可以像本地用户一样操作远程计算机。木马的功能可以概括为以下内容[8]:1、窃取数据以窃取数据为目的,本身不破坏计算机的文件和数据,不妨碍系统的正常工作,它以系统使用者难以察觉的方式向外传送数据。2、接受非法授权操作的指令当网络中的木马被激活后,它可以获取网络服务器系统管理员的权限,随心所欲地窃取密码和各类数据,逃避追踪,同时不会留下任何痕迹。3、篡改文件和数据对系统文件和数据有选择地进行篡改,使计算机处理的数据产生错误的结果,导致作出错误的决策。有时也对数据进行加密。4、删除文件和数据将系统中的文件和数据有选择地删除或者全部删除。5、施放病毒将原先埋伏在系统中但出于休眠状态的病毒激活,或从外界将病毒导入计算机系统,使其感染并实施破坏。6、使系统自毁包括改变时钟频率、使芯片热崩溃而损坏、造成系统瘫痪等。2.4木马的分类木马的分类多种多样,根据不同的分类标准,木马的种类也有所不同。(一)根据木马程序对计算机的具体动作方式,可以把现在的木马程序分为以下几类:1、远程控制型:远程控制型木马是现今最广泛的特洛伊木马.这种木马起着程监控的功能,使用简单,只要被控制主机联入网络,并与控制端客户程序建立网络连接,控制者就能任意访问被控制的计算机。这种木马在控制端的控制下可以在被控主机上做任意的事情,比如键盘记录,文件上传/下载,截取屏幕,远程执行等。这种类型的木马比较著名的有BO(BackOrifice和国产的冰河等。2、密码发送型:密码发送型木马的目的是找到所有的隐藏密码,并且在受害者不知道的情况下把它们发送到指定的信箱。大多数这类木马程序不会在每次Windows系统重启时都自动加载,它们大多数使用25端口发送电子邮件。3、键盘记录型:键盘记录型木马非常简单,它们只做一种事情,就是记录受害者的键盘敲击,并且在LOG文件里进行完整的记录。这种木马程序随着Windows系统的启动而自动加载,并能感知受害主机在线,且记录每一个用户事件,然后通过邮件或其他方式发送给控制者。4、毁坏型:大部分木马程序只是窃取信息,不做破坏性的事件,但毁坏型木马却以毁坏并且删除文件为己任。它们可以自动删除受控主机上所有的.ini或.exe文件,甚至远程格式化受害者硬盘,使得受控主机上的所有信息都受到破坏。总而言之,该类木马目标只有一个就是尽可能的毁坏受感染系统,致使其瘫痪。5、FTP型:FTP型木马打开被控主机系统的21号端口使每一个人都可以用一个FTP客户端程序来不要密码连接到受控制主机系统,并且可以进行最高权限的文件上传和下载,窃取受害系统中的机密文件。(二)根据木马的网络连接方向,可以分为两类:1、正向连接型:发起通信的方向为控制端向被控制端发起,这种技术被早期的木马广泛采用,其缺点是不能透过防火墙发起连接。2、反向连接型:发起通信的方向为被控制端向控制端发起,其出现主要是为了解决从内向外不能发起连接的情况的通信要求,已经被较新的木马广泛采用。(三)根据木马使用的架构,可以分为四类:1、C/S架构:这种为普通的服务器、客户端的传统架构,一般我们都是采用客户端作控制端,服务器端作被控制端。在编程实现的时候,如果采用反向连接的技术,那么客户端(也就是控制端要采用Socket编程的服务器端的方法,而服务端(也就是被控制端采用Socket编程的客户端的方法。2、B/S架构:这种架构为普通的网页木马所采用的方式。通常在B/S架构下,Server端被上传了网页木马,控制端可以使用浏览器来访问相应的网页,达到对Server端进行控制的目的。3、C/P/S架构:这里的P是Proxy的意思,也就是在这种架构中使用了代理。当然,为了实现正常的通信代理也要由木马作者编程实现,才能够实现一个转换通信。这种架构的出现,主要是为了适应一个内部网络对另外一个内部网络的控制。但是,这种架构的木马目前还没有发现。4、B/S/B架构:这种架构的出现,也是为了适应内部网络对另外的内部网络的控制。当被控制端与控制端都打开浏览器浏览这个Server上的网页的时候,一端就变成了控制端,而另外一端就变成了被控制端,这种架构的木马已经在国外出现了。

第三章木马工作原理及关键技术3.1木马的伪装特洛伊木马程序因其功能肯定不被人们所欢迎。因此,它们要想完成其不可告人的“使命”,就必须先将自身隐藏好。就目前我们对已知特洛伊木马程序的了解,特洛伊木马程序的伪装技术主要有以下几种方法[12]:1、修改图标特洛伊木马服务端程序常常故意伪装成了各种网页或图片等图标。用户往往误认为这些程序对系统是无害的,因此很容易诱使其打开并将其运行。2、捆绑于正常文件中这种伪装手段有些类似于传统的计算机病毒程序。攻击者常常将特洛伊木马程序常捆绑到一个正常程序上。这样,一旦用户运行了这个正常程序运行,身藏其中的特洛伊木马程序就会在用户毫无察觉的情况下,偷偷地进入了系统运行。被捆绑的文件一般是可执行文件,例如,EXE、COM等类型的文件。3、显示出错信息一些特洛伊木马程序的设计者意识到,如果用户打开一个文件而没有任何反应,用户很可能认这就是一个特洛伊木马程序。所以,一些特洛伊木马程序会故意显示一些出错显示。当被攻击者打开特洛伊木马程序时,往往会弹出一个错误提示框(当然这是假的,只是在迷惑用户,使其误认为这是一个正常、已被损坏的、不能轻易删除的文件。错误内容可自由定义,大多会定制成一些诸如"文件已破坏,无法打开!"之类的信息,当被害用户信以为真时,特洛伊木马程序就悄悄侵入了系统中。4、自我销毁当用户打开含有特洛伊木马程序的邮件或其它文件后,其中的特洛伊木马程序就会将自己拷贝到Windows的系统文件夹中(即C:\windows或C:\windows\system目录下。但是,如果特洛伊木马程序只是如此简单的拷贝,就会造成源特洛伊木马程序文件和系统文件夹中的特洛伊木马程序文件长度的大小是一样的。那么,中了特洛伊木马程序的受害者只要检查一下近来收到的信件和下载的软件,并从中找到源特洛伊木马程序文件,然后根据源特洛伊木马程序文件的大小去系统文件夹找相同大小的文件,判断一下哪个是特洛伊木马程序文件并将其删除就行了。特洛伊木马程序的此种伪装方式恰恰就是在于弥补自身的这种缺陷。因此,具备这种伪装功能的特洛伊木马程序会在将自身安装在被害系统后,将源特洛伊木马程序文件自动销毁。这样,被害用户就很难找到特洛伊木马程序的来源了,在没有查杀特洛伊木马程序工具帮助下,就很难删除木马了。5、更改文件名特洛伊木马程序的编写者一定要在每次传播时,用一个与以往不同的文件名进行伪装。不过,大多特洛伊木马程序会选用一个与正常的系统文件名十分近似的文件名来故意误导用户,使用户误认为是正常的系统文件。例如,有的特洛伊木马程序会把名字改为window.exe。3.2木马的隐藏木马的隐蔽性是木马能否长期存活的关键,为了达到隐蔽目的,木马开发者总是采用各种先进技术来实现木马的隐藏。一台机器有65536个端口,不难发现,大多数木马使用的端口在1024以上,而且呈越来越大的趋势:当然也有占用1024以下端口的木马,但这些端口是常用端口,占用这些端口可能会造成系统不正常,木马容易暴露。扫描木马端口具体的做法是:1.打开流光工具(如图3.1),在FTP选项上添加主机:图3.1流光5.0界面图3.2添加主机3、用流光检测此木马用的端口是7626.(如图3所示)。现在已经有一种方法可以实现端口的使用差异比较法对木马程序进行防杀的技术探讨复用,即一个端口既可以实现正常功能,又可以用于木马通信,采用这种技术的木马特意把自己的端口设成常用端口(如:80、23等端口,达到更好的隐蔽效果。图3.3探测结果1、在任务管理器里隐藏查看正在运行的进程的最简单方法就是按下Crtl+Alt+Del时出现的任务管理器。在WIN98中木马把自己设为“系统服务”就可以轻松地实现在任务管理里隐藏;在WINNT、WIN2000和WINXP中木马开发人员采用了一种更好的隐藏方式:即把木马写成动态链接库文件(dll文件,运行时将自己插入另一个进程(一般是系统进程,如explorer.exe中,这样木马就是以线程形式而不是以进程存在的,从而实现任务管理器里的隐藏,而且,当查看当前使用的端口时,木马打开的端口对应的进程不是木马本身,而是被插入的进程,即一个正常的进程,从而也实现了端口隐藏的目的。2、隐藏通信隐藏通信也是木马经常采用的手段之一。任何木马运行后都要和攻击者进行通信连接:或者通过即时连接,如攻击者通过客户端直接接入被植入木马的主机;或者通过间接通信,如通过电子邮件的方式,木马将目标主机的敏感信息传给攻击者。目前大部分木马都是采用TCP连接方式使攻击者控制主机的,这些木马在植入主机后一般会在1024以上不易发现的高端口上驻留;也有些木马采用端口复用技术,不打开新的通信端口,而选择一些常用的端口(如80实现通信,在收到正常的HTTP请求仍然把它交与Web服务器处理,只有在收到一些特殊约定的数据包后,才调用木马。现在有些木马采用ICMP协议转输,通过IMCP数据包进行通信控制,这样除非分析数据包里面的内容,否则很难发现木马连接。还有些木马只有收到特定的数据包才开始通信,平时处于休眠状态。3、隐藏传播方式与病毒不同,木马大多没有主动传播的功能。因此,如何将木马成功植入目标主机是木马成功运行的关键。目前大多数木马采用的传播途径仍然电子邮件,但近几年,随着木马的流行,用户对木马的认识不断提高,大多用户都清楚一些关于木马和如何防治的基本知识,这种方法己经很难凑效。随着网站互动化进程的不断进步,越来越多的东西可以成为木马的传播介质,Javascript、VBScript、ActiveX几乎每一个新功能都会导致木马的快速进化。再一个就是,利用系统漏洞进行木马传播,随着技术的不断发展,这种方法将逐步成为木马植入的主流。如通过在邮件内容内嵌WSH(WindowsScriptHost脚本,用户无需打开附件,仅仅浏览邮件内容,附件中的木马就会被执行。即使用户删除了WSH功能,攻击者仍然能通过其他的系统漏洞(如MIME漏洞,在用户浏览邮件时将木马植入到计算机中运行。目前,邮件木马已经从附件走向了正文,简单的浏览也会中毒,一个Guest用户也可以很容易的通过修改管理员的文件夹设置获得管理员权限。3.3木马常见的启动方式木马程序也和其它的计算机软件或程序一样,也必须把自己从硬盘或网上下载下来,调入系统中运行,从而实际其功能。总体上说来,特洛伊木马程序主要有以下几种启动方式[14]:1、随正常的程序启动而启动一些特洛伊木马程序为隐藏自己,将自己与其它一些正常应用程序捆绑在一起。一旦用户运行被捆绑文件,特洛伊木马程序就会进入系统运行。甚至一些木马程序将自身捆绑进入系统文件。这样每次系统启动,特洛伊木马程序也会随着启动。2、隐藏在配置文件(Autoexec.bat和Config.sys)中在Windows系统中,Config.sys文件主要是设置一些启动参数和加载驱动程序。而Autoexec.bat是系统开机自动运行的批处理文件。在特洛伊木马程序出现的前期,一些狡猾的特洛伊木马程序知道,一般用户平时使用的是图形化界面的操作系统,对于那些重要的系统配置文件几乎是一窍不通,故而也不曾亲身接触过。这样,这些系统配置文件恰好成为了这些特洛伊木马程序一处绝好的藏身之地。而且特洛伊木马程序还利用配置文件的特殊功能,很容易就能使自己在系统中运行、发作,从而偷窥、监视被害者的秘密或控制被害用户的计算机系统。3、潜伏在Win.ini中在windows系统中,Win.ini文件中提供了WIN16程序需要的字体设置、文件关联等信息,主要完成GUI(图形用户接口)的相应的环境配置。特洛伊木马程序要想达到控制或者监视计算机的目的,就必须要运行,然而又不指望用户自运行特洛伊木马程序。所以,特洛伊木马程序就必须在系统中找一个既安全能在统启动时自动运行的地方。4、伪装成普通文件相对而言,这种伪装方式出现的比较晚,不过现在却是十分流行,对于不熟悉5、内置到注册表中6、隐蔽在Winstart.bat中7、设置在超级连接中随着互联网的不断普及与技术的不断发展,上网人数不断增加,各种网站大量的出现。因此,很多特洛伊木马程序就充分运用了人们喜爱上网的习惯,特洛伊木马程序的制作者在网页上放置各种恶意代码,并使用各种方法引诱用户点击,然后在用户的系统中运行特洛伊木马程序,达到其侵入的目的。3.4远程控制技术远程计算机控制指的是基于一定的物理网络(例如INTERNET网或者企业、校园的局域网络,通过一定的网络协议(例如TCP/IP协议,对分布在网络上的计算机实现远程控制、协同工作。这种控制是通过对基于网络通讯的标准通讯协议和对目标机的操作系统响应方式的准确控制来实现的。3.5木马的通信木马通常需要利用一定的通信方式与控制端进行信息交流(如接收控制者的指令、向控制端传递信息等。系统和应用程序一般采用TCP/UDP通信端口的形式与控制端进行通信。木马一般也是利用TCP/UDP端口与控制端进行通信。通常情况下,木马进行通信时直接打开一个或几个属于自己的TCP/UDP端口[18]。早期的木马在系统中运行后都是打开固定的端口,后来的木马在植入时可随机设定通信时打开的端口,具有了一定的随机性。可是通过端口扫描很容易发现这些可疑的通信端口。事实上,目前的许多木马检测软件正是通过扫描本地和远程主机系统中打开的已知木马端口进行木马检测的。木马通信端口成为暴露木马形踪一个很不安全的因素。为此采用新技术的木马对其通信形式进行了隐蔽和变通,使其很难被端口扫描发现。木马为隐蔽通信形式所采用手段有:端口复用、反弹端口、潜伏技术[19]。

第四章远程控制木马的设计在目前发现的所有木马当中,以远程控制木马数量最多,危害最大,同时知名度也最高的一种木马,它可以让攻击者完全控制被感染的计算机,攻击者可以利用它完成一些甚至连计算机主人本身都不能顺利进行的操作,其危害之大实在不容小觑。由于要达到远程控制的目的,所以,该种类的木马往往集成了其他种类木马的功能。使其在被感染的机器上为所欲为,可以任意访问文件,得到机主的私人信息甚至包括信用卡,银行账号等至关重要的信息。远程控制木马一般采用C/S构架,包括客户端和服务端。客户端运行在被控制端,执行服务端发送的各种命令。服务端运行在控制端,用于向客户端发送操作命令,并接受客户端发送的信息。4.1功能分析由于要实现的是远程控制木马程序,因此需要实现的功能如下:(1被控制端上网后自动通知:当己植入服务器端程序的计算机上网后,程序自动连接信息中转系统,获得客户端所在主机的IP,然后通知客户端。(2获取被控制端主机硬盘资料信息:利用本系统可列举被控计算机所有硬盘上的所有目录和文件信息,具体信息包括目录名、文件名、目录或文件属性、大小、修改时间等。(3远程文件操作:远程修改文件、文件夹,下载、上传文件,删除、新建文件等。(4远程系统控制:该功能可实现对被控制端主机的重启、关机、注销,鼠标、键盘的锁定和解锁。(5获取目标机的系统信息:包括计算机名、当前用户名、当前运行的软件和计算机安装了那些软件。(6进程管理:管理被控制的进程,包括查看当前运行的进程信息,终止进程等。(7被控制端的伪装、隐藏、自启动等功能。4.2系统总体设计本系统采用Client/Server工作模式,由服务端程序、客户端程序和中转服务器三部分构成。客户端(控制端)程序运行在本地主机系统上,这些程序主要负责向被控端程序发送控制指令,并对被控端返回的取证结果进行证据处理,以友好的图形界面形式显示给控制者。服务端(被控端程序是安装在被控的计算机上,主要负责接收并处理客户端程序发来的各种控制命令、完成服务端程序的加载,完成服务端启动、隐藏和进程的隐藏,并返回结果。中转服务器是拥有固定的IP地址,它在整个木马系统中充当中转功能,为服务端提供最新的客户端IP地址和端口信息,不管客户端的地址如何变化,都能使服务端正确连接到客户端。中转服务器作为整个木马系统的中转关键环节,提供一定空间用来更新存储客户端的信息。4.3系统实现的关键技术所谓隐蔽通信就是在用户毫无感知的情况下完成木马客户端与服务器端的数据交互。首先明确用户在什么情况下可以察觉与外界的异常数据交流,用户感知到非正常数据流通的征兆无非通过以下几种途径[27]:(1利用Netstat查看连接,并有异常连接处于ESTABLISHED状态。(2当安装有防火墙时,防火墙有异常连接警报。(3用网络嗅探器(如:TCPDUMP,Sniffer分析数据流的时候,有异常数据流通过。4.4系统的开发工具随着计算机应用的发展,开发工具的种类越来越多,功能也越来越强大。不同的开发工具在开发应用中有不同的优点和侧重点。选择一种最适合的开发工具,既能更好地实现系统功能,也能大大减轻开发难度,减少开发工作量,加速开发进程。选择开发工具,要根据应用程序的实际开发需求进行选择。应用程序的开发发展到今天,良好的用户界面是一个应用程序开发好坏的基础和最直观的条件。网络监控系统的实现不可避免会涉及到用户界面的开发操作,友好的用户界面可以使系统操作简单直观,增加其应用度。现在的程序设计方法已由过去的结构化程序设计发展为面向对象的程序设计。在面向对象的程序设计开发中,可以很轻易方便地实现用户界面的开发,获得良好的用户界面。当前流行的各种开发工具,如VisualBasic,VisualC#,Delphi,Java,PowerBuilder等等开发软件都是面向对象的开发工具,都可以很容易完成用户界面开发的工作。从用户界面的开发方面来考虑,可以选择当前常用的面向对象的开发工具中的任何一种。开发者可根据自己的喜好选择自己最熟悉的开发工具。本木马程序要实现对目标主机的控制,就需要服务端与客户端之间不断进行交互;系统管理员需要通过目标监控子系统获得目标主机的信息并对其进行控制,这都是通过网络编程来实现的。在当前较流行的各种开发工具中,支持网络编程、提供较好的Winsock支持的主要有VisualC#和Java两种。VisualC#具有强大的功能实现体系,并且具有和Windows操作系统良好的兼容性,因此选择VisualC#进行系统的网络编程。

第五章远程控制木马的实现本章将详细介绍远程控制木马的主要实现过程,包括客户端和服务端的实现;通信模块的实现;程序的界面和功能的测试等。5.1服务端程序的实现本模块通过修改注册表来实现目标监控子系统的自启动。在Windows系统中,不论是Windows9X操作系统,还是Windows2000/XP/NT操作系统,其注册表的结构大体上是基本相同的,都是一种层叠式结构的复杂数据库,由键、子键、分支、值项和缺省值几部分组成。在服务端的功能模块之中,对于通信模块的性能要求比较高。要实现对目标主机的监控和管理,必须以可靠、稳定的数据通信为前提。服务端与客户端之间采用TCP/IP协议进行通信,为了躲避防火墙采用了基于反弹端口机制的C/S(客户机/服务器模型:由服务器主动向客户机发出连接请求。通信模块的开发采用WinsockAPI,建立基于阻塞模式的流式Sockets套接字,数据的接收和发送除了与通用流式套接字编程模型相同外,还增加了对数据的处理功能。通信过程的实现,主要包括C/S模型的实现,数据接收和发送,文件的接收和发送和通信阻塞模式。1、基于反弹端口机制的C/S(客户机/服务器模型基于反弹端口机制的C/S模型的通信方式与一般C/S模型的区别仅在于建立连接时的方式不同,基于反弹端口机制的C/S模型建立连接时是由服务器主动向客户机发起连接请求。客户端首先初始化套接字,然后创建监听Socket,绑定地址端口,调用函数Listen(,开始监听。服务端则在创建监听套接字后,发起连接请求。客户端接收到连接请求后,再进行后续处理。2、接收数据流程接收数据的函数定义为:管理模块是服务端的主模块,它将各个功能模块融合在一起,实现对目标主机的监控和管理。它主要负责接收监控系统的命令,对其命令进行识别解释,并调用各个功能模块,执行管理器命令。因此它和其它模块都有接口,它自身包含的函数主要有文件管理(查看、上传、下载、删除等、抓取屏幕等。管理模块的设计思想并不复杂,它的主要任务就是与监控系统建立连接,接收判断监控系统发出的操作命令并有效执行。图5.1管理模块过程图管理模块的流程如图5.1所示。模块初始化主要包括变量初始化和建立互斥体两个过程:在建立连接和发送目标主机基本信息后,管理模块即进入等待命令—判断命令—执行命令一回应信息的命令循环状态,若在此循环中出错(如网络不通,应答出错时,程序将会退回到建立连接的状态。5.2客户端的实现客户端是运行在控制端主机上,用来远程控制被控制端的信息和操作。运行客户端程序,出现客户端程序界面(如图5.2)。图5.2客户端程序主界面客户端运行后,修改中间服务器上的客户端信息,包括客户机IP,开放的端口和链接密码。修改成功后,等待远程主机的上线。如果有远程主机上线,则可以完成的操作有文件控制、系统控制和文件传输。下面将分别介绍。操作远程主机的文件,完成所需要的目的,包括文件的新建、删除,上传和下载。如图5.3,目前有一台主机上线。图5.3文件操作界面下面对监控被控端的文件操作进行说明:(1选择被控端及路径:在左边一览表中选择一个在线的、可控的被控端,用鼠标左键单击后,右边框中将显示当前所选中的被控端C盘目录下的所有文件及文件夹。可以通过改变“驱动器”或直接在当前目录处输入要查看的D、E等目录。(2查看文件夹内容:如果要查看其中某文件夹中的文件可选中该文件夹,然后单击右键弹出菜单,选择“打开”菜单项(或双击打开,此时将该文件夹中的文件或子文件夹显示在右框中。(3下载被控端文件:如果要将被控端中的某一文件下载的控制端计算机中,可单击选中该文件,然后右击选择弹出菜单中的“下载到”菜单项,此时出现要存放下载文件的路径,单击保存按钮。系统将提示是否要打开下载的文件,如果想查看内容,则单击“是”,否则单击“否”。(4删除被控端文件:如果要想删除被控端中的某一文件,则单击选中,右击选择弹出菜单中的“删除”菜单项,即可删除被控端中的该文件。(5刷新被控端文件夹内容:在右框中右击选择弹出菜单中的“刷新”菜单项,可对显示的文件及子文件夹刷新显示。(6上传选定文件到被控端:选择被控端,指定要上传的位置,在右边框中单击右键选择弹出菜单中的“上传文件到⋯”菜单项,等待文件上传,上传完毕后系统给予提示。作为木马的破坏功能,系统控制中包括了远程关机、重启、注销、鼠标屏幕控制等功能。选择需要控制的主机,然后点击相应的按钮,即可完成操作。如图5.4。图5.4系统控制界面进程管理、网络连接、启动项和系统信息,在设计时也作为系统控制的一部分,其相应的功能和操作如下:1、文件管理,实现了对远程主机进程的操作。可以查看当前运行的进程ID,进程名和文件来源。如图5.5所示,单击“刷新”按钮,则刷新当前的进程列表;选择所需进程,然后点击“结束进程”则可结束该进程。图5.5进程管理界面我们还可以通过冰河信使功能和服务器方进行聊天,当主控端发起信使通信之后,受控端也可以向主控端发送消息了。图5.6冰河信使查杀木马:当我们发现机器无故经常重启、密码信息泄露、桌面不正常时,可能就是中了木马程序,需要进行杀毒。判断是否存在木马:一般病毒都需要修改注册表,我们可以在注册表中查看到木马的痕迹。在“开始”--->“运行”,输入“regedit”,这样就进入了注册表编辑器,依次打开子键目录“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windwos\CurrentVersion\Run”。图5.7注册表中的Run子键在目录中我们发现第一项的数据“C:\WINDOWS\system32\Kernel32.exe”,Kernel32.exe就是冰河木马程序在注册表中加入的键值,将该项删除。然后再打开“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windwos\CurrentVers

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论