常见木马技术和手动检测方法_第1页
常见木马技术和手动检测方法_第2页
常见木马技术和手动检测方法_第3页
常见木马技术和手动检测方法_第4页
常见木马技术和手动检测方法_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年4月19日常见木马技术和手动检测方法文档仅供参考,不当之处,请联系改正。常见木马技术和手动检测方法所有病毒case,Symantec用户抱怨的无非两项,一是查不到病毒,二是不断的查到相同的病毒(绝大多数是木马downloader,backdoor.trojan)。木马是什么?是一个有恶意行为程序。杀毒软件怎么查杀它?特征码和行为分析。如果一个木马在技术上或者创意上做的稍微好些,我觉得杀毒软件对于已经中毒的电脑很难起到作用,经常是查到了一部分,落掉一部分,而落掉的部分又会监控、恢复被查杀的部分,造成上面所说的第二种情况,而这又一定会包含第一种情况。木马既然是程序,恶意程序,那它运行也不免会露出蛛丝马迹,程序运行的两个必要条件—进程(模块,线程)和加载(自启动和触发)。那我们查找木马也从这两个大的方向入手,理论上能够找出所有木马,可是这跟做数学题一样,大方法是有的,可是操作过程千变万化的。工欲善其事,必先利其器。首先要找几个适合自己的工具:主工具我个人喜欢用冰刃,它能干大部分的检查启动项和进程监控。兵刃功能上的不足,利用其它的软件补充。FileMon和RegMon能够查找针对特定文件和注册表的进程信息;ProceXP能够模块反向查找进程,也能够看出进程之间的调用关系;SSDT—Hook修复,SSDT—Inline—Hook修复工具(兵刃能够看到SSDT,但没有修复功能),可是冰刃也能够看到绝大多数的使用隐藏技术的进程和线程;SRENG能够显示进程、模块、驱动的签名(能够提高我们的效率),以及强大的自启动项检测;SymantecProcessViewer会hook住ntcreateprocess,ntcreateprocessxp,ntopenkey,ntterminateprocess四个SSDT服务函数,会监控开机到当前所有运行过的进程,能起到参考作用;TCPView能够实时查看创立连接和已经连接的端口和相应的进程;MD5计算工具;Mr.Google和百度。具体方法:第一部分看进程(模块,线程)。最笨的木马都有自己的进程,还不隐藏,还起个大家都知道的名字。这个太简单了,简单google一下,用任务管理器都能发现。有些木马本身是修改了或替换了的原有的正常的exe文件,或者系统文件,因此不要完全依赖于进程名字,MD5值还是有必要看下的;有些是隐藏进程的(Rootkit技术,比如Hook在WIN32API或者SSDT的ntquerysysteminfomation),所幸冰刃能够看得到大部分隐藏进程。除此之外,如果木马没有技术来修改文件修改时间,有的木马唯恐别人不认识它,占用内存,CPU很高,向外发包,这些是更笨的木马,任务管理器以及TCPview(发包的)很容易确定进程。高级的木马首先是隐藏自己做的很好的,这些木马只干该干的事情,而且最大程度上减少对系统的影响。我相信用户如果真的中了这个级别的木马,SAV又发现不了,用户就不会找我们,因为她自己也不知道。就怕SAV能发现它(毕竟SAV是自动的,特征码加行为检测),可是又不彻底。因为此类木马很多都会有个影子程序在监控,并恢复被删除的恶意程序。影子程序怎么做?无非是恢复文件,恢复注册表,创立进程,动态注入dll或者线程。如果影子程序本身是一个进程,那我们的目的还是查出这个进程。分别用FileMon;RegMon;冰刃的监控进程创立;动态注入dll首先需要创立被删除的恶意dll文件,用FileMon;线程动态注入我还没找到一个直接根据这个线索找到可疑进程的方法(不清楚冰刃监控进程创立是否可行),不过也能够用稍微笨一点的方法比如枚举所有进程等方法;另外第二部分查看加载项也是可行的,因为影子程序本身也是需要启动的。由于影子程序本身基本上不做恶意行为,本身不包含恶意代码,而应子程序释放的木马文件在影子程序处肯定以加密后的资源形势存在,因此就很难被SAV自动查到了(除非其它用户提交了样本,SRC又加到病毒定义里面,不过把影子程序都加到病毒定义,那病毒定义文件得多大?),因此经常会发生SAV总是在相同的位置发现相同的病毒文件的情况了。如果每个病毒都有自己独立的进程,查木马就是查找进程,那我们就太好做了,可是没有这个么好的事情。相当一部分的木马没有自己独立的进程,只是以模块(绝大多数情况下是dll文件,偶然有ocx插件)形势注入到系统进程,比如iexplore.exe,explorer.exe,svchost.exe,winlogon.exe,smss.exe,csrss.exe等等。此时做可疑动作的进程就是这些系统进程了,找到这些进程病毒代表我们找到了木马。此时在找到宿主进程文件的前提下,用冰刃查找该进程所调用的模块,能够发现一般有上百个之多,头大了;用symantecprocessviewer比兵刃强点,能查到这些模块对应文件的创立时间;有的杀毒软件的进程读取器(例如KV)还能够过滤掉所有microsoft签名的dll文件,这样会方便一些。可是万幸任何一个dll不可能自动注入到某一个进程,或者需要静态加载,或者需要动态加载,或者替换加载。静态加载需要在系统自启动项中有加载的语句(例如rundll32.exe加载,winlogon.exe加载,以服务的形式被svchost.exe加载等等),这些项的查找利用Sreng.exe应该都不难找到。如果是动态加载,那么肯定会有一个进程(模块、线程)运行,做这个dll注入的动作,能够尝试(不能保证)用FileMon或者冰刃的监控进程创立去监控动态加载过程;可是更多的情况下需要从观察进程(模块)以及自启动项来查找,毕竟这个动态加载的命令不是系统给的,一定是有特定的进程(模块,线程)做这个事情,而这个进程本身也是需要加载的,因此也能够使用查找加载项的方法。替换加载一般是把正常的dll改名,然后木马文件本身再改名为原来的正常的dll文件名,这样进程按照规定正常加载就会加载到木马dll文件,而这个木马dll会在宿主进程需要调用该dll的正常功能的时候,会进行函数转发到原来的dll文件,这样也不会影响原来程序的功能,对于此类的注入,手动方法可能能用的也就剩下MD5验证了。提到模块,那就需要提到线程,进程注入型的木马注入到进程中的是一个模块,也就是说,必须有一个模块文件的存在,这样我们能够找到这个模块并经过对其文件进行签名验证来找出注入木马;而线程注入型的木马,注入到进程中的却只是一段代码,是没有文件存在的,虽然能够利用冰刃的查看线程查看每个进程的各个线程,但经过这个想发现并找出哪一个线程是木马的,我估计全世界没多少人。好在线程加载自己本身不能完成,需要加载程序去做这个事情,我们找不到可疑线程,找到可疑的加载程序(进程、模块、线程)也是一样的。记得中学的时候说到的解题方法,在我们TS部门经常会用到两个不同方向的思路,穷举排除法和逆推分析法。就说一个Rtvscan.exe占用CPU高的问题,如果根据经验,查KB,查资料把可能的原因都列出来,然后和用户的情况作比较,最终找到符合情况的一种,这就是穷举排除法;如果对Rtvscan.exe第二部分看加载这个部分我想看过上面的dll注入部分的话会受到一定的启发。任何一种木马不是系统生来就有的,肯定是后天装上的。那这个木马不论是进程还是模块,也是需要启动的,这个启动(也就是加载)过程,想一想也就两种:随着系统启动自己启动,触发某个动作启动。随着系统启动自己启动,大部分的木马会有这种方式,可是路径就五花八门了。最常见的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run有很多的初级木马都会在这里有体现,除此之外此前总结过以下的有可能的系统自启动项加载位置1.Run键Run键是最常见的病毒自启动之处,该键位置是[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_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\

Policies\Explorer\Run],也会自动执行。2.RunOnce键[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce],与Run不同的是,RunOnce下的程序仅会被自动执行一次。3.RunServicesOnce键[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce],其中的程序会在系统加载时自动启动执行一次。4.RunServices键[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\

RunServices],RunServices继RunServicesOnce之后启动。5.RunOnceEx键[HKEY_CURRENT_USER\\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx],该键是WindowsXP/特有的自启动注册表项,6.windows键[HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows],该键下有load键值,一般情况下其值为空,如果这里有加载自启动程序,则有可能是可疑文件。7.Winlogon键[HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon],下面的Notify、Userinit、Shell键值也会有自启动的程序,而且其键值能够用逗号分隔,从而实现登录的时候启动多个程序。其中Notify一般为空,Shell一般为Explorer.exe,Userinit一般为C:\WINDOWS\system32\userinit.exe。8.其它注册表位置还有一些其它键值,经常会有一些程序在这里自动运行,如:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell],

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad],

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts],

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]。Symantec的KB中也有检查注册表,查找可疑文件的方法:Title:'Commonloadingpointsforviruses,worms,andTrojanhorseprogramsonWindowsNT//XP/'DocumentID:WebURL:Title:'Commonloadingpointsforviruses,worms,andTrojanhorseprogramsonWindows98/95/3.1x'DocumentID:83948WebURL:Title:'PossibleloadingpointsforvirusesandsecurityrisksoncomputersthatrunRedHatEnterpriseLinuxandSuSELinux'DocumentID:WebURL:3)检查win.ini文件和system.ini文件。Win.ini位于C:\Windows下,其[windows]字段中有启动命令“load=”和“run=”,一般“=”后面是空白的,如果后面跟着程序,很可能就是病毒程序。System.ini位于C:\Windows下,其[boot]字段一般为shell=Explorer.exe如果后面跟着程序,很可能就是木马程序;其[386Enh]字段内的“driver=路径\程序名”,也有可能有病毒程序加载项;其[mic]、[drivers]、[drivers32]三个字段,也有可能有病毒程序加载项。4)其它方法:能够经过查找msconfig,以及查看服务中的automatic的服务的方法,有时也能够找出可疑文件。其实从实际当中的例子来看,除了上面的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run之外,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon也是最近很多木马自启动加载的地方。除此之外,很重要的自启动方式服务启动。所有的服务启动项都会在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service下面列出来,可是基本上看起来没什么头绪。这些服务自启动又会分为win32服务应用程序和驱动程序,用SRENG能够很清楚的看出这两部分。Win32服务应用程序就是系统当中管理工具—服务里面的内容,包括SymantecAntivirus服务。其主文件能够是单独的exe文件,例如rtvscan.exe;也能够是一个dll文件,会被svchost.exe进程调用而自动启动(svchost.exe的作用就是用同一个进程提供不同的系统或者非系统的服务,从而节省系统资源;而这恰好也成了很多木马很好的自启动加载点,很多时候我们看到svchost.exe做一些异常的事情,或者从冰刃的创立进程查看看到svchost.exe创立木马进程,肯定就是有恶意的dll以win32服务的形势被svchost.exe加载)。驱动程序启动也是很多木马(驱动级木马)自启动加载的地方。首先自启动加载首先需要一个sys文件,一般位置是C:\windows\system32\drivers目录里面;另外会在控制面板—设备管理器—非即插即用设备里面会有该设备驱动的信息。SAV的SAVRT驱动,SEP的sysplant驱动都是此类。对于此类的木马,我们往往需要在先关掉保护进程的前提下,卸载该设备,删除注册表,在删除sys文件。以上是自启动木马,除此之外是触发式木马。触发式木马是当你进行某一操作时会触发木马的启动机制,使得木马启动,如果你永远不进行这一操作,而木马则永远不会启动。这样,事实上对于自启动木马,我们仔细查找各个启动项,总能找到蛛丝马迹;不过触发是木马就能够充分发挥作者的想象空间了,对我们来说也是更大的挑战。最常见的也是我们首先要检查的当然就是Autorun.inf了,这个臭名昭著,一般都会关联到同一个目录下的一个exe文件。

