收藏到会员中心

文档题目:

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

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

一、 引言
二、木马攻击原理
三、特洛伊木马隐身方法
四、特洛伊木马防御原理
五、总结




内 容 摘 要

   特洛伊木马是 Trojan Horse 的中译,是借自"木马屠城记"中那只木马的名字。特洛伊木马是一个程序,它驻留在目标计算机里,可以随计算机自动启动并在某一端口进行侦听,在对接收的数据识别后,对目标计算机执行特定的操作。木马,其实质只是一个通过端口进行通信的网络客户/服务程序。木马程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把Form的Visible属性设为False、ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以伪装自己。知道了木马的攻击原理和隐身方法,我们就可以采取措施进行防御了。以下通过几个实例来演示一下。
特洛伊木马攻击分析与检测技术

一、 引言
  特洛伊木马是 Trojan Horse 的中译,是借自"木马屠城记"中那只木马的名字。古希腊有大军围攻特洛伊城,逾年无法攻下。有人献计制造一只高二丈的大木马假装作战马神,攻击数天后仍然无功,遂留下木马拔营而去。城中得到解围的消息,及得到"木马"这个奇异的战利品,全城饮酒狂欢。到午夜时份,全城军民尽入梦乡,匿于木马中的将士开秘门游绳而下,开启城门及四处纵火,城外伏兵涌入,焚屠特洛伊城。后世称这只木马为"特洛伊木马",现今计算机术语借用其名,意思是"一经进入,后患无穷"。特洛伊木马原则上它和Laplink ,PCanywhere 等程序一样,只是一种远程管理工具。而且本身不带伤害性,也没有感染力,所以不能称之为病毒 (也有人称之为第二代病毒);但却常常被视之为病毒。原因是如果有人不当的使用,破坏力可以比病毒更强。
  二、木马攻击原理
  特洛伊木马是一个程序,它驻留在目标计算机里,可以随计算机自动启动并在某一端口进行侦听,在对接收的数据识别后,对目标计算机执行特定的操作。木马,其实质只是一个通过端口进行通信的网络客户/服务程序。
  1、基本概念:
    网络客户/服务模式的原理是一台主机提供服务(服务器),另一台主机接受服务(客户机)。作为服务器的主机一般会打开一个默认的端口并进行监听(Listen), 如果有客户机向服务器的这一端口提出连接请求(Connect Request), 服务器上的相应程序就会自动运行,来应答客户机的请求,这个程序称为守护进程。对于特洛伊木马,被控制端就成为一台服务器,控制端则是一台客户机,G_server.exe是守护进程, G_client是客户端应用程序。
  2、程序实现:
  可以使用VB或VC的Winsock控件来编写网络客户/服务程序, 实现方法如下:
  服务器端:
  G_Server.LocalPort=7626(冰河的默认端口,可以改为别的值)
  G_Server.Listen(等待连接)
  客户端:
  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
  客户端上传一个命令,服务端解释并执行命令。
3、实现木马的控制功能
  (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)可以将指针限制到指定区域,或者用ShowCurs
  or(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)
三、特洛伊木马隐身方法
  木马程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把Form的Visible属性设为False、ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以伪装自己。当然它也会悄无声息地启动,木马会在每次用户启动时自动装载服务端,Windows系统启动时自动加载应用程序的方法,“木马”都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。
  在win.ini文件中,在[WINDOWS]下面,“run=”和“load=”是可能加载“木马”程序的途径,一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。
  在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那么后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。
  在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关它将注册表, 
