特洛伊木马精.ppt
计算机病毒与反病毒技术计算机病毒与反病毒技术计算机病毒与反病毒技术计算机病毒与反病毒技术合肥工合肥工业业大学大学计计算机学院算机学院张仁斌仁斌1特洛伊木马特洛伊木马第1页,本讲稿共44页主要内容主要内容u特洛伊木马的概念特洛伊木马的概念u特洛伊木马的伪装方式、隐藏方式、自动启动方式特洛伊木马的伪装方式、隐藏方式、自动启动方式u特洛伊木马的原理及其危害特洛伊木马的原理及其危害u特洛伊木马的自动启动技术、隐藏技术、远程监控特洛伊木马的自动启动技术、隐藏技术、远程监控技术技术第第7 7章章 特洛伊木马特洛伊木马第2页,本讲稿共44页7.1.1特洛伊木马的定义特洛伊木马的定义u特洛伊木马特洛伊木马(TrojanHorse),简称木马,是一种恶,简称木马,是一种恶意程序,是一种基于远程控制的黑客工具,一旦侵意程序,是一种基于远程控制的黑客工具,一旦侵入用户的计算机,就悄悄地在宿主计算机上运行,入用户的计算机,就悄悄地在宿主计算机上运行,在用户毫无察觉的情况下,让攻击者获得远程访问在用户毫无察觉的情况下,让攻击者获得远程访问和控制系统的权限,进而在用户的计算机中修改文和控制系统的权限,进而在用户的计算机中修改文件、修改注册表、控制鼠标、监视件、修改注册表、控制鼠标、监视/控制键盘,或窃控制键盘,或窃取用户信息取用户信息u古希腊特洛伊之战中利用木马攻陷特洛伊城;现代古希腊特洛伊之战中利用木马攻陷特洛伊城;现代网络攻击者利用木马,采用伪装、欺骗网络攻击者利用木马,采用伪装、欺骗(哄骗,哄骗,Spoofing)等手段进入被攻击的计算机系统中,窃等手段进入被攻击的计算机系统中,窃取信息,实施远程监控取信息,实施远程监控7.1 特洛伊木马概述特洛伊木马概述第3页,本讲稿共44页7.1.1特洛伊木马的定义特洛伊木马的定义u木马与病毒木马与病毒8一般情况下,病毒是依据其能够进行自我复制即传染性的特点而定义的一般情况下,病毒是依据其能够进行自我复制即传染性的特点而定义的8特洛伊木马主要是根据它的有效载体,或者是其功能来定义的,更多情特洛伊木马主要是根据它的有效载体,或者是其功能来定义的,更多情况下是根据其意图来定义的况下是根据其意图来定义的8木马一般不进行自我复制,但具有寄生性,如捆绑在合法程序中得木马一般不进行自我复制,但具有寄生性,如捆绑在合法程序中得到安装、启动木马的权限,到安装、启动木马的权限,DLL木马甚至采用动态嵌入技术寄生在木马甚至采用动态嵌入技术寄生在合法程序的进程中合法程序的进程中8木马一般不具有普通病毒所具有的自我繁殖、主动感染传播等特性,木马一般不具有普通病毒所具有的自我繁殖、主动感染传播等特性,但我们习惯上将其纳入广义病毒,也就是说,木马也是广义病毒的但我们习惯上将其纳入广义病毒,也就是说,木马也是广义病毒的一个子类一个子类u木马的最终意图是窃取信息、实施远程监控木马的最终意图是窃取信息、实施远程监控u木马与合法远程控制软件木马与合法远程控制软件(如如pcAnyWhere)的主要区别在于是否具的主要区别在于是否具有隐蔽性、是否具有非授权性有隐蔽性、是否具有非授权性7.1 7.1 特洛伊木马概述特洛伊木马概述第4页,本讲稿共44页7.1.2特洛伊木马的结构特洛伊木马的结构u木马系统软件一般由木马配置程序、控制程序和木木马系统软件一般由木马配置程序、控制程序和木马程序马程序(服务器程序服务器程序)三部分组成三部分组成7.1 7.1 特洛伊木马概述第5页,本讲稿共44页7.1.3特洛伊木马的基本原理特洛伊木马的基本原理u运用木马实施网络入侵的基本过程运用木马实施网络入侵的基本过程7.1 特洛伊木马概述特洛伊木马概述第6页,本讲稿共44页7.1.3特洛伊木马的基本原理特洛伊木马的基本原理u用用netstat查看木马打开的端口查看木马打开的端口7.1 7.1 特洛伊木马概述特洛伊木马概述第7页,本讲稿共44页7.1.3特洛伊木马的基本原理特洛伊木马的基本原理u木马控制端与服务端连接的建立木马控制端与服务端连接的建立8控制端要与服务端建立连接必须知道服务端的木控制端要与服务端建立连接必须知道服务端的木马端口和马端口和IP地址地址8由于木马端口是事先设定的,为已知项,所以最由于木马端口是事先设定的,为已知项,所以最重要的是如何获得服务端的重要的是如何获得服务端的IP地址地址8获得服务端的获得服务端的IP地址的方法主要有两种:信息反地址的方法主要有两种:信息反馈和馈和IP扫描扫描7.1 7.1 特洛伊木马概述第8页,本讲稿共44页7.1.3特洛伊木马的基本原理特洛伊木马的基本原理木马控制端与服务端连接的建立木马控制端与服务端连接的建立7.1 7.1 特洛伊木马概述特洛伊木马概述第9页,本讲稿共44页7.1.3特洛伊木马的基本原理特洛伊木马的基本原理u木马通道与远程控制木马通道与远程控制8木马连接建立后,控制端端口和服务端木马端口木马连接建立后,控制端端口和服务端木马端口之间将会出现一条通道之间将会出现一条通道8控制端上的控制端程序可藉这条通道与服务端上控制端上的控制端程序可藉这条通道与服务端上的木马程序取得联系,并通过木马程序对服务端的木马程序取得联系,并通过木马程序对服务端进行远程控制,实现的远程控制就如同本地操作进行远程控制,实现的远程控制就如同本地操作7.1 7.1 特洛伊木马概述特洛伊木马概述第10页,本讲稿共44页7.1.3特洛伊木马的基本原理特洛伊木马的基本原理u木马的基本原理木马的基本原理8特洛伊木马包括客户端和服务器端两个部分,也就是说,木马其实是一特洛伊木马包括客户端和服务器端两个部分,也就是说,木马其实是一个服务器个服务器-客户端程序客户端程序8攻击者通常利用一种称为绑定程序攻击者通常利用一种称为绑定程序(exe-binder)的工具将木马服务的工具将木马服务器绑定到某个合法软件上,诱使用户运行合法软件。只要用户运器绑定到某个合法软件上,诱使用户运行合法软件。只要用户运行该软件,特洛伊木马的服务器就在用户毫无察觉的情况下完成行该软件,特洛伊木马的服务器就在用户毫无察觉的情况下完成了安装过程了安装过程8攻击者要利用客户端远程监视、控制服务器,必需先建立木攻击者要利用客户端远程监视、控制服务器,必需先建立木马连接;而建立木马连接,必需先知道网络中哪一台计算机马连接;而建立木马连接,必需先知道网络中哪一台计算机中了木马中了木马8获取到木马服务器的信息之后,即可建立木马服务器和客户获取到木马服务器的信息之后,即可建立木马服务器和客户端程序之间的联系通道,攻击者就可以利用客户端程序向服端程序之间的联系通道,攻击者就可以利用客户端程序向服务器程序发送命令,达到操控用户计算机的目的务器程序发送命令,达到操控用户计算机的目的7.1 7.1 特洛伊木马概述特洛伊木马概述第11页,本讲稿共44页7.1.4特洛伊木马的传播方式特洛伊木马的传播方式u木马常用的传播方式,有以下几种:木马常用的传播方式,有以下几种:8以邮件附件的形式传播以邮件附件的形式传播控制端将木马伪装之后添加到附件中,发送给收件人控制端将木马伪装之后添加到附件中,发送给收件人8通过通过OICQ、QQ等聊天工具软件传播等聊天工具软件传播在进行聊天时,利用文件传送功能发送伪装过的木马程序给对在进行聊天时,利用文件传送功能发送伪装过的木马程序给对方方8通过提供软件下载的网站通过提供软件下载的网站(Web/FTP/BBS)传播传播木马程序一般非常小,只有是几木马程序一般非常小,只有是几K到几十到几十K,如果把木马捆绑到其它,如果把木马捆绑到其它正常文件上,用户是很难发现的,所以,有一些网站被人利用,正常文件上,用户是很难发现的,所以,有一些网站被人利用,提供的下载软件往往捆绑了木马文件,在用户执行这些下载的提供的下载软件往往捆绑了木马文件,在用户执行这些下载的文件的同时,也运行了木马文件的同时,也运行了木马8通过一般的病毒和蠕虫传播通过一般的病毒和蠕虫传播8通过带木马的磁盘和光盘进行传播通过带木马的磁盘和光盘进行传播7.1 7.1 特洛伊木马概述特洛伊木马概述第12页,本讲稿共44页7.1.5特洛伊木马的危害特洛伊木马的危害u木马的危害即木马能实现的功能,包括:木马的危害即木马能实现的功能,包括:8窃取数据窃取数据8接受非授权操作者的指令接受非授权操作者的指令8远程管理服务端进程远程管理服务端进程8篡改文件和数据篡改文件和数据8删除文件和数据删除文件和数据8操纵注册表操纵注册表8监视服务器的一切动作监视服务器的一切动作8释放病毒释放病毒8使系统自毁使系统自毁7.1 7.1 特洛伊木马概述特洛伊木马概述第13页,本讲稿共44页7.2.1特洛伊木马的特性特洛伊木马的特性u特洛伊木马具有如下特性:特洛伊木马具有如下特性:8隐蔽性隐蔽性8非授权性非授权性8欺骗性欺骗性8自动运行性自动运行性8自动恢复性自动恢复性8主动性主动性8功能的特殊性功能的特殊性7.2 7.2 特洛伊木马的特性与分类特洛伊木马的特性与分类第14页,本讲稿共44页7.2.2特洛伊木马的分类特洛伊木马的分类u按照对计算机的破坏按照对计算机的破坏方式分类方式分类8破坏型破坏型8密码发送型密码发送型8远程访问型远程访问型8键盘记录型键盘记录型8DoS攻击型攻击型8代理型代理型8FTP型型8程序杀手型程序杀手型u按传输方式分类按传输方式分类8主动型主动型8反弹端口型反弹端口型8嵌入式木马嵌入式木马7.2 7.2 特洛伊木马的特性与分类特洛伊木马的特性与分类第15页,本讲稿共44页7.3.1木马的伪装方式木马的伪装方式u木马通过伪装达到降低用户警觉、欺骗用户的目的木马通过伪装达到降低用户警觉、欺骗用户的目的8修改图标修改图标8捆绑文件捆绑文件8出错提示出错提示8自我销毁自我销毁8木马更名木马更名7.3 7.3 特洛伊木马的伪装、隐藏与启动特洛伊木马的伪装、隐藏与启动第16页,本讲稿共44页7.3.2木马的隐藏方式木马的隐藏方式u木马的隐藏方式木马的隐藏方式8在任务栏里隐藏在任务栏里隐藏8在任务管理器里隐藏在任务管理器里隐藏8定制端口定制端口8隐藏通讯隐藏通讯8新型隐身技术新型隐身技术7.3 7.3 特洛伊木马的伪装、隐藏与启动特洛伊木马的伪装、隐藏与启动第17页,本讲稿共44页7.3.3木马的启动方式木马的启动方式u经常用的方法主要有以下几种经常用的方法主要有以下几种8集成集成(捆绑捆绑)到应用程序中到应用程序中8隐藏在隐藏在Autoexec.bat和和Config.sys中中8潜伏在潜伏在Win.ini中中8在在System.ini中藏身中藏身8隐蔽在隐蔽在Winstart.bat中中8隐藏在应用程序的启动配置文件中隐藏在应用程序的启动配置文件中8伪装在普通文件中伪装在普通文件中8内置到注册表中内置到注册表中8隐形于启动组中隐形于启动组中8修改文件关联修改文件关联8修改运行可执行文件的方式修改运行可执行文件的方式8设置在超级链接中设置在超级链接中7.3 7.3 特洛伊木马的伪装、隐藏与启动特洛伊木马的伪装、隐藏与启动第18页,本讲稿共44页7.4.1特洛伊木马技术的发展特洛伊木马技术的发展u木马的发展及成熟,大致也经历了两个阶段木马的发展及成熟,大致也经历了两个阶段8Unix阶段阶段8Windows阶段阶段u木马技术发展至今,已经经历了木马技术发展至今,已经经历了4代代8第一代木马第一代木马只是进行简单的密码窃取、发送等,没有什么特别之处只是进行简单的密码窃取、发送等,没有什么特别之处8第二代木马第二代木马在密码窃取、发送等技术上有了很大的进步,冰河可以说是国内木马的典在密码窃取、发送等技术上有了很大的进步,冰河可以说是国内木马的典型代表之一型代表之一8第三代木马第三代木马在数据传输技术上,又做了不小的改进,出现了在数据传输技术上,又做了不小的改进,出现了ICMP等类型的木马,等类型的木马,利用畸形报文传递数据,增加了查杀的难度利用畸形报文传递数据,增加了查杀的难度8第四代木马第四代木马在进程隐藏方面,做了很大的改动,采用了内核插入式的嵌入方式,在进程隐藏方面,做了很大的改动,采用了内核插入式的嵌入方式,利用远程插入线程技术,嵌入利用远程插入线程技术,嵌入DLL线程;或者挂接线程;或者挂接PSAPI(ProcessStatusAPI),实现木马程序的隐藏,实现木马程序的隐藏7.4 透视木马开发技术透视木马开发技术第19页,本讲稿共44页7.4.2木马程序的自动启动技术木马程序的自动启动技术u木马程序的第一次运行,需要用户主动执行,这一木马程序的第一次运行,需要用户主动执行,这一次主要是利用伪装方式诱骗用户运行安装木马程序。次主要是利用伪装方式诱骗用户运行安装木马程序。此后,一般会在用户启动系统的同时自动加载木马此后,一般会在用户启动系统的同时自动加载木马程序程序u让程序自动运行的方法比较多让程序自动运行的方法比较多8加载程序到启动组,写程序启动路径到注册表的加载程序到启动组,写程序启动路径到注册表的自动启动键值自动启动键值8修改修改Boot.ini8通过注册表里的输入法键值直接挂接启动通过注册表里的输入法键值直接挂接启动8通过修改通过修改Explorer.exe启动参数等方法启动参数等方法7.4 透视木马开发技术透视木马开发技术第20页,本讲稿共44页7.4.3木马的伪隐藏技术木马的伪隐藏技术u进程、线程和服务进程、线程和服务8进程进程一个正常的一个正常的Windows应用程序,在运行之后,都会在系统之中产生一应用程序,在运行之后,都会在系统之中产生一个进程,同时,每个进程,分别对应了一个不同的个进程,同时,每个进程,分别对应了一个不同的PID(ProgressID,进,进程标识符程标识符)。这个进程会被系统分配一个虚拟的内存地址空间,一切相关。这个进程会被系统分配一个虚拟的内存地址空间,一切相关的程序操作,都会在这个虚拟的空间中进行的程序操作,都会在这个虚拟的空间中进行8线程线程一个进程,可以存在一个或多个线程,线程之间同步执行多种操作。一般一个进程,可以存在一个或多个线程,线程之间同步执行多种操作。一般情况下,线程之间是相互独立的,当一个线程发生错误的时候,并不一定情况下,线程之间是相互独立的,当一个线程发生错误的时候,并不一定会导致整个进程的崩溃会导致整个进程的崩溃8服务服务一个进程当以服务的方式工作的时候,它将在后台工作,一个进程当以服务的方式工作的时候,它将在后台工作,Windows9x下不会出现在进程列表中,但是,在下不会出现在进程列表中,但是,在WindowsNT/2000下,下,仍然会显示在进程列表中,并且可以通过服务管理器检查任何的服务程序仍然会显示在进程列表中,并且可以通过服务管理器检查任何的服务程序是否被启动运行是否被启动运行7.4 7.4 透视木马开发技术透视木马开发技术第21页,本讲稿共44页7.4.3木马的伪隐藏技术木马的伪隐藏技术u伪隐藏与真隐藏伪隐藏与真隐藏8隐藏木马的服务器端,可以伪隐藏,也可以是真隐藏隐藏木马的服务器端,可以伪隐藏,也可以是真隐藏伪隐藏伪隐藏指程序的进程仍然存在,只不过是让他消失在进程列表中指程序的进程仍然存在,只不过是让他消失在进程列表中真隐藏真隐藏程序彻底地消失,不是以一个进程或者服务的方式工作程序彻底地消失,不是以一个进程或者服务的方式工作8伪隐藏的方法伪隐藏的方法把木马服务器端的程序注册为一个服务就可以从进程列表中消失,因为系把木马服务器端的程序注册为一个服务就可以从进程列表中消失,因为系统不认为它是一个进程。但是,这种方法只适用于统不认为它是一个进程。但是,这种方法只适用于Windows9x的系统,的系统,对于对于WindowsNT、Windows2000等,通过服务管理器,照样会发等,通过服务管理器,照样会发现在系统中注册过的服务现在系统中注册过的服务7.4 7.4 透视木马开发技术第22页,本讲稿共44页7.4.3木马的伪隐藏技术木马的伪隐藏技术WindowsNT/2000下的伪隐藏下的伪隐藏API的拦截技术,也称作进程欺骗技术。在的拦截技术,也称作进程欺骗技术。在Windows中有多种方法能够看到进程的存在:中有多种方法能够看到进程的存在:PSAPI(ProcessStatusAPI)、)、PDH(PerformanceDataHelper)、)、ToolHelpAPI。如果能够欺骗用户或入侵检。如果能够欺骗用户或入侵检测软件用来查看进程的函数测软件用来查看进程的函数(例如截获相应的例如截获相应的API调用,替换返回的数据调用,替换返回的数据),就完全能实现进,就完全能实现进程隐藏程隐藏例如,通过建立一个后台的系统钩子,拦截例如,通过建立一个后台的系统钩子,拦截PSAPI的的EnumProcessModules等相关的函等相关的函数来实现对进程和服务的遍历调用的控制,当数来实现对进程和服务的遍历调用的控制,当检测到进程检测到进程ID(PID)为木马程序的服务器端进为木马程序的服务器端进程的时候直接跳过,这样就实现了进程的隐藏程的时候直接跳过,这样就实现了进程的隐藏7.4 7.4 透视木马开发技术第23页,本讲稿共44页7.4.3木马的伪隐藏技术木马的伪隐藏技术8通过注册服务程序,实现进程伪隐藏通过注册服务程序,实现进程伪隐藏WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)try try DWORD dwVersion=GetVersion();/DWORD dwVersion=GetVersion();/取得取得WindowsWindows的版本号的版本号 if(dwVersion=0 x80000000)/Windows 9xif(dwVersion=0 x80000000)/Windows 9x隐藏进程列表隐藏进程列表 int(CALLBACK*rsp)(DWORD,DWORD);int(CALLBACK*rsp)(DWORD,DWORD);HINSTANCE HINSTANCE dll=LoadLibrary(KERNEL32.DLL);/dll=LoadLibrary(KERNEL32.DLL);/装装入入KERNEL32.DLLKERNEL32.DLL /找到找到RegisterServiceProcessRegisterServiceProcess的入口的入口:rsp=(int(CALLBACK*)(DWORD,DWORD)GetProcAddress(dll,rsp=(int(CALLBACK*)(DWORD,DWORD)GetProcAddress(dll,RegisterServiceProcess);RegisterServiceProcess);rsp(NULL,1);/rsp(NULL,1);/注册服务注册服务 FreeLibrary(dll);/FreeLibrary(dll);/释放释放DLLDLL模块模块 catch(Exception&exception)/catch(Exception&exception)/处理异常事件处理异常事件 return 0;return 0;7.4 透视木马开发技术透视木马开发技术第24页,本讲稿共44页7.4.4木马的真隐藏技术木马的真隐藏技术u真隐藏则是让程序彻底地消失,不是以一个进程或真隐藏则是让程序彻底地消失,不是以一个进程或者服务的方式工作者服务的方式工作u当进程为真隐藏的时候,那么这个木马服务器运行当进程为真隐藏的时候,那么这个木马服务器运行之后,就不应该具备一般进程的表现,也不应该具之后,就不应该具备一般进程的表现,也不应该具备服务的表现,也就是说,完全溶进了系统的内核备服务的表现,也就是说,完全溶进了系统的内核8不把木马作为一个应用程序,而把它作为一个线不把木马作为一个应用程序,而把它作为一个线程、一个其他应用程序的线程,将其注入到其他程、一个其他应用程序的线程,将其注入到其他应用程序的地址空间,而这个应用程序对于系统应用程序的地址空间,而这个应用程序对于系统来说,是一个必不可少、绝对安全的程序,这样,来说,是一个必不可少、绝对安全的程序,这样,就达到了彻底隐藏的效果,这样的结果,增加了就达到了彻底隐藏的效果,这样的结果,增加了查杀木马的难度查杀木马的难度7.4 7.4 透视木马开发技术透视木马开发技术第25页,本讲稿共44页7.4.4木马的真隐藏技术木马的真隐藏技术u利用利用DLL实现简单隐藏实现简单隐藏8假设编写了一个木马假设编写了一个木马DLL,并且通过别的进程来运行它,那么,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现该进程而无论是入侵检测软件还是进程列表中,都只会出现该进程而并不会出现该木马并不会出现该木马DLL8如果该进程是可信进程如果该进程是可信进程(如资源管理器如资源管理器Explorer.exe),那么木,那么木马马DLL作为该进程的一部分,也将成为被信赖的一员而为所欲为作为该进程的一部分,也将成为被信赖的一员而为所欲为8运行运行DLL文件最简单的方法是利用文件最简单的方法是利用RunDLL32.exeRundll32.exeMyDllMyFunc8如果在如果在MyDll.DLL的的MyFunc函数中实现了木马的功能,在系统管理函数中实现了木马的功能,在系统管理员看来,进程列表中增加的是员看来,进程列表中增加的是Rundll32.exe而并不是木马文件,而并不是木马文件,这样也是木马的一种简易欺骗和自我保护方法这样也是木马的一种简易欺骗和自我保护方法7.4 7.4 透视木马开发技术第26页,本讲稿共44页7.4.4木马的真隐藏技术木马的真隐藏技术uDLL木马木马8使用使用RunDLL32的方法进行进程隐藏是简易的,但非常容易被的方法进行进程隐藏是简易的,但非常容易被识破识破8比较高级的方法是使用比较高级的方法是使用DLL木马木马工作原理是替换常用的工作原理是替换常用的DLL文件,截获并处理特定的消息,将文件,截获并处理特定的消息,将正常的调用转发给原正常的调用转发给原DLL例如,例如,Windows的的Socket1.x的函数都存放在的函数都存放在wsock32.dll中,中,可以写一个可以写一个wsock32.dll文件,替换原先的文件,替换原先的wsock32.dll(将其将其重命名为重命名为wsockold.dll,完全实现原,完全实现原DLL的功能是比较麻烦的事的功能是比较麻烦的事情,一般也没这个必要情,一般也没这个必要)DLL木马木马wsock32.dll只做两件事:一是如果遇到不认识的调只做两件事:一是如果遇到不认识的调用,就直接转发给用,就直接转发给wsockold.dll(使用函数转发器使用函数转发器forward);二是遇到特殊的请求;二是遇到特殊的请求(事先约定的事先约定的)就解码并处理。这样,理就解码并处理。这样,理论上只要木马编写者通过论上只要木马编写者通过Socket远程输入一定的暗号,就可远程输入一定的暗号,就可以控制以控制wsock32.dll(木马木马DLL)做任何操作做任何操作7.4 7.4 透视木马开发技术透视木马开发技术第27页,本讲稿共44页7.4.4木马的真隐藏技术木马的真隐藏技术DLL木马技术是比较古老的技术,因此微软也对此做了相当的防木马技术是比较古老的技术,因此微软也对此做了相当的防范范在在Windows2000的的system32目录下有一个目录下有一个dllcache目录,一目录,一旦操作系统发现被保护的旦操作系统发现被保护的DLL文件被篡改文件被篡改(利用数字签名技利用数字签名技术术),就会自动从,就会自动从dllcache中恢复该文件中恢复该文件这个方法也不能算是这个方法也不能算是DLL木马的最佳选择木马的最佳选择8采用动态嵌入技术的采用动态嵌入技术的DLL木马木马DLL木马的最高境界是动态嵌入技术木马的最高境界是动态嵌入技术动态嵌入技术是指将自己的代码嵌入正在运行的进程中的技术。动态嵌入技术是指将自己的代码嵌入正在运行的进程中的技术。Windows系统中的每个进程都有自己的私有内存空间,一般系统中的每个进程都有自己的私有内存空间,一般不允许别的进程对这个私有空间进行操作,但是实际上,仍然不允许别的进程对这个私有空间进行操作,但是实际上,仍然可以利用种种方法进入并操作进程的私有内存。在多种动态嵌可以利用种种方法进入并操作进程的私有内存。在多种动态嵌入技术入技术(窗口钩子即窗口钩子即Hook函数、挂接函数、挂接API、远程线程、远程线程)中,常用的中,常用的是远程线程技术是远程线程技术7.4 7.4 透视木马开发技术第28页,本讲稿共44页7.4.4木马的真隐藏技术木马的真隐藏技术在进程中,可以通过在进程中,可以通过CreateThread函数创建线程函数创建线程通过通过CreateRemoteThread也同样可以在另一个也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以进程内创建新线程,被创建的远程线程同样可以共享远程进程的地址空间共享远程进程的地址空间创建一个远程线程,进入远程进程的内存地址空创建一个远程线程,进入远程进程的内存地址空间,就拥有了该远程进程的权限,可以启动一个间,就拥有了该远程进程的权限,可以启动一个DLL木马,甚至随意篡改该进程的数据木马,甚至随意篡改该进程的数据7.4 透视木马开发技术透视木马开发技术第29页,本讲稿共44页7.4.4木马的真隐藏技术木马的真隐藏技术u动态嵌入的实现步骤动态嵌入的实现步骤8通过通过OpenProcess函数打开试图嵌入的进程函数打开试图嵌入的进程因为需要写入远程进程的内存地址空间,所以必须申请足够的权限,包括因为需要写入远程进程的内存地址空间,所以必须申请足够的权限,包括远程创建线程、远程远程创建线程、远程VM操作、远程操作、远程VM写权限写权限8为为LoadLibraryW函数线程启动函数线程启动DLL木马准备参数木马准备参数LoadLibraryW函数是在函数是在kernel32.dll中定义的一个功能函数,用中定义的一个功能函数,用于加载于加载DLL文件,它只有一个参数,就是文件,它只有一个参数,就是DLL文件的绝对路径名文件的绝对路径名(也也就是木马就是木马DLL文件的全路径文件名文件的全路径文件名)。由于木马。由于木马DLL是在远程进程内调是在远程进程内调用的,所以还需要将这个文件名复制到远程地址空间用的,所以还需要将这个文件名复制到远程地址空间8计算计算LoadLibraryW的入口地址,启动远程线程的入口地址,启动远程线程LoadLibraryW,通,通过远程线程调用木马过远程线程调用木马DLL7.4 7.4 透视木马开发技术透视木马开发技术第30页,本讲稿共44页7.4.4木马的真隐藏技术木马的真隐藏技术u可以用远程线程技术启动木马可以用远程线程技术启动木马DLL,也可以事先将,也可以事先将一段代码复制到远程进程的内存空间,然后通过远一段代码复制到远程进程的内存空间,然后通过远程线程起动这段代码程线程起动这段代码u无论是采取哪种方式,都是让木马的核心代码运行无论是采取哪种方式,都是让木马的核心代码运行于别的进程的内存空间,这样不仅能很好地隐藏自于别的进程的内存空间,这样不仅能很好地隐藏自己,也能更好地保护自己己,也能更好地保护自己u此时的木马,不仅欺骗、进入用户的计算机,甚至此时的木马,不仅欺骗、进入用户的计算机,甚至进入了用户进程的内部。从某种意义上说,这种木进入了用户进程的内部。从某种意义上说,这种木马已经具备了普通病毒的很多特性,如寄生性马已经具备了普通病毒的很多特性,如寄生性(与宿与宿主同生共死主同生共死)7.4 7.4 透视木马开发技术透视木马开发技术第31页,本讲稿共44页7.4.5木马的秘密信道技术木马的秘密信道技术u木马程序的数据传递方法木马程序的数据传递方法8利用利用TCP、UDP传输数据传输数据利用利用WinSock与目标机的指定端口建立连接,使与目标机的指定端口建立连接,使用用send和和recv等等API进行数据的传递进行数据的传递这种方法的隐蔽性比较差,在命令行状态下使用这种方法的隐蔽性比较差,在命令行状态下使用netstat命令,就可以查看到当前的活动命令,就可以查看到当前的活动TCP、UDP连接连接8攻击者为了不让用户察觉其与木马程序之间的通攻击者为了不让用户察觉其与木马程序之间的通信,经常使用各种协议来建立控制服务端的秘密信,经常使用各种协议来建立控制服务端的秘密通信隧道通信隧道利用利用ICMP协议建立秘密通道协议建立秘密通道利用利用HTTP协议建立秘密通道协议建立秘密通道7.4 7.4 透视木马开发技术透视木马开发技术第32页,本讲稿共44页7.4.5木马的秘密信道技术木马的秘密信道技术u利用利用ICMP协议建立秘密通道协议建立秘密通道8ICMP回显请求回显请求(type=0)和回显应答和回显应答(type=8)报文报文8规范约定规范约定ICMP报文中的标识符和序列号字段由发送端任意选择,因此报文中的标识符和序列号字段由发送端任意选择,因此在在ICMP包中标识符、序列号和选项数据等部分都可用来秘密携包中标识符、序列号和选项数据等部分都可用来秘密携带信息带信息8由于防火墙、入侵检测系统等网络设备通常只检查由于防火墙、入侵检测系统等网络设备通常只检查ICMP报文的首部,报文的首部,因此使用因此使用ICMP建立秘密通道时往往直接把数据放到选项数据中建立秘密通道时往往直接把数据放到选项数据中8这类秘密信道可以实现直接的客户端和服务端通信,具有准实时这类秘密信道可以实现直接的客户端和服务端通信,具有准实时的特点的特点7.4 7.4 透视木马开发技术透视木马开发技术第33页,本讲稿共44页7.4.5木马的秘密信道技术木马的秘密信道技术u利用利用HTTP协议建立秘密通道协议建立秘密通道8利用反弹端口型木马的利用反弹端口型木马的“逆向连接逆向连接”技术建立木技术建立木马连接马连接8是合并端口法是合并端口法使用特殊的手段,在一个端口上同时绑定两个使用特殊的手段,在一个端口上同时绑定两个TCP或者或者UDP连接,通过把木马端口绑定于特定连接,通过把木马端口绑定于特定的服务端口之上,比如的服务端口之上,比如HTTP的的80端口,使得其端口,使得其秘密通信对防火墙更具迷惑性,从而降低秘密通秘密通信对防火墙更具迷惑性,从而降低秘密通信流量被发现的风险信流量被发现的风险8使用报文伪装技术建立秘密信道使用报文伪装技术建立秘密信道将数据插入到将数据插入到HTTP协议报文的一些无用的段内,协议报文的一些无用的段内,然后利用建立然后利用建立TCP连接的三次握手规则进行秘密连接的三次握手规则进行秘密通信通信7.4 7.4 透视木马开发技术透视木马开发技术第34页,本讲稿共44页7.4.6木马的远程监控技术木马的远程监控技术u木马的远程监控技术,包括木马的远程监控技术,包括8远程监视技术远程监视技术对服务端计算机的监视,包括对鼠标、键盘以及对服务端计算机的监视,包括对鼠标、键盘以及屏幕显示、甚至网络流量流向的监视,也包括对屏幕显示、甚至网络流量流向的监视,也包括对服务端计算机系统信息服务端计算机系统信息(如磁盘信息、操作系统信如磁盘信息、操作系统信息、硬件信息息、硬件信息)的搜集的搜集8远程控制技术远程控制技术远程控制则是攻击者控制服务端计算机按照自己远程控制则是攻击者控制服务端计算机按照自己的意愿,运行某程序或关闭某服务,包括控制服的意愿,运行某程序或关闭某服务,包括控制服务端计算机的鼠标、键盘、操作系统、文件系统,务端计算机的鼠标、键盘、操作系统、文件系统,或者让其启动或者让其启动/停止某种服务程序,甚至关闭服务停止某种服务程序,甚至关闭服务端计算机端计算机8远程监控功能是木马最主要的功能,也是木马的远程监控功能是木马最主要的功能,也是木马的最终目的最终目的7.4 7.4 透视木马开发技术第35页,本讲稿共44页7.5.1中木马后常出现的状况中木马后常出现的状况u发现以下异常,应当检查计算机是否感染了木马发现以下异常,应当检查计算机是否感染了木马8当浏览一个网站时,弹出来一些广告窗口是很正常的事情,可是如果用当浏览一个网站时,弹出来一些广告窗口是很正常的事情,可是如果用户根本没有打开浏览器,而浏览器突然自己打开,并且进入某个网站,户根本没有打开浏览器,而浏览器突然自己打开,并且进入某个网站,那么,就要怀疑是否中了木马那么,就要怀疑是否中了木马8正在操作计算机,突然一个警告框或者是询问框弹出来,问一些正在操作计算机,突然一个警告框或者是询问框弹出来,问一些用户从来没有在计算机上接触过的问题用户从来没有在计算机上接触过的问题8Windows系统配置经常被莫名其妙地自动更改系统配置经常被莫名其妙地自动更改8总是无缘无故地读硬盘,软驱灯经常自己亮起,网络连接及总是无缘无故地读硬盘,软驱灯经常自己亮起,网络连接及鼠标屏幕出现异常现象鼠标屏幕出现异常现象8计算机意外地打开了某个端口,用嗅探器发现存在异常的网络数据计算机意外地打开了某个端口,用嗅探器发现存在异常的网络数据传输传输8拨号上网用户离线操作计算机时,突然弹出拨号对话框拨号上网用户离线操作计算机时,突然弹出拨号对话框7.5 7.5 检测和清除特洛伊木马检测和清除特洛伊木马第36页,本讲稿共44页7.5.2检测和清除木马的方法检测和清除木马的方法u反击恶意代码,最佳的武器是最新的、成熟的病毒反击恶意代码,最佳的武器是最新的、成熟的病毒扫描工具扫描工具u扫描工具能够检测出大多数特洛伊木马,并尽可能扫描工具能够检测出大多数特洛伊木马,并尽可能地使清理过程自动化地使清理过程自动化u许多管理员过分依赖某些专门针对特洛伊木马的工许多管理员过分依赖某些专门针对特洛伊木马的工具来检测和清除木马,但某些工具的效果令人怀疑,具来检测和清除木马,但某些工具的效果令人怀疑,至少不值得完全信任,更何况任何工具软件在防治至少不值得完全信任,更何况任何工具软件在防治新木马时都存在一定的滞后性新木马时都存在一定的滞后性7.5 7.5 检测和清除特洛伊木马检测和清除特洛伊木马第37页,本讲稿共44页7.5.2检测和清除木马的方法检测和清除木马的方法u检测和清除木马的一般流程检测和清除木马的一般流程(对于动态嵌入式对于动态嵌入式DLL木木马,一般不是查看端口,而是查看内存模块马,一般不是查看端口,而是查看内存模块)8特洛伊木马入侵的一个明显证据是受害计算机上特洛伊木马入侵的一个明显证据是受害计算机上意外地打开了某个端口意外地打开了某个端口7.5 7.5 检测和清除特洛伊木马用用Netstat检测检测BO木马木马第38页,本讲稿共44页7.5.2检测和清除木马的方法检测和清除木马的方法8WindowsXP的的Netstat工工具提供了一个具提供了一个新的新的-o选项,选项,能够显示出正能够显示出正在使用端口的在使用端口的程序或服务的程序或服务的进程标识符进程标识符(PID)。有了。有了PID,用任务,用任务管理器就可以管理器就可以方便地根据方便地根据PID找到对应的找到对应的程序,以便终程序,以便终止之止之进程标识符进程标识符PID与映射名称与映射名称7.5 7.5 检测和清除特洛伊木马检测和清除特洛伊木马第39页,本讲稿共44页7.5.3木马木马“广外女生广外女生”的分析和清除的分析和清除u木马木马“广外女生广外女生”简介简介8是广东外语外贸大学是广东外语外贸大学“广外女生广外女生”网络小组的作品,它可以网络小组的作品,它可以运行于运行于Windows98、Windows98SE、WindowsME、WindowsNT、Windows2000或已经安装或已经安装Winsock2.0的的Windows95/97上上8该木马把启动项设在该木马把启动项设在HKLMSOFTWAREClassesexefileshellopencommand下,这个注册表项的下,这个注册表