木马功能模块研究与设计.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
木马功能模块研究与设计

“木马”功能模块研究与设计 Research and Design of Generic Trojan Functional Structure 摘要:特洛伊木马作为一种计算机网络病毒,对网络环境中计算机信息资源所构成的危害远大于其它病毒。深入地研究木马技术,对防范木马攻击,减少网络破坏,确保信息安全有重要意义。本文以Windows系列操作系统为例,以程序开发者的角度详细分析了木马功能模块, 对各个模块的实现方式、工作原理及远程控制的关键技术进行系统的研究,重点对木马程序的功能实现、隐藏对抗进行设计。本文对木马检测、分析工作有非常重要的指导与参考价值。 关键词:木马 功能  分析 1引言 随着互联网络的快速发展,网络安全问题日益突出。计算机病毒、以及网络蠕虫等恶意程序对网络安全构成了巨大的威胁。其中“木马”的破坏最大,它能在高隐蔽性的状态下窃取信息。完整的木马程序一般由两部份组成一个是服务端程序,一个是客户端控制程序。木马的通信方式按照被控方与施控方建立通信信道的方式可分为直接监听、反弹连接、代理连接、综合连接等方式。不论采用何种通信方式,其基本工作原理都是:施控端向中植木马服务端的主机发送指令,服务端对不同指令进行不同响应的过程。本文以反弹型木马为例,对木马的各功能模块运行原理和设计过程进行详细分析。 2木马功能结构 木马程序虽然其外在功能表现各不相同,但其基本的功能结构是一致的。植入木马程序的目的是为了实现对目标主机长期有效的控守,这就要求木马驻留于目标主机中,系统关机重启之后仍然可以运行。因此木马需要包含一个驻留模块,实现木马在目标机的长期存储。木马和远程控制软件的最大区别在于木马需要在用户不知情的条件下运行,需要对木马自身信息和木马通信信息进行隐藏以躲避杀毒软件的查杀,因此木马中需要包括隐藏对抗模。可控性是木马的另一个特点,要实现可控性,首先要和远程建立稳定的通信连接,以接受远程命令和回送结果。此外,需要对收到的命令进行分析执行,因此通信模块和执行远程命令的任务模块也必不可少[1]。 根据上面的分析,从功能上可以将木马划分为如下模块: ●初始化模块:负责对木马运行过程中使用的信息进行初始化; ●远程控制模块:负责和木马控制端通信,接收控制端的控制命令并把功能模块命令执行的结果发送给控制端; ●驻留模块:负责以一定的方式实现木马程序的自启动,保证目标系统重启之后能自动加载木马执行; ●隐藏模块:负责隐藏木马自身的相关信息,这些信息可能包括文件、注册表、进程,以及通信连接等信息; ●任务模块:负责具体执行控制端下达的任务。任务模块可能包括:键盘记录、文件操作、注册表操作、屏幕获取等。 3远程控制模块 反弹式木马工作模式是:客户端开启一个本地端口来监听远方连接请求,服务端通过一些方法获得客户端IP、端口信息后主动连接它,实现远程控制。反弹式木马的远程控制流程如图1所示: 图1 反弹式木马远程控制流程 (1)客户端运行后,在指定的端口监听,等待远程服务端与之建立连接。当木马成功地在目标主机运行后,会主动连客户端主机的IP和端口,建立命令SOCKET连接。 连接建立完成后,服务端把主机特征信息如:主机ip、主机名称、MAC地址等信息回转给客户端,用以标识与客户端反连的不同主机[6]。 (2)客户端向服务端发送不同的指令使服务端执行相应操作。服务端执行操作有两种类型:一是执行指令较少,必须快速响应客户端的操作,如:浏览文件目录、浏览注册表目录、获取主机信息、文件打包等操作;二是执行的指令较多,数据传输量较大的操作,如远程文件下载、远程屏幕查看、远程摄像头查看等操作。 (3)对需快速响应操作,服务端收到来自客户端的指令后,直接利用命令socket将执行结果发送给客户端,如:服务端接收到显示文件目录命令后,将文件目录列表压缩打包,并通过命令socket回传至客户端进行显示。 (4)对数据传送量大的操作,服务端收到指令后需重新利用connect函数反连客户的ip和端口,目的是获得一条新的TCP socket连接专门用于数据传输。因为传输的数据量较大,执行时间较长,如直接用命令socket回传操作数据,会导致命令socket长时间处于阻塞状态,客户端不能异步发送其它命令,严重影响操作效率。比如:服务端接收到文件下载命令后,会重新反连客户端获取一条新的socket的数据连接,同时开启一个线程用数据连接进行下载数据的传输,这样客户端在实现文件数下载的同时,可以再次通过命令socket发送其它指令进行其它操作。 4驻留模块 木马的驻留方式有很多,按启动方式分为两种,一种是开机自运行的程序,如:启动项写入注册表,服务方式启动,写入WMI脚本数据库等;另一种是触发式启动的程序,如利用DLL hijack技术实现某一系统事件或应用程序操作时,木马

文档评论(0)

cgtk187 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档