“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”下找到“木马”程序的文件名,再在整个注册表中搜索即可。
  目前,除了上面介绍的隐身技术外,更新、更隐蔽的方法已经出现,例如驱动程序及DLL技术。驱动程序及动态链接库技术和一般的木马不同,它基本上摆脱了原有的木马模式(监听端口),而采用替代系统功能的方法(改写驱动程序或动态链接库)。这样做的结果是,系统中没有增加新的文件(所以不能用扫描的方法查杀)、不需要打开新的端口(所以不能用端口监视的方法查杀)、没有新的进程(所以使用进程查看的方法发现不了它,也不能用kill进程的方法终止它的运行)。在正常运行时木马几乎没有任何的症状,而一旦木马的控制端向被控端发出特定的信息后,隐藏的程序就立即开始运作。
  四、 特洛伊木马防御原理
  知道了木马的攻击原理和隐身方法,我们就可以采取措施进行防御了。
  1.端口扫描
  端口扫描是检查远程机器有无木马的最好办法, 端口扫描的原理非常简单, 扫描程序尝试连接某个端口, 如果成功, 则说明端口开放,如果失败或超过某个特定的时间(超时), 则说明端口关闭。但对于驱动程序/动态链接木马, 扫描端口是不起作用的。
  2.查看连接
  查看连接和端口扫描的原理基本相同,不过是在本地机上通过netstat -a(或某个第三方程序)查看所有的TCP/UDP连接,查看连接要比端口扫描快,但同样是无法查出驱动程序/动态链接木马,而且仅仅能在本地使用。
  3.检查注册表
  上面在讨论木马的启动方式时已经提到,木马可以通过注册表启动(好像现在大部分的木马都是通过注册表启动的,至少也把注册表作为一个自我保护的方式),那么,我们同样可以通过检查注册表来发现冰河在注册表里留下的痕迹。
  4.查找文件
  查找木马特定的文件也是一个常用的方法,木马的一个特征文件是kernl32.exe,另一个是sysexlpr.exe,只要删除了这两个文件,木马就已经不起作用了。如果你只是删除了sysexlpr.exe而没有做扫尾工作的话,可能会遇到一些麻烦-就是你的文本文件打不开了, sysexplr.exe是和文本文件关联的,你还必须把文本文件跟notepad关联上。