一般此文件会以隐藏文件的形式出现,更有些恶毒的会加上“注册表监控并回写”来为文件隐藏护航,你一旦更改系统为“显示所有文件”,它马上会再次改为“不显示隐藏文件”。更有甚者,很多最新的木马对这个autorun.inf和关联的exe文件使用rootkit技术,隐藏的更为隐蔽。处理方法:使用冰刃,它能够显示所有的隐藏文件大部分的使用的rootkit保护的文件,由于autorun.inf和关联的exe文件一般都是木马的安装文件,大可直接删除。删除后,隐藏文件恢复到注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Exporler\Advanced\Folder\Hidden\ShowAll下的checkvalue值改为1。另外autorun.inf修改了硬盘的打开属性,删除后盘附打不开,在注册表中搜索该exe文件名称,找到后删除。

另一种常见的触发方式是修改文件关联。文件关联就是某一类型的文件与某一程序的对应关系,我们的系统中有无数种文件格式,比如:图片文件(以.bmp.jpg.gif等为扩展名)、音乐文件(mp3mp4等)当你双击一个图片时,系统会调用看图程序来打开并显示图片,而不是调用播放器来播放图片,系统为什么会知道要调用看图程序而不是调用播放器呢?这就是因为文件关联的存在,在注册表中,图片文件已经与看图程序关联在了一起,相应的,音乐文件与播放器关联在了一起,大多数类型的文件都与某一特定程序有关联。这样,系统才知道,打开什么样的文件需要调用什么程序。

木马就是把某一特定类型文件的关联改为了与它自己关联,这时你一旦打开这一类型的文件就会触发木马的启动。由于木马启动后,会由它再调用正常的关联程序,因此,文件依然会正常打开,而你也就不知道其实你的操作已经将木马启动了起来。木马会改哪种文件的关联呢?这只有木马的作者才知道。系统中又有多少文件关联可供它改呢?HKEY_CLASSIS_ROOT下的子项全部都是,怎么也得上千个吧。

这样,只要你打开被关联格式的文件,就会

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论