目录
第一章 绪论 ................................................................................................................... 1
1.1木马的研究背景 .............................................................................................. 1
1.2木马发展的现状 .............................................................................................. 1
1.3论文研究的意义和目的 .................................................................................. 2
第二章 木马技术基础 ................................................................................................... 3
2.1木马系统结构 .................................................................................................. 3
2.2木马的基本特征 .............................................................................................. 4
2.3木马的功能 ...................................................................................................... 4
2.4木马的分类 ...................................................................................................... 5
第三章 木马工作原理及关键技术 ............................................................................... 7
3.1 木马的伪装 ..................................................................................................... 7
3.2木马的隐藏 ...................................................................................................... 8
3.3木马常见的启动方式 .................................................................................... 10
3.4远程控制技术 ................................................................................................ 11
3.5木马的通信 .................................................................................................... 12
第四章 远程控制木马的设计 ..................................................................................... 13
4.1功能分析 ........................................................................................................ 13
4.2系统总体设计 ................................................................................................ 13
4.3系统实现的关键技术 .................................................................................... 14
4.4 系统的开发工具 ........................................................................................... 14
第五章 远程控制木马的实现 ..................................................................................... 16
5.1服务端程序的实现 ........................................................................................ 16
5.1.1服务端的自启动 ......................................................................................... 16
5.1.2 通信模块的实现 ........................................................................................ 16
5.1.3服务端管理模块 ......................................................................................... 17
5.2客户端的实现 ................................................................................................ 17
5.2.1远程文件控制 ............................................................................................. 18
5.2.2系统控制 ..................................................................................................... 19
5.2.3冰河信使 ..................................................................................................... 20
第六章 结束语 . ............................................................................................................ 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(Back Orifice)和国产的冰河等。
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界面
2、添加主机219.246.132.34(如图3.2所示)
图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(Windows Script Host)脚本,用户无需打开附件,仅仅浏览邮件内容,附件中的木马就会被执行。即使用户删除了WSH 功能,攻击者仍然能通过其他的系统漏洞(如MIME 漏洞) ,在用户浏览邮件时将木马植入到计算机中运行。目前,邮件木马已经从附件走向了正文,简单的浏览也会中毒,一个Guest 用户也可以很容易的通过修改管理员的文件夹设置获得管理员权限。
3.3木马常见的启动方式
木马程序也和其它的计算机软件或程序一样,也必须把自己从硬盘或网上下载 下来,调入系统中运行,从而实际其功能。总体上说来,特洛伊木马程序主要有以下几种启动方式[14]:
1、 随正常的程序启动而启动
一些特洛伊木马程序为隐藏自己,将自己与其它一些正常应用程序捆绑在一起。 一旦用户运行被捆绑文件,特洛伊木马程序就会进入系统运行。甚至一些木马程序将自身捆绑进入系统文件。这样每次系统启动,特洛伊木马程序也会随着启动。
2、 隐藏在配置文件(Autoexec.bat 和Config.sys )中
在Windows 系统中,Config.sys 文件主要是设置一些启动参数和加载驱动程序。 而Autoexec.bat 是系统开机自动运行的批处理文件。在特洛伊木马程序出现的前期,一些狡猾的特洛伊木马程序知道,一般用户平时使用的是图形化界面的操作系统,对于那些重要的系统配置文件几乎是一窍不通,故而也不曾亲身接触过。这样,这
些系统配置文件恰好成为了这些特洛伊木马程序一处绝好的藏身之地。而且特洛伊木马程序还利用配置文件的特殊功能,很容易就能使自己在系统中运行、发作,从而偷窥、监视被害者的秘密或控制被害用户的计算机系统。
3、 潜伏在Win.ini 中
在windows 系统中,Win.ini 文件中提供了WIN 16程序需要的字体设置、文 件关联等信息,主要完成GUI (图形用户接口)的相应的环境配置。特洛伊木马程序要想达到控制或者监视计算机的目的,就必须要运行,然而又不指望用户自运行特洛伊木马程序。所以,特洛伊木马程序就必须在系统中找一个既安全能在统启动时自动运行的地方。
4、 伪装成普通文件
相对而言,这种伪装方式出现的比较晚,不过现在却是十分流行,对于不熟悉 操作系统的普通用户来说,很容易上当。这个伪装方式的具体方法就是把可执行文件伪装成图片或文本—在程序中把图标改成Windows 的默认图片图标, 再把文件名改为*.bmp.exe。由于Windows 系统默认设置是" 不显示已知的文件后缀名", 文件将会显示为*.bmp。用户一不注意点了这个图标,那么特洛伊木马程序就进入系统运行。
5、 内置到注册表中
在Windows 中,注册表由两个文件组成:System.dat 和User.dat ,保存在windows 所在的文件夹中。它们都是由二进制数据组成。System.dat 包含系统硬件和软件的设置,User.dat 保存着与用户有关的信息。
6、 隐蔽在Winstart.bat 中
Winstart.bat 也像Autoexec.bat 一样,是一个能自动被Windows 加载运行的 文件。它多数情况下为应用程序及Windows 自动生成,在执行了Win.com 并加载了多数驱动程序之后开始执行。由于Autoexec.bat 的功能可以由Winstart.bat 代替完成,因此特洛伊木马程序完全可以像在Autoexec.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系统的开发工具
随着计算机应用的发展,开发工具的种类越来越多,功能也越来越强大。不同的开发工具在开发应用中有不同的优点和侧重点。选择一种最适合的开发工具,既能更好地实现系统功能,也能大大减轻开发难度,减少开发工作量,加速开发进程。 选择开发工具,要根据应用程序的实际开发需求进行选择。应用程序的开发发展到今天,良好的用户界面是一个应用程序开发好坏的基础和最直观的条件。网络监控系统的实现不可避免会涉及到用户界面的开发操作,友好的用户界面可以使系统操作简单直观,增加其应用度。现在的程序设计方法已由过去的结构化程序设计发展为面向对象的程序设计。在面向对象的程序设计开发中,可以很轻易方便地实现用户界面的开发,获得良好的用户界面。
当前流行的各种开发工具,如Visual Basic,Visual C#,Delphi ,Java ,PowerBuilder 等等开发软件都是面向对象的开发工具,都可以很容易完成用户界面开发的工作。从用户界面的开发方面来考虑,可以选择当前常用的面向对象的开发工具中的任何一种。开发者可根据自己的喜好选择自己最熟悉的开发工具。
本木马程序要实现对目标主机的控制,就需要服务端与客户端之间不断进行交互;系统管理员需要通过目标监控子系统获得目标主机的信息并对其进行控制,这都是通过网络编程来实现的。在当前较流行的各种开发工具中,支持网络编程、提供较好的Winsock 支持的主要有Visual C#和Java 两种。Visual C#具有强大的功能实现体系,并且具有和Windows 操作系统良好的兼容性,因此选择Visual C#进行系统的网络编程。
第五章 远程控制木马的实现
本章将详细介绍远程控制木马的主要实现过程,包括客户端和服务端的实现;通信模块的实现;程序的界面和功能的测试等。
5.1服务端程序的实现
5.1.1服务端的自启动
本模块通过修改注册表来实现目标监控子系统的自启动。在Windows 系统中,不论是Windows 9X操作系统,还是Windows 2000/XP/NT操作系统,其注册表的结构大体上是基本相同的,都是一种层叠式结构的复杂数据库,由键、子键、分支、值项和缺省值几部分组成。
5.1.2 通信模块的实现
在服务端的功能模块之中,对于通信模块的性能要求比较高。要实现对目标主机的监控和管理,必须以可靠、稳定的数据通信为前提。服务端与客户端之间采用TCP/IP协议进行通信,为了躲避防火墙采用了基于反弹端口机制的C/S(客户机/服务器) 模型:由服务器主动向客户机发出连接请求。
通信模块的开发采用Winsock API,建立基于阻塞模式的流式Sockets 套接字,数据的接收和发送除了与通用流式套接字编程模型相同外,还增加了对数据的处理功能。
通信过程的实现,主要包括C/S模型的实现,数据接收和发送,文件的接收和发送和通信阻塞模式。
1、 基于反弹端口机制的C/S(客户机/服务器) 模型
基于反弹端口机制的C/S模型的通信方式与一般C/S模型的区别仅在于建立连接时的方式不同,基于反弹端口机制的C/S模型建立连接时是由服务器主动向客户机发起连接请求。
客户端首先初始化套接字,然后创建监听Socket ,绑定地址端口,调用函数Listen(),开始监听。服务端则在创建监听套接字后,发起连接请求。客户端接收到连接请求后,再进行后续处理。
2、 接收数据流程
接收数据的函数定义为:
5.1.3服务端管理模块
管理模块是服务端的主模块,它将各个功能模块融合在一起,实现对目标主机的监控和管理。它主要负责接收监控系统的命令,对其命令进行识别解释,并调用各个功能模块,执行管理器命令。因此它和其它模块都有接口,它自身包含的函数主要有文件管理(查看、上传、下载、删除等) 、抓取屏幕等。管理模块的设计思想并不复杂,它的主要任务就是与监控系统建立连接,接收判断监控系统发出的操作 命令并有效执行。
图5.1管理模块过程图
管理模块的流程如图5.1所示。模块初始化主要包括变量初始化和建立互斥体两个过程:在建立连接和发送目标主机基本信息后,管理模块即进入等待命令—判断命令—执行命令一回应信息的命令循环状态,若在此循环中出错(如网络不通,应 答出错) 时,程序将会退回到建立连接的状态。
5.2客户端的实现
客户端是运行在控制端主机上,用来远程控制被控制端的信息和操作。运行客户端程序,出现客户端程序界面(如图5.2)。
图5.2 客户端程序主界面
客户端运行后,修改中间服务器上的客户端信息,包括客户机IP ,开放的端口和链接密码。修改成功后,等待远程主机的上线。如果有远程主机上线,则可以完成的操作有文件控制、系统控制和文件传输。下面将分别介绍。
5.2.1远程文件控制
操作远程主机的文件,完成所需要的目的,包括文件的新建、删除,上传和下载。如图5.3,目前有一台主机上线。
图5.3 文件操作界面
下面对监控被控端的文件操作进行说明:
(1) 选择被控端及路径:在左边一览表中选择一个在线的、可控的被控端,用鼠
标左键单击后,右边框中将显示当前所选中的被控端C 盘目录下的所有文件及文件夹。可以通过改变“驱动器”或直接在当前目录处输入要查看的D 、E 等目录。
(2) 查看文件夹内容:如果要查看其中某文件夹中的文件可选中该文件夹,然后 单击右键弹出菜单,选择“打开”菜单项(或双击打开) ,此时将该文件夹中的文件或子文件夹显示在右框中。
(3) 下载被控端文件:如果要将被控端中的某一文件下载的控制端计算机中,可 单击选中该文件,然后右击选择弹出菜单中的“下载到”菜单项,此时出现要存放下载文件的路径,单击保存按钮。系统将提示是否要打开下载的文件,如果想查看内容,则单击“是”,否则单击“否”。
(4) 删除被控端文件:如果要想删除被控端中的某一文件,则单击选中,右击选 择弹出菜单中的“删除”菜单项,即可删除被控端中的该文件。
(5) 刷新被控端文件夹内容:在右框中右击选择弹出菜单中的“刷新”菜单项, 可对显示的文件及子文件夹刷新显示。
(6) 上传选定文件到被控端:选择被控端,指定要上传的位置,在右边框中单击 右键选择弹出菜单中的“上传文件到⋯”菜单项,等待文件上传,上传完毕后系统给予提示。
5.2.2系统控制
作为木马的破坏功能,系统控制中包括了远程关机、重启、注销、鼠标屏幕控制等功能。选择需要控制的主机,然后点击相应的按钮,即可完成操作。如图5.4。
图5.4系统控制界面
进程管理、网络连接、启动项和系统信息,在设计时也作为系统控制的一部分,
其相应的功能和操作如下:
1、文件管理,实现了对远程主机进程的操作。可以查看当前运行的进程ID ,进程名和文件来源。如图5.5所示,单击“刷新”按钮,则刷新当前的进程列表;选择所需进程,然后点击“结束进程”则可结束该进程。
图5.5 进程管理界面
5.2.3冰河信使
我们还可以通过冰河信使功能和服务器方进行聊天,当主控端发起信使通信之后,受控端也可以向主控端发送消息了。
图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\CurrentVersion\RunServices ”如图5.8所示。
图5.8 注册表中的RunServices 子键
在目录中也发现了一个键值“C :\WINDOWS\system32\Kernel32.exe”将其删除。 Run 和RunServices 中存放的键值是系统启动是启动启动的程序,一般的病毒、木马、后门等都是存放在这些子键目录下,所以要经常检查这些子键目录下的程序,如有不明程序,则要认真检查。
删掉其在注册表中的启动项后,再删除病毒原文件。打开“ C:\WINDWOS\system32”,找到kernel32.exe 将其删除,如图5.9所示。
图5.9 C:\WINDWOS\system32中kernel32.exe 的搜索结果
如图5.10所示,打开“ C:\WINDWOS\system32”,找到sysexplr.exe 将其删除。
图5.10 \WINDWOS\system32中sysexplr.exe 的搜索结果
之后重启之后,冰河木马就彻底被删除掉了。
第六章 结束语
随着互联网信息化进程的迅速深入发展,网络安全问题日渐突出,使得信息安全的内涵也发生了根本性变化。纯病毒时代已经一去不复返,取而代之的是呈几何增长的新型恶意木马类病毒。究其原因,主要是构成针对网络威胁的形式越来越多,攻击手段越来越复杂,并且呈现出综合的多元化的特征。
本文对木马的定义、木马的发展历史、木马的功能、木马的特征和分类、木马的发展现状以及发展趋势进行了较全面的介绍;对木马的工作原理、实体结构和功能进行详细的介绍;对木马的关键技术进行了深入的研究;最后本文设计实现了一个基于反弹端口连接的远程控制木马,该木马程序较成功地实现服务端的主动上线、客户端对服务端的良好控制、服务端良好的伪装和隐藏性以及整个通信过程的秘密性。
本文中实现的木马服务端在目标机运行时,通过种种手段确保隐蔽性和安全性:采用了基于DLL 的程序植入方案,将主程序封装成动态链接库;服务端程序伪装成系统文件,达到混淆的目的;隐藏运行界面和进程,使目标机用户无法察觉服务端的运行。为保证客户端与服务端之间的可靠通信,系统采用了反弹端口技术来穿透防火墙,并且通过第三方来传递连接信息,这些都保证了系统的正常运行。
通过该项目的实施,作者对木马技术、远程控制技术、防火墙技术、信息系统 安全等都有了更加深刻的认识。
特洛伊木马程序的设计与实现 致谢
参考文献
[1] 中国互联网络信息中心(CNNIC ). 第 25 次中国互联网络发展状况统计报告.
[EB/OL].http://www.cnnic.net.cn/html/Dir/2010/01/15/5767.htm.2010
[2]金山.2009年中国电脑病毒疫情及互联网安全报告.
[EB/OL].http://www.soft6.com/html/news/17/176984.shtml.2010.1
[3]刘峰. 互联网进入“木马”经济时代[N].中国企业报,2007年7月9日,第8版.
[4]徐宇茹,李志勇,肖国军.嵌入式计算机木马设计[J].海军航空工程学院学报,2004,19(05):578—579.
[5]杨瑾.基于远程线程插入DLL 技术的嵌套式木马设计[J].计算机与信息技术,2007,(04):78—80.
[6]徐宇茹,李志勇,肖国军.嵌入式计算机木马设计[J].海军航空工程学院学报,2004,19(05):578—579.
[7]刘功申. 计算机病毒及其防范技术[M]. 北京:清华大学出版社,2008.131.
[8]傅建明等. 计算机病毒分析与对抗[M].湖北:武汉大学出版社,2004.299.
[9]刘克勤等编著.谁动了我的电脑[M].北京:中国青年出版社,2003(1):260-286
[10]程胜利.计算机病毒及其防治技术[M].北京:清华大学出版社,2004(1).
[11]Roger Grimes著.恶意传播代码[M].北京机械工业出版社,2004(1).
[12]李新宇. 论特洛伊木马程序及其引发的刑法学问题.[D]:[硕士学位论文].北京:中国政法大学,2007.
目录
第一章 绪论 ................................................................................................................... 1
1.1木马的研究背景 .............................................................................................. 1
1.2木马发展的现状 .............................................................................................. 1
1.3论文研究的意义和目的 .................................................................................. 2
第二章 木马技术基础 ................................................................................................... 3
2.1木马系统结构 .................................................................................................. 3
2.2木马的基本特征 .............................................................................................. 4
2.3木马的功能 ...................................................................................................... 4
2.4木马的分类 ...................................................................................................... 5
第三章 木马工作原理及关键技术 ............................................................................... 7
3.1 木马的伪装 ..................................................................................................... 7
3.2木马的隐藏 ...................................................................................................... 8
3.3木马常见的启动方式 .................................................................................... 10
3.4远程控制技术 ................................................................................................ 11
3.5木马的通信 .................................................................................................... 12
第四章 远程控制木马的设计 ..................................................................................... 13
4.1功能分析 ........................................................................................................ 13
4.2系统总体设计 ................................................................................................ 13
4.3系统实现的关键技术 .................................................................................... 14
4.4 系统的开发工具 ........................................................................................... 14
第五章 远程控制木马的实现 ..................................................................................... 16
5.1服务端程序的实现 ........................................................................................ 16
5.1.1服务端的自启动 ......................................................................................... 16
5.1.2 通信模块的实现 ........................................................................................ 16
5.1.3服务端管理模块 ......................................................................................... 17
5.2客户端的实现 ................................................................................................ 17
5.2.1远程文件控制 ............................................................................................. 18
5.2.2系统控制 ..................................................................................................... 19
5.2.3冰河信使 ..................................................................................................... 20
第六章 结束语 . ............................................................................................................ 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(Back Orifice)和国产的冰河等。
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界面
2、添加主机219.246.132.34(如图3.2所示)
图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(Windows Script Host)脚本,用户无需打开附件,仅仅浏览邮件内容,附件中的木马就会被执行。即使用户删除了WSH 功能,攻击者仍然能通过其他的系统漏洞(如MIME 漏洞) ,在用户浏览邮件时将木马植入到计算机中运行。目前,邮件木马已经从附件走向了正文,简单的浏览也会中毒,一个Guest 用户也可以很容易的通过修改管理员的文件夹设置获得管理员权限。
3.3木马常见的启动方式
木马程序也和其它的计算机软件或程序一样,也必须把自己从硬盘或网上下载 下来,调入系统中运行,从而实际其功能。总体上说来,特洛伊木马程序主要有以下几种启动方式[14]:
1、 随正常的程序启动而启动
一些特洛伊木马程序为隐藏自己,将自己与其它一些正常应用程序捆绑在一起。 一旦用户运行被捆绑文件,特洛伊木马程序就会进入系统运行。甚至一些木马程序将自身捆绑进入系统文件。这样每次系统启动,特洛伊木马程序也会随着启动。
2、 隐藏在配置文件(Autoexec.bat 和Config.sys )中
在Windows 系统中,Config.sys 文件主要是设置一些启动参数和加载驱动程序。 而Autoexec.bat 是系统开机自动运行的批处理文件。在特洛伊木马程序出现的前期,一些狡猾的特洛伊木马程序知道,一般用户平时使用的是图形化界面的操作系统,对于那些重要的系统配置文件几乎是一窍不通,故而也不曾亲身接触过。这样,这
些系统配置文件恰好成为了这些特洛伊木马程序一处绝好的藏身之地。而且特洛伊木马程序还利用配置文件的特殊功能,很容易就能使自己在系统中运行、发作,从而偷窥、监视被害者的秘密或控制被害用户的计算机系统。
3、 潜伏在Win.ini 中
在windows 系统中,Win.ini 文件中提供了WIN 16程序需要的字体设置、文 件关联等信息,主要完成GUI (图形用户接口)的相应的环境配置。特洛伊木马程序要想达到控制或者监视计算机的目的,就必须要运行,然而又不指望用户自运行特洛伊木马程序。所以,特洛伊木马程序就必须在系统中找一个既安全能在统启动时自动运行的地方。
4、 伪装成普通文件
相对而言,这种伪装方式出现的比较晚,不过现在却是十分流行,对于不熟悉 操作系统的普通用户来说,很容易上当。这个伪装方式的具体方法就是把可执行文件伪装成图片或文本—在程序中把图标改成Windows 的默认图片图标, 再把文件名改为*.bmp.exe。由于Windows 系统默认设置是" 不显示已知的文件后缀名", 文件将会显示为*.bmp。用户一不注意点了这个图标,那么特洛伊木马程序就进入系统运行。
5、 内置到注册表中
在Windows 中,注册表由两个文件组成:System.dat 和User.dat ,保存在windows 所在的文件夹中。它们都是由二进制数据组成。System.dat 包含系统硬件和软件的设置,User.dat 保存着与用户有关的信息。
6、 隐蔽在Winstart.bat 中
Winstart.bat 也像Autoexec.bat 一样,是一个能自动被Windows 加载运行的 文件。它多数情况下为应用程序及Windows 自动生成,在执行了Win.com 并加载了多数驱动程序之后开始执行。由于Autoexec.bat 的功能可以由Winstart.bat 代替完成,因此特洛伊木马程序完全可以像在Autoexec.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系统的开发工具
随着计算机应用的发展,开发工具的种类越来越多,功能也越来越强大。不同的开发工具在开发应用中有不同的优点和侧重点。选择一种最适合的开发工具,既能更好地实现系统功能,也能大大减轻开发难度,减少开发工作量,加速开发进程。 选择开发工具,要根据应用程序的实际开发需求进行选择。应用程序的开发发展到今天,良好的用户界面是一个应用程序开发好坏的基础和最直观的条件。网络监控系统的实现不可避免会涉及到用户界面的开发操作,友好的用户界面可以使系统操作简单直观,增加其应用度。现在的程序设计方法已由过去的结构化程序设计发展为面向对象的程序设计。在面向对象的程序设计开发中,可以很轻易方便地实现用户界面的开发,获得良好的用户界面。
当前流行的各种开发工具,如Visual Basic,Visual C#,Delphi ,Java ,PowerBuilder 等等开发软件都是面向对象的开发工具,都可以很容易完成用户界面开发的工作。从用户界面的开发方面来考虑,可以选择当前常用的面向对象的开发工具中的任何一种。开发者可根据自己的喜好选择自己最熟悉的开发工具。
本木马程序要实现对目标主机的控制,就需要服务端与客户端之间不断进行交互;系统管理员需要通过目标监控子系统获得目标主机的信息并对其进行控制,这都是通过网络编程来实现的。在当前较流行的各种开发工具中,支持网络编程、提供较好的Winsock 支持的主要有Visual C#和Java 两种。Visual C#具有强大的功能实现体系,并且具有和Windows 操作系统良好的兼容性,因此选择Visual C#进行系统的网络编程。
第五章 远程控制木马的实现
本章将详细介绍远程控制木马的主要实现过程,包括客户端和服务端的实现;通信模块的实现;程序的界面和功能的测试等。
5.1服务端程序的实现
5.1.1服务端的自启动
本模块通过修改注册表来实现目标监控子系统的自启动。在Windows 系统中,不论是Windows 9X操作系统,还是Windows 2000/XP/NT操作系统,其注册表的结构大体上是基本相同的,都是一种层叠式结构的复杂数据库,由键、子键、分支、值项和缺省值几部分组成。
5.1.2 通信模块的实现
在服务端的功能模块之中,对于通信模块的性能要求比较高。要实现对目标主机的监控和管理,必须以可靠、稳定的数据通信为前提。服务端与客户端之间采用TCP/IP协议进行通信,为了躲避防火墙采用了基于反弹端口机制的C/S(客户机/服务器) 模型:由服务器主动向客户机发出连接请求。
通信模块的开发采用Winsock API,建立基于阻塞模式的流式Sockets 套接字,数据的接收和发送除了与通用流式套接字编程模型相同外,还增加了对数据的处理功能。
通信过程的实现,主要包括C/S模型的实现,数据接收和发送,文件的接收和发送和通信阻塞模式。
1、 基于反弹端口机制的C/S(客户机/服务器) 模型
基于反弹端口机制的C/S模型的通信方式与一般C/S模型的区别仅在于建立连接时的方式不同,基于反弹端口机制的C/S模型建立连接时是由服务器主动向客户机发起连接请求。
客户端首先初始化套接字,然后创建监听Socket ,绑定地址端口,调用函数Listen(),开始监听。服务端则在创建监听套接字后,发起连接请求。客户端接收到连接请求后,再进行后续处理。
2、 接收数据流程
接收数据的函数定义为:
5.1.3服务端管理模块
管理模块是服务端的主模块,它将各个功能模块融合在一起,实现对目标主机的监控和管理。它主要负责接收监控系统的命令,对其命令进行识别解释,并调用各个功能模块,执行管理器命令。因此它和其它模块都有接口,它自身包含的函数主要有文件管理(查看、上传、下载、删除等) 、抓取屏幕等。管理模块的设计思想并不复杂,它的主要任务就是与监控系统建立连接,接收判断监控系统发出的操作 命令并有效执行。
图5.1管理模块过程图
管理模块的流程如图5.1所示。模块初始化主要包括变量初始化和建立互斥体两个过程:在建立连接和发送目标主机基本信息后,管理模块即进入等待命令—判断命令—执行命令一回应信息的命令循环状态,若在此循环中出错(如网络不通,应 答出错) 时,程序将会退回到建立连接的状态。
5.2客户端的实现
客户端是运行在控制端主机上,用来远程控制被控制端的信息和操作。运行客户端程序,出现客户端程序界面(如图5.2)。
图5.2 客户端程序主界面
客户端运行后,修改中间服务器上的客户端信息,包括客户机IP ,开放的端口和链接密码。修改成功后,等待远程主机的上线。如果有远程主机上线,则可以完成的操作有文件控制、系统控制和文件传输。下面将分别介绍。
5.2.1远程文件控制
操作远程主机的文件,完成所需要的目的,包括文件的新建、删除,上传和下载。如图5.3,目前有一台主机上线。
图5.3 文件操作界面
下面对监控被控端的文件操作进行说明:
(1) 选择被控端及路径:在左边一览表中选择一个在线的、可控的被控端,用鼠
标左键单击后,右边框中将显示当前所选中的被控端C 盘目录下的所有文件及文件夹。可以通过改变“驱动器”或直接在当前目录处输入要查看的D 、E 等目录。
(2) 查看文件夹内容:如果要查看其中某文件夹中的文件可选中该文件夹,然后 单击右键弹出菜单,选择“打开”菜单项(或双击打开) ,此时将该文件夹中的文件或子文件夹显示在右框中。
(3) 下载被控端文件:如果要将被控端中的某一文件下载的控制端计算机中,可 单击选中该文件,然后右击选择弹出菜单中的“下载到”菜单项,此时出现要存放下载文件的路径,单击保存按钮。系统将提示是否要打开下载的文件,如果想查看内容,则单击“是”,否则单击“否”。
(4) 删除被控端文件:如果要想删除被控端中的某一文件,则单击选中,右击选 择弹出菜单中的“删除”菜单项,即可删除被控端中的该文件。
(5) 刷新被控端文件夹内容:在右框中右击选择弹出菜单中的“刷新”菜单项, 可对显示的文件及子文件夹刷新显示。
(6) 上传选定文件到被控端:选择被控端,指定要上传的位置,在右边框中单击 右键选择弹出菜单中的“上传文件到⋯”菜单项,等待文件上传,上传完毕后系统给予提示。
5.2.2系统控制
作为木马的破坏功能,系统控制中包括了远程关机、重启、注销、鼠标屏幕控制等功能。选择需要控制的主机,然后点击相应的按钮,即可完成操作。如图5.4。
图5.4系统控制界面
进程管理、网络连接、启动项和系统信息,在设计时也作为系统控制的一部分,
其相应的功能和操作如下:
1、文件管理,实现了对远程主机进程的操作。可以查看当前运行的进程ID ,进程名和文件来源。如图5.5所示,单击“刷新”按钮,则刷新当前的进程列表;选择所需进程,然后点击“结束进程”则可结束该进程。
图5.5 进程管理界面
5.2.3冰河信使
我们还可以通过冰河信使功能和服务器方进行聊天,当主控端发起信使通信之后,受控端也可以向主控端发送消息了。
图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\CurrentVersion\RunServices ”如图5.8所示。
图5.8 注册表中的RunServices 子键
在目录中也发现了一个键值“C :\WINDOWS\system32\Kernel32.exe”将其删除。 Run 和RunServices 中存放的键值是系统启动是启动启动的程序,一般的病毒、木马、后门等都是存放在这些子键目录下,所以要经常检查这些子键目录下的程序,如有不明程序,则要认真检查。
删掉其在注册表中的启动项后,再删除病毒原文件。打开“ C:\WINDWOS\system32”,找到kernel32.exe 将其删除,如图5.9所示。
图5.9 C:\WINDWOS\system32中kernel32.exe 的搜索结果
如图5.10所示,打开“ C:\WINDWOS\system32”,找到sysexplr.exe 将其删除。
图5.10 \WINDWOS\system32中sysexplr.exe 的搜索结果
之后重启之后,冰河木马就彻底被删除掉了。
第六章 结束语
随着互联网信息化进程的迅速深入发展,网络安全问题日渐突出,使得信息安全的内涵也发生了根本性变化。纯病毒时代已经一去不复返,取而代之的是呈几何增长的新型恶意木马类病毒。究其原因,主要是构成针对网络威胁的形式越来越多,攻击手段越来越复杂,并且呈现出综合的多元化的特征。
本文对木马的定义、木马的发展历史、木马的功能、木马的特征和分类、木马的发展现状以及发展趋势进行了较全面的介绍;对木马的工作原理、实体结构和功能进行详细的介绍;对木马的关键技术进行了深入的研究;最后本文设计实现了一个基于反弹端口连接的远程控制木马,该木马程序较成功地实现服务端的主动上线、客户端对服务端的良好控制、服务端良好的伪装和隐藏性以及整个通信过程的秘密性。
本文中实现的木马服务端在目标机运行时,通过种种手段确保隐蔽性和安全性:采用了基于DLL 的程序植入方案,将主程序封装成动态链接库;服务端程序伪装成系统文件,达到混淆的目的;隐藏运行界面和进程,使目标机用户无法察觉服务端的运行。为保证客户端与服务端之间的可靠通信,系统采用了反弹端口技术来穿透防火墙,并且通过第三方来传递连接信息,这些都保证了系统的正常运行。
通过该项目的实施,作者对木马技术、远程控制技术、防火墙技术、信息系统 安全等都有了更加深刻的认识。
特洛伊木马程序的设计与实现 致谢
参考文献
[1] 中国互联网络信息中心(CNNIC ). 第 25 次中国互联网络发展状况统计报告.
[EB/OL].http://www.cnnic.net.cn/html/Dir/2010/01/15/5767.htm.2010
[2]金山.2009年中国电脑病毒疫情及互联网安全报告.
[EB/OL].http://www.soft6.com/html/news/17/176984.shtml.2010.1
[3]刘峰. 互联网进入“木马”经济时代[N].中国企业报,2007年7月9日,第8版.
[4]徐宇茹,李志勇,肖国军.嵌入式计算机木马设计[J].海军航空工程学院学报,2004,19(05):578—579.
[5]杨瑾.基于远程线程插入DLL 技术的嵌套式木马设计[J].计算机与信息技术,2007,(04):78—80.
[6]徐宇茹,李志勇,肖国军.嵌入式计算机木马设计[J].海军航空工程学院学报,2004,19(05):578—579.
[7]刘功申. 计算机病毒及其防范技术[M]. 北京:清华大学出版社,2008.131.
[8]傅建明等. 计算机病毒分析与对抗[M].湖北:武汉大学出版社,2004.299.
[9]刘克勤等编著.谁动了我的电脑[M].北京:中国青年出版社,2003(1):260-286
[10]程胜利.计算机病毒及其防治技术[M].北京:清华大学出版社,2004(1).
[11]Roger Grimes著.恶意传播代码[M].北京机械工业出版社,2004(1).
[12]李新宇. 论特洛伊木马程序及其引发的刑法学问题.[D]:[硕士学位论文].北京:中国政法大学,2007.