另外,对于驱动程序/动态链接库木马,有一种方法可以试试,使用Windows的"系统文件检查器",通过"开始菜单"-"程序"-"附件"-"系统工具"-"系统信息"-"工具"可以运行"系统文件检查器", 用“系统文件检查器”可检测操作系统文件的完整性,如果这些文件损坏,检查器可以将其还原,检查器还可以从安装盘中解压缩已压缩的文件(如驱动程序)。如果你的驱动程序或动态链接库在你没有升级它们的情况下被改动了,就有可能是木马(或者损坏了),提取改动过的文件可以保证你的系统安全和稳定。
下面,我们通过几个实例,具体讲述常见木马程序的清除方法。
1、WAY 2.4
WAY 2.4的服务端运行后,在C:\windows\system下生成msgsvc.exe文件,图标用的仍然是文本文件的图标,文件大小235,008字节,文件修改时间为1998年5月30日。从其文件名我们可以看出它是想冒充系统文件msgsvc32.exe。同时,WAY2.4在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下建立键Msgtask,其键值为C:\WINDOWS\SYSTEM\msgsvc.exe。此时,如果我们用进程管理工具查看,就会发现进程C:\windows\system\msgsvc.exe列在进程列表中。 
要清除WAY,只要删除它在注册表中的键值,再删除C:\windows\system下的文件msgsvc.exe就可以了。要注意在Windows下直接删除msgsvc.exe是不行的,我们必须使用进程管理工具终止它的进程,然后再删除它。或者到Dos下删除msgsvc.exe。
另一种清除WAY2.4的方法是运行客户端文件P_client.exe,点击“命令控制台->系统设置->服务端设置->卸载服务端”就可以安全的清除WAY2.4了。 
2、Back Orifice(BO) 
Back Oriffce是一个老牌木马程序了,该木马可以搜集信息,执行系统命令,重新设置机器,重定向网络的客户端/服务器应用程序。在服务端安装BO非常简单。只要执行BO的服务端程序,就装好了。这个可执行文件名字最初叫做bo2k.exe,但以后可能会被改名,在BO客户端安装时,或在BO2K设置向导里指定的。向导会指导用户进行几个设置,包括服务端文件名(可执行文件)、网络协议(TCP或UDP)、端口、加密和密码等。这个过程完成后,运行bo2kgui.exe(BO图形用户界面)。设置向导允许服务端执行快速安装,使用默认设置,以便立即使用BO控制远程机器。但是,可以用设置工具手动设置很多选项。这些选项主要是防止BO被发现用的。
要清除BO木马程序,只要检查系统注册表
HEKY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices中有无Umgr32.exe键值。如有,则将其删除,并进入MS-DOS方式,将“\Windows\System”中的Umgr32.exe文件删除就可以了。 
3、Happy99 
Happy99木马程序在首次运行时,会在荧幕上开启一个名为“Happy new year1999”的窗口,显示美丽的烟花,此时该程序就会将自身复制到Windows95/98的System目录下,更名为Ska.exe,创建文件Ska.dll,并修改Wsock32.dll,将修改前的文件备份为Wsock32.ska,并修改注册表。 
要清除happy99木马程序,我们可以检查系统注册表HEKY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce中有无键值Ska.exe。如有,将其删除,并删除“\Windows\System”中的Ska.exe和Ska.dll两个文件,将Wsock32.ska更名为Wscok32.dll就可以了。 
4、冰河
冰河是最有名的木马程序之一,许多杀毒软件(例如KV3000、瑞星杀毒等)可以查杀它。
作为木马程序,冰河的服务器端程序为G-server.exe,客户端程序为G-client.exe,默认连接端口为7626。一旦运行G-server.exe,那么该程序就会在C:\Windows\system目录下生成Kernel32.exe和sysexplr.exe,并删除自身。Kernel32.exe在系统启动时自动加载运行,sysexplr.exe和txt文件(文本文件)关联。即使删除了Kernel32.exe,但只要我们打开文本文件,sysexplr.exe就会被激活,它将再次生成Kernel32.exe,于是冰河又回来了!这就是冰河程序屡删不止的原因。
下面是清除冰河木马程序的步骤:
(1)要删除冰河木马,我们需要用纯DOS启动进入系统(以防木马的自动恢复),删除安装的windows下的system\kernel32.exe和system\sysexplr.exe两个木马文件。注意,如果系统提示不能删除它们,则因为木马程序自动设置了这两个文件的属性,我们只需要打开它们的隐藏、只读属性,方法是键入如下命令:Attrib a h r kernel32.exe或sysexplr.exe即可。
(2)冰河木马程序在注册表
HKEY_LOCAL_MACHINE\software\microsoft\windows\CurrentVersion\Run
下扎根,键值为C:\windows\system\Kernel32.exe,我们必须找到这个键值,并删除它。
(3)冰河木马程序还在注册表
HKEY_LOCAL_MACHINE\software\microsoft\windows\CurrentVersion\Runservices
下添加了键值为C:\windows\system\Kernel32.exe的,我们也要找到,并删除。
最后,修改注册表HKEY_CLASSES_ROOT\txtfile\shell\open\command下的默认值,由中木马后的C:\windows\system\Sysexplr.exe %1改为正常情况下的C:\windows\notepad.exe %1,即可恢复文本文件关联功能。
   5、Asylum
