收藏到会员中心

文档题目:

特洛伊木马攻击分析与检测技术

特洛伊木马攻击分析与检测技术
上传会员: panmeimei
提交日期: 2023-11-15 20:12:36
文档分类: 信息管理
浏览次数: 1
下载次数: 0
下载地址: 点击标题下载 特洛伊木马攻击分析与检测技术  如何获取积分?
下载提示: 不支持迅雷等下载工具,请右键另存为下载,或用浏览器下载。免费文档不需要积分。
文档介绍: 需要原文档可注册成本站会员免费下载。
文档字数: 7828
目       录

特洛伊木马的概述
特洛伊木马的攻击原理及分析
特洛伊木马入侵检测技术
总结

内 容 摘 要

该文介绍了特洛伊木马特点、实现原理、中木马后的状态、攻击手段、隐身方式以及特洛伊木马入侵检测技术,通过对特洛伊木马的各种分析,从而达到对特洛伊木马的有清晰的认识、了解和有效地检测、清除以及防御特洛伊木马的目的。
特洛伊木马攻击分析与检测技术

一、特洛伊木马的概述

“特洛伊木马”(trojan horse)简称“木马”,它是一种非常危险的恶性程序,它无休止的窃取用户的信息,从而给用户造成了巨大的损失。木马程序不能算是一种病毒,但越来越多的新版的杀毒软件,已开始可以查杀一些木马了,所以也有不少人称木马程序为黑客病毒。木马程序和远程控制软件一样,都是一种在远程计算机之间建立起连接,使远程计算机能够通过网络控制本地计算机的程序,它们的运行都遵照TCP/IP协议,但是木马程序的优点就是具有很强的隐蔽性。而本文主要分析特洛伊木马的特点、攻击原理以及对木马入侵的检测进行讲解。
二、特洛伊木马的特点和攻击原理及分析
(一)特洛伊木马的特点
特洛伊木马程序有以下的特点:1、完整的木马程序一般由两个部分组成:a、一个是服务器程序,b、一个是控制器程序。2、服务端需要在主机执行。3、一般特洛伊木马程序都是隐蔽的进程。4、当控制端连接服务端主机后,控制端会向服务端主机发出命令。 而服务端主机在接受命令后,会执行相应的任务。5、每个系统都存在特洛伊木马。(包括Windows,Unix,liunx等)。
(二)、特洛伊木马程序的攻击原理、控制功能的实现、攻击手段和隐藏方式。
作为一个优秀的木马,自启动功能是必不可少的,这样可以保证木马不会因为你的一次关机操作而彻底失去作用。正因为该项技术如此重要,所以,很多编程人员都在不停地研究和探索新的自启动技术,并且时常有新的发现。一个典型的例子就是把木马加入到用户经常执行的程序 (例如explorer.exe)中,用户执行该程序时,则木马自动发生作用。当然,更加普遍的方法是通过修改Windows系统文件和注册表达到目的。
1、特洛伊木马程序攻击实现原理: 可以使用VB或VC的Winsock控件来编写网络客户/服务程序, 实现方法如下: 
(1)服务器端:   G_Server.LocalPort=7626(冰河的默认端口,可以改为别的值)   G_Server.Listen(等待连接)   (2)客户端:   G_Client.RemoteHost=ServerIP(设远端地址为服务器地址)   G_Client.RemotePort=7626(设远程端口为冰河的默认端口)   (在这里可以分配一个本地端口给G_Client, 如果不分配, 计算机将会自动分配一个)   G_Client.Connect(调用Winsock控件的连接方法)   一旦服务端接到客户端的连接请求ConnectionRequest,就接受连接   Private Sub G_Server_ConnectionRequest(ByVal requestID As Long)   G_Server.Accept requestID   End Sub   客户端用G_Client.SendData发送命令,而服务器在G_Server_DateArrive事件中接受并执行命令(几乎所有的木马功能都在这个事件处理程序中实现)   如果客户断开连接,则关闭连接并重新监听端口   Private Sub G_Server_Close()   G_Server.Close (关闭连接)   G_Server.Listen(再次监听)   End Sub   客户端上传一个命令,服务端解释并执行命令。   2、实现木马的控制功能   由于Win98开放了所有的权限给用户,因此,以用户权限运行的木马程序几乎可以控制一切,下面仅对木马的主要功能进行简单的概述, 主要是使用Windows API函数。   (1)远程监控(控制对方鼠标、键盘,并监视对方屏幕)   keybd_event模拟一个键盘动作。   mouse_event模拟一次鼠标事件   mouse_event(dwFlags,dx,dy,cButtons,dwExtraInfo)dwFlags:   MOUSEEVENTF_ABSOLUTE 指定鼠标坐标系统中的一个绝对位置  MOUSEEVENTF_MOVE 移动鼠标   MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下   MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起   MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下   MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下   dx,dy:MOUSEEVENTF_ABSOLUTE中的鼠标坐标   (2)记录各种口令信息   keylog begin:将击键记录在一个文本文件里,同时还记录执行输入的窗口名  (3)获取系统信息   a.取得计算机名 GetComputerName   b.更改计算机名 SetComputerName   c.当前用户 GetUserName   d.系统路径   Set FileSystem0bject = CreateObject("Scripting.FileSystemObject")(建立文件系统对象)   Set SystemDir = FileSystem0bject.getspecialfolder(1)(取系统目录) 
Set SystemDir = FileSystem0bject.getspecialfolder(0)(取Windows安装目录)   e.取得系统版本 GetVersionEx   f.当前显示分辨率   Width = screen.Width\ screen.TwipsPerPixelX   Height= screen.Height \ screen.TwipsPerPixelY   (4)限制系统功能   a.远程关机或重启计算机,使用WinAPI中的如下函数可以实现:   ExitWindowsEx(UINT uFlags,DWORD dwReserved)   当uFlags=EWX_LOGOFF 中止进程,然后注销   =EWX_SHUTDOWN 关掉系统但不关电源   =EWX_REBOOT 重新引导系统   =EWX_FORCE强迫中止没有响应的进程   =EWX_POWERDOWN 关掉系统及关闭电源  b.锁定鼠标,ClipCursor(lpRect As RECT)可以将指针限制到指定区域,或者用ShowCursor(FALSE)把鼠标隐藏起来也可以,RECT是定义的一个矩形。   c.让对方掉线 RasHangUp   d.终止进程 ExitProcess   e.关闭窗口 利用FindWindow函数找到窗口并利用SendMessage函数关闭窗口   (5)远程文件操作   删除文件:File delete   拷贝文件:File copy   共享文件:Export list(列出当前共享的驱动器、目录、权限及共享密码)  (6)注册表操作   在VB中只要Set RegEdit=CreateObject("WScript.Shell")就可以使用以下的注册表功能:   删除键值:RegEdit.RegDelete RegKey   增加键值:RegEdit.Write RegKey,RegValue   获取键值:RegEdit.RegRead (Value) 
3、中木马后出现的状况
对于一些常见的木马,如SUB7、BO2000、冰河等等,它们都是采用打开TCP端口监听和写人注册表启动等方式,使用木马克星之类的软件可以检测到这些木马,这些检测木马的软件大多都是利用检测TCP连结、注册表等信息来判断是否有木马入侵,因此我们也可以通过手工来侦测木马。    也许你会对硬盘空间莫名其妙减少500M感到习以为常,这的确算不了什么,天知道Windows的临时文件和那些乌七八糟的游戏吞噬了自己多少硬盘空间。可是,还是有一些现象会让你感到警觉,一旦你觉得你自己的电脑感染了木马,你应该马上用杀毒软件检查一下自己的计算机,然后不管结果如何,就算是Norton告诉你,你的机器没有木马,你也应该再亲自作一次更深人的调查,确保自己机器安全。经常关注新的和出名的木马的特性报告,这将对你诊断自己的计算机问题很有帮助。(1)当你浏览一个网站,弹出来一些广告窗口是很正常的事情,可是如果你根本没有打开浏览器,而览浏器突然自己打开,并且进入某个网站,那么,你要小心。(2)你正在操作电脑,突然一个警告框或者是询问框弹出来,问一些你从来没有在电脑上接触过的间题。(3)你的Windows系统配置老是自动莫名其妙地被更改。比如屏保显示的文字,时间和日期,声音大小,鼠标灵敏度,还有CD-ROM的自动运行配置。(4)硬盘老没缘由地读盘,软驱灯经常自己亮起,网络连接及鼠标屏幕出现异常现象。这时,最简单的方法就是使用netstat-a命令查看。你可以通过这个命令发现所有网络连接,如果这时有攻击者通过木马连接,你可以通过这些信息发现异常。通过端口扫描的方法也可以发现一些弱智的木马,特别是一些早期的木马,它们捆绑的端口不能更改,通过扫描这些固定的端口也可以发现木马是否被植入。
(5)木马时常是和病毒联系在一起的,如最近出现的“磁碟机病毒”,此病毒有自动升级功能,并有自己的光纤接入的升级服务器,即使在下载流量很大的情况下也可以瞬间升级更新病毒体。该病毒还是反向连接木马下载器,下载列表配置文件在骇客的远程服务器上,骇客可以随时更新不同的病毒变种下载到被感染计算机中安装运行。病毒会下载20种以上的木马病毒程序,其中包括有网络游戏盗号木马和ARP病毒等。    当然,没有上面的种种现象并不代表你就绝对安全。有些人攻击你的机器不过是想寻找一个跳板。做更重要的事情;可是有些人攻击你的计算机纯粹是为了好玩。对于纯粹处于好玩目的的攻击者,你可以很容易地发现攻击的痕迹;对于那些隐藏得很深,并且想把你的机器变成一台他可以长期使用的肉鸡的黑客们,你的检查工作将变得异常艰苦并且需要你对入侵和木马有超人的敏感度,而这些能力,都是在平常的电脑使用过程日积月累而成的。     
4、特洛伊木马常用的几种攻击手段有:修改系统文件、修改文件打开关联、修在注册表、共享硬盘数据、远程屏幕抓取、远程关机或重新启动、键盘与鼠标控制、远程文件管理等。   ⑴.修改系统文件,木马程序为了达到在系统自启动是在Win.ini中启动,在Win.ini的[windows]字段中有启动命令"load="和"run=",在一般情况下 "="后面是空白的,如果有后跟程序,比方说是这个样子:   run=c:\windows\file.exe 和load=c:\windows\file.exe,这个file.exe很可能是木马。   ⑵.在System.ini中启动,System.ini位于Windows的安装目录下,其[boot]字段的shell=Explorer.exe是木马喜欢的隐藏加载之所,木马通常的做法是将该何变为这样:shell=Explorer.exefile.exe。注意这里的file.exe就是木马服务端程序!另外,在System.中的[386Enh]字段,要注意检查在此段内的"driver=路径\程序名"这里也有可能被木马所利用。再有,在System.ini中的[mic]、[drivers]、[drivers32]这3个字段,这些段也是起到加载驱动程序的作用,但也是驻留木马程序的好场所。   ⑶.利用注册表加载运行,注册表里有许多位置都是木马喜好的藏身加载之所,比如:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]项[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]项以及[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]项。如果我们怀疑我们的电脑被种了“木马”,可是又找不到它在哪儿,就到注册表的[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]项里查找,或是进入“组策略”的“在用户登录时运行这些程序”看看有没有启动的程序。   ⑷.在Autoexec.bat和Config.sys中加载运行,在C盘根目录下的这两个文件也可以启动木马。但这种加载方式一般都需要控制端用户与服务端建立连接后,将己添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行,而且采用这种方式不是很隐蔽。容易被发现,所以在Autoexec.bat和Confings中加载木马程序的并不多见,但也不能因此而掉以轻心。   ⑸.在Winstart.bat中启动,Winstart.bat是一个特殊性丝毫不亚于Autoexec.bat的批处理文件,也是一个能自动被Windows加载运行的文件。它多数情况下为应用程序及Windows自动生成,在执行了Windows自动生成,在执行了Win.com并加截了多数驱动程序之后,开始执行 (这一点可通过启动时按F8键再选择逐步跟踪启动过程的启动方式可得知)。由于Autoexec.bat的功能可以由Witart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。   ⑹.启动组,木马们如果隐藏在启动组虽然不是十分隐蔽,但这里的确是自动加载运行的好场所,因此还是有木马喜欢在这里驻留的。启动组对应的文件夹为C:\Windows\start menu\programs\startup,在注册表中的位置:    
HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Explorer\shell\Folders的Startup="c:\windows\start menu\programs\startup",也要注意经常检查启动组。   ⑺.*.INI,即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。只启动一次的方式:在winint.ini.中(用于安装较多)。   ⑻.修改文件关联,修改文件关联是木马们常用手段 (主要是国内编写的木马),比方说正常情况下TXT文件的打开方式为Notepad.EXE文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开,如著名的国产木马 "冰河"就是通过修改HKEY_CLASSES_ROOT\txtfile\whell\open\command下的键值,将“C:\WINDOWS\NOTEPAD.EXE记事本应用Notepad打开,这样,一旦你双击一个TXT文件,原本应用Notepad打开该文件,现在却变成启动木马程序了,不仅仅是TXT文件,而且诸如HTM、EXE、ZIP.COM等都是木马的目标,要对付这类木马,只能经常检查HKEY_C\shell\open\command主键,查看其键值是否正常。    ⑼.捆绑文件,实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后控制端用户用工具软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖源文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马就会安装上去,绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。    ⑽.反弹端口型木马的主动连接方式,由于反弹端口型木马与一般的木马相反,其服务端 (被控制端)主动与客户端 (控制端)建立连接,并且其监听端口一般设为80,所以如果没有合适的工具、丰富的经验真的很难防范。这类木马的典型代表就是“网络神偷”。不过这类木马仍然要在注册表中建立键值,只要细心观察注册表的变化还是不难查到它们。同时,最新的天网防火墙也可以防范此木马,因此也可在网络神偷服务端进行主动连接时发现它,并将其删除。5、木马的隐藏方式有:  木马程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把Form的Visible属性设为False、ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以伪装自己。当然它也会悄无声息地启动,木马会在每次用户启动时自动装载服务端,Windows系统启动时自动加载应用程序的方法,“木马”都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。   在win.ini文件中,在[WINDOWS]下面,“run=”和“load=”是可能加载“木马”程序的途径,一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。   在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那么后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。   在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的 Explorer 键值改为Explorer=“C:\WINDOWS\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。   目前,除了上面介绍的隐身技术外,更新、更隐蔽的方法已经出现,那就是-驱动程序及动态链接库技术。驱动程序及动态链接库技术和一般的木马不同,它基本上摆脱了原有的木马模式-监听端口,而采用替代系统功能的方法(改写驱动程序或动态链接库)。这样做的结果是:系统中没有增加新的文件(所以不能用扫描的方法查杀)、不需要打开新的端口(所以不能用端口监视的方法查杀)、没有新的进程(所以使用进程查看的方法发现不了它,也不能用kill进程的方法终止它的运行)。在正常运行时木马几乎没有任何的症状,而一旦木马的控制端向被控端发出特定的信息后,隐藏的程序就立即开始运作。