这个木马程序采用比较陈旧的方式,修改系统配置文件System.ini和Win.ini。要清除它,我们可以先查一下System.ini文件下面的[BOOT]项,看看“shell=explorer.exe”,如不是,则删除它,用回上面的设置,并记下原来的文件名以便回过头去在纯DOS下删除它。再打开Win.ini文件,看在[windows]项下的"run=”是不是有什么文件名,如有,记下它以便回过头过在纯DOS下删除相应的文件名。
6、广外女生
广外女生是广东外语外贸大学“广外女生”网络小组的处女作,是一种新出现的远程监控工具,破坏性很大,远程上传、下载、删除文件、修改注册表等自然不在话下。其可怕之处在于广外女生服务端被执行后,会自动检查进程中是否含有“金山毒霸”、“防火墙”、“iparmor”、“tcmonitor”、“实时监控”、“lockdown”、“kill”、“天网”等字样,如果发现就将该进程终止,也就是说使防火墙完全失去作用!
该木马程序运行后,将会在系统的System目录下生成一份自己的拷贝,名称为DIAGCFG.EXE,并关联.EXE和.COM文件的打开方式,如果贸然删掉了该文件,将会导致系统所有.EXE文件无法打开的问题。
下面是广外女生木马程序的清除步骤:
(1)运行Regedit.exe,打开注册表编辑器,先放在这里,不要关闭。
(2)使用进程管理工具,终止DIAGCFG.EXE的运行。
(3)在注册表编辑器中找到HKEY_CLASSES_ROOT\exefile\shell\open\command,将其默认键值改成“%1”%*。
(4)在注册表编辑器中找到HKEY_CLASSES_ROOT\comfile\shell\open\command,将其默认键值改成“%1”%*。
(5)在注册表编辑器中找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ RunServices,删除其中名称为“Diagnostic Configuration”的键值;
(6)关掉注册表编辑器,在资源管理器中找到System目录下的DIAGFG.EXE,删除它。
7 Netspy(网络精灵) 
Netspy又名网络精灵,是国产木马,最新版本为3.0,默认连接端口为7306。在该版本中新添加了注册表编辑功能和浏览器监控功能,客户端现在可以不用NetMonitor,通过IE或Navigate就可以进行远程监控了。服务端程序被执行后,会在C:\Windows\system目录下生成netspy.exe文件,同时在注册表
HKEY_LOCAL_MACHINE\software\microsoft\windows\CurrentVersion\Run\下建立键值C:\windows\system\netspy.exe,用于在系统启动时自动加载运行。
下面是清除网络精灵木马程序的步骤:
(1)重新启动机器并在出现Staring windows提示时,按F5键进入命令行状态。在C:\windows\system\目录下输入以下命令:del netspy.exe 回车。
(2)启动Windows系统,进入注册表编辑器,查找
HKEY_LOCAL_MACHINE\Software\microsoft\windows\CurrentVersion\Run\删除Netspy的键值。
8 SubSeven 
SubSeven木马程序的功能比起大名鼎鼎的BO2K可以说有过之而无不及。最新版为2.2,默认连接端口为27374,服务端程序比较小,只有54.5kB,很容易被捆绑到其它软件而不被发现,最新版的金山毒霸等杀毒软件也查不到它。服务器端程序名称为server.exe,客户端程序名称为subseven.exe。SubSeven服务端被执行后,变化多端,每次启动的进程名都会发生变化,因此很难查找它的踪影。 
下面是清除SubSeven木马程序的步骤:
(1)打开注册表Regedit,找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run和RunService,如果有加载文件,就删除右边的项目:加载器="c:\windows\system\***"(加载器和文件名是随意改变的)。
(2)打开win.ini文件,检查“run=”后是否加上某个可执行文件名,如有,则删除之。
(3)打开system.ini文件,检查“shell=explorer.exe”后是否跟有某个文件,如有,则将它删除。
(4)重新启动Windows,在c:\windows\system下删除相对应的木马程序。
  五、总结
  用户只要有一点点的疏忽,就有可能被人在系统中安装了木马。所以平时不要随便从网站上下载软件,不要随便运行别人给的软件,经常检查自己的系统文件、注册表、端口,经常去安全站点查看最新的木马公告等等,提高自己的网络安全意识,了解木马的常见伎俩,这样对于保证自己电脑的安全不无裨益。







参 考 文 献
1.张伟,《电脑知识与技术》2005年
2.李家明,王海峰《电脑爱好者》2005年第一期
3.《电脑报》2007年第十一期
4.陈立,《计算机应用文摘》2006


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

热门文档下载

相关文档下载

上一篇《数据结构》教学辅助系统的规划.. 下一篇学校计算机网络环境下教学模式的..

相关栏目

最新文档下载

推荐文档下载