三、特洛伊木马的入侵检测技术
木马入侵检测是指检测木马入侵计算机的情况。木马的检测技术多种多样,但步骤一般可以分为:端口扫描、查看和中断连接、检查注册表、查找文件、检测驱动程序和动态链接程序。  1、检测和扫描端口   我们知道,当服务器端运行后,会打开一个tcp或udp端口进行监听,这个端口通常是1024以上的端口,这样端口扫描就是检查机器内有无木马的最好办法, 端口扫描的原理非常简单, 可以通过windows自带的netstar命令可以检查端口的开放情况。如果在state列中,列出的内容是LISTEN,则端口处于监听状态,即开放状态;入果是ESTABLISHED,说明已经有计算机连接到本机上了。连接本机的远程的FOREIGN ADDRESS中所列出的ip地址。如果是TIME-WAIT,说明其它计算机正在关闭与本机的连接。因此,要注意是否存在ESTABLISHED的情况,特别是对于反弹端口的木马尤其是这样。Netstat不仅可以在windows下用,还可以在linux操作系统下使用。  2、查看连接   查看连接和端口扫描的原理基本相同,不过是在本地机上通过netstat -a(或某个第三方程序)查看所有的TCP/UDP连接,查看连接要比端口扫描快,但同样是无法查出驱动程序/动态链接木马,而且仅仅能在本地使用。   3、检查注册表   为了能够实现开机自运行,木马一般驻留在注册表中。因此要清除木马,还必须对注册表进行清理,因为注册表的非常重要。在对注册表进行操作之前,最好先备份,通常情况下,木马一般修改一下位置:
[HKEY_LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
[HKEY_LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]也有一些木马是增加一些注册项,如“灰鸽子”的变种。
4、工具检测
在手工检测的情况下,如果不能发现木马入侵的蛛丝马迹,可以借助一些反病毒软件或木马检测专杀工具进行检测。
5、查找文件   查找木马特定的文件也是一个常用的方法,木马的一个特征文件是kernl32.exe,另一个是sysexlpr.exe,只要删除了这两个文件,木马就已经不起作用了。如果你只是删除了sysexlpr.exe而没有做扫尾工作的话,可能会遇到一些麻烦-就是你的文本文件打不开了, sysexplr.exe是和文本文件关联的,你还必须把文本文件跟notepad关联上。   6、对于驱动程序/动态链接库木马,有一种方法可以试试,使用Windows的"系统文件检查器",通过"开始菜单"-"程序"-"附件"-"系统工具"-"系统信息"-"工具"可以运行"系统文件检查器", 用“系统文件检查器”可检测操作系统文件的完整性,如果这些文件损坏,检查器可以将其还原,检查器还可以从安装盘中解压缩已压缩的文件(如驱动程序)。如果你的驱动程序或动态链接库在你没有升级它们的情况下被改动了,就有可能是木马(或者损坏了),提取改动过的文件可以保证你的系统安全和稳定。
7、进程检测
对于传统木马一般是以EXE形式的文件存在,因此,当木马的服务器端运行时,肯定会出现在进程中,例如“ 冰河”在运行后,默认情况下,会出现kernel32这个进程,使用kernel32这个名字也是为了迷惑用户,如果想进一步了解是那个程序打开了进程,则可以使用windous自带的“正在运行的任务”这个功能。例如,通过这个功能可以找到进程kernel32相关的程序,并且在管理器中结束这些进程。但有些进程需要借助一些工具,如:pstools中的Pskill命令,根据进程的PID来强行结束进程。
8、对DLL木马的入侵检测,可以通过检测模块调用和网络连接等来检测并清除掉。
(二)防治木马的危害,应该采取以下措施:
第一,安装杀毒软件和个人防火墙,并及时升级。
第二,把个人防火墙设置好安全等级,防止未知程序向外传送数据。
第三,可以考虑使用安全性比较好的浏览器和电子邮件客户端工具。
第四,如果使用IE浏览器,我们可以安装如卡卡安全助手等软件,防止恶意网站在自己电脑上安装不明软件和浏览器插件,以免被木马趁机侵入。  第五,不要浏览不良网站,平时不要随便从网站上下载软件,不要随便运行别人给的软件,经常检查自己的系统文件、注册表、端口,经常去安全站点查看最新的木马公告等等,提高自己的网络安全意识,了解木马的常见伎俩。
第六、关闭不必要的端口和服务
四、总结
虽然特洛伊木马的入侵方法多种多样,新的木马会不断出现,要检测木马的入侵并彻底清除掉木马也不是一件容易的事,但是特洛伊木马并不可怕,我们可以通过对端口、网络连接、注册表以及对相应得工具的运用,肯定能发现木马入侵的痕迹并可以将其清除的。

参 考 文 献
1、《内江科技》2006年第7期(数字版)
2、为你全面揭示木马病毒
3、木马攻击与防御原理
4、计算机病毒与木马程序设计剖析.pdf


(本文由word文档网(www.wordocx.com)会员上传,如需要全文请注册成本站会员下载)

热门文档下载

相关文档下载

上一篇特洛伊木马程序攻击分析和检测技术 下一篇《数据结构》教学辅助系统的规划..

相关栏目

最新文档下载

推荐文档下载