常见木马技术和手动检测方法精编版.doc_第1页
常见木马技术和手动检测方法精编版.doc_第2页
常见木马技术和手动检测方法精编版.doc_第3页
常见木马技术和手动检测方法精编版.doc_第4页
常见木马技术和手动检测方法精编版.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、常见木马技术和手动检测方法所有病毒 case, Symantec用户抱怨的无非两项,一是查不到病毒,二是不断的查到相同的病毒(绝大多数是木马 downloader, backdoor.trojan )。木马是什么?是一个有恶意行为程序。杀毒软件怎么查杀它?特征码和行为分析。如果一个木马在技术上或者创意上做的稍微好些,我觉得杀毒软件对于已经中毒的电脑很难起到作用,经常是查到了一部分,落掉一部分,而落掉的部分又会监控、恢复被查杀的部分,造成上面所说的第二种情况,而这又一定会包含第一种情况。木马既然是程序,恶意程序,那它运行也不免会露出蛛丝马迹,程序运行的两个必要条件 进程(模块,线程)和加载(自启

2、动和触发) 。那我们查找木马也从这两个大的方向入手,理论上可以找出所有木马,但是这跟做数学题一样,大方法是有的,但是操作过程千变万化的。工欲善其事,必先利其器。首先要找几个适合自己的工具:主工具我个人喜欢用冰刃,它能干大部分的检查启动项和进程监控。兵刃功能上的不足,利用其他的软件补充。FileMon 和 RegMon 可以查找针对特定文件和注册表的进程信息;ProceXP 可以模块反向查找进程,也可以看出进程之间的调用关系;SSDT Hook 修复, SSDT Inline Hook 修复工具(兵刃可以看到SSDT,但没有修复功能),但是冰刃也可以看到绝大多数的使用隐藏技术的进程和线程;SRE

3、NG 可以显示进程、模块、驱动的签名(可以提高我们的效率),以及强大的自启动项检测;Symantec Process Viewer 会 hook 住 ntcreateprocess,ntcreateprocessxp, ntopenkey, ntterminateprocess四个 SSDT 服务函数,会监控开机到当前所有运行过的进程,能起到参考作用; TCPView 可以实时查看创建连接和已经连接的端口和相应的进程; MD5 计算工具; Mr.Google 和百度。具体方法:第一部分看进程(模块,线程)。最笨的木马都有自己的进程,还不隐藏,还起个大家都知道的名字。这个太简单了,简单 goog

4、le 一下,用任务管理器都能发现。有些木马本身是修改了或替换了的原有的正常的exe文件,或者系统文件,因此不要完全依赖于进程名字,MD5 值还是有必要看下的;有些是隐藏进程的(Rootkit 技术,比如 Hook 在 WIN32API 或者 SSDT 的 ntquerysysteminfomation ),所幸冰刃可以看得到大部分隐藏进程。除此之外,如果木马没有技术来修改文件修改时间,有的木马唯恐别人不认识它,占用内存, CPU 很高,向外发包,这些是更笨的木马,任务管理器以及 TCPview( 发包的 )很容易确定进程。高级的木马首先是隐藏自己做的很好的,这些木马只干该干的事情,并且最大程度

5、上减少对系统的影响。我相信用户如果真的中了这个级别的木马,SAV 又发现不了,用户就不会找我们,因为他自己也不知道。就怕 SAV 能发现它(毕竟 SAV 是自动的,特征码加行为检测),但是又不彻底。因为此类木马很多都会有个影子程序在监控,并恢复被删除的恶意程序。影子程序怎么做?无非是恢复文件,恢复注册表,创建进程,动态注入dll 或者线程。如果影子程序本身是一个进程,那我们的目的还是查出这个进程。分别用FileMon ;RegMon;冰刃的监控进程创建;动态注入dll 首先需要创建被删除的恶意dll 文件,用FileMon ;线程动态注入我还没找到一个直接根据这个线索找到可疑进程的方法(不清楚

6、冰刃监控进程创建是否可行),不过也可以用稍微笨一点的方法比如枚举所有进程等方法;另外第二部分查看加载项也是可行的,因为影子程序本身也是需要启动的。由于影子程序本身基本上不做恶意行为,本身不包含恶意代码,而应子程序释放的木马文件在影子1程序处肯定以加密后的资源形势存在,因此就很难被SAV 自动查到了(除非其他用户提交了样本, SRC 又加到病毒定义里面,不过把影子程序都加到病毒定义,那病毒定义文件得多大?),因此经常会发生 SAV 总是在相同的位置发现相同的病毒文件的情况了。如果每个病毒都有自己独立的进程,查木马就是查找进程,那我们就太好做了,但是没有这个么好的事情。相当一部分的木马没有自己独立

7、的进程,只是以模块(绝大多数情况下是 dll 文件,偶尔有 ocx 插件)形势注入到系统进程,比如 iexplore.exe, explorer.exe, svchost.exe, winlogon.exe, smss.exe, csrss.exe等等。此时做可疑动作的进程就是这些系统进程了,找到这些进程病毒代表我们找到了木马。此时在找到宿主进程文件的前提下,用冰刃查找该进程所调用的模块,可以发现一般有上百个之多,头大了;用symantec processviewer 比兵刃强点,能查到这些模块对应文件的创建时间;有的杀毒软件的进程读取器(例如 KV2007 )还可以过滤掉所有microsof

8、t 签名的 dll 文件,这样会方便一些。但是万幸任何一个dll 不可能自动注入到某一个进程,或者需要静态加载,或者需要动态加载,或者替换加载。静态加载需要在系统自启动项中有加载的语句(例如rundll32.exe 加载 , winlogon.exe 加载,以服务的形式被svchost.exe加载等等),这些项的查找利用 Sreng.exe应该都不难找到。如果是动态加载,那么肯定会有一个进程(模块、线程)运行,做这个 dll 注入的动作,可以 尝试(不能保证) 用 FileMon 或者冰刃的监控进程创建去监控动态加载过程;但是更多的情况下需要从观察进程(模块)以及自启动项来查找,毕竟这个动态加

9、载的命令不是系统给的,一定是有特定的进程(模块,线程)做这个事情,而这个进程本身也是需要加载的,因此也可以使用查找加载项的方法。替换加载通常是把正常的dll 改名,然后木马文件本身再改名为原来的正常的dll 文件名,这样进程按照规定正常加载就会加载到木马dll 文件,而这个木马dll 会在宿主进程需要调用该 dll 的正常功能的时候,会进行函数转发到原来的dll 文件,这样也不会影响原来程序的功能,对于此类的注入,手动方法也许能用的也就剩下MD5 验证了。提到模块,那就需要提到线程,进程注入型的木马注入到进程中的是一个模块,也就是说,必须有一个模块文件的存在,这样我们可以找到这个模块并通过对其

10、文件进行签名验证来找出注入木马;而线程注入型的木马,注入到进程中的却只是一段代码,是没有文件存在的,虽然可以利用冰刃的查看线程查看每个进程的各个线程,但通过这个想发现并找出哪一个线程是木马的,我估计全世界没多少人。好在线程加载自己本身不能完成,需要加载程序去做这个事情,我们找不到可疑线程,找到可疑的加载程序(进程、模块、线程)也是一样的。记得中学的时候说到的解题方法,在我们TS 部门经常会用到两个不同方向的思路,穷举排除法和逆推分析法。就说一个 Rtvscan.exe占用 CPU 高的问题,如果根据经验,查 KB ,查资料把可能的原因都列出来,然后和用户的情况作比较,最终找到符合情况的一种,这

11、就是穷举排除法; 如果对 Rtvscan.exe第二部分看加载这个部分我想看过上面的 dll 注入部分的话会受到一定的启发。任何一种木马不是系统生来就有的,肯定是后天装上的。那这个木马不管是进程还是模块,也是需要启动的,这个启动(也就是加载)过程,想一想也就两种:随着系统启动自己启动,触发某个动作启动。随着系统启动自己启动,大部分的木马会有这种方式,但是路径就五花八门了。最常见的HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun有很多的初级木马都会在这里有体现,除此之外此前总结过以下的有可能的系统自启动项加载位置21.Run

12、键Run 键是最常见的病毒自启动之处,该键位置是HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun和HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun ,其下的所有程序在每次启动登录时都会按顺序自动执行。HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplore rRun 和 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVers

13、ion PoliciesExplorerRun ,也会自动执行。2.RunOnce 键HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce和HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce,与 Run 不同的是, RunOnce 下的程序仅会被自动执行一次。3.RunServicesOnce键HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnc e和HKEY_L

14、OCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesO nce,其中的程序会在系统加载时自动启动执行一次。4.RunServices 键HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices和HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion RunServices, RunServices 继 RunServicesOnce 之后启动。5.RunOnceEx 键HKEY_CURRENT

15、_USERSOFTWAREMicrosoftWindowsCurrentVersionRunOnceE x和HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce Ex,该键是 Windows XP/2003 特有的自启动注册表项,6.windows 键HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindows,该键下有 load 键值,一般情况下其值为空,如果这里有加载自启动程序,则有可能是可疑文件。7.Winlogon 键HKEY_CURRENT_U

16、SERSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon 和HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon ,下面的 Notify 、 Userinit 、Shell 键值也会有自启动的程序,而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。其中Notify 一般为空, Shell 一般为 Explorer.exe, Userinit 一般为 C:WINDOWSsystem32userinit.exe 。8.其他注册表位置3还有一些其他键值,经常会有一

17、些程序在这里自动运行,如:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemShell,HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad ,HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsSystemScripts,HKEY_LOCAL_MACHINESoftwarePoliciesMicrosoftWindowsSystemScripts。

18、Symantec 的 KB 中也有检查注册表,查找可疑文件的方法:Title: Common loading points for viruses, worms, and Trojan horse programs onWindows NT/2000/XP/2003Document ID: 2001060517115206Web URL: Title: Common loading points for viruses, worms, and Trojan horse programs on Windows 98/95/3.1xDocument ID: 1999052415383948Web

19、URL: Title: Possible loading points for viruses and security risks on computers that run Red Hat Enterprise Linux and SuSE LinuxDocument ID: 2005101812364548Web URL: 3 )检查 win.ini 文件和 system.ini 文件。Win.ini 位于 C:Windows 下,其 windows 字段中有启动命令 “ load=和”“ run=,”通常 “ =后”面是空白的,如果后面跟着程序,很可能就是病毒程序。System.ini

20、 位于 C:Windows 下,其 boot 字段一般为 shell=Explorer.exe 如果后面跟着程序,很可能就是木马程序; 其386Enh 字段内的 “driver=路径 程序名 ”,也有可能有病毒程序加载项;其 mic 、 drivers 、 drivers32 三个字段,也有可能有病毒程序加载项。4 )其他方法:可以通过查找msconfig ,以及查看服务中的automatic 的服务的方法,有时也可以找出可疑文件。其实从实际当中的例子来看,除了上面的HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun 之外,

21、HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon也是最近很多木马自启动加载的地方。除此之外,很重要的自启动方式服务启动。所有的服务启动项都会在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService 下面列出来,但是基本上看起来没什么头绪。这些服务自启动又会分为 win32 服务应用程序和驱动程序,用 SRENG 可以很清楚的看出这两部分。4Win32 服务应用程序就是系统当中管理工具 服务里面的内容,包括 Symantec Antivirus 服务。其主文件可以是单独的

22、 exe 文件,例如 rtvscan.exe;也可以是一个 dll 文件,会被svchost.exe进程调用而自动启动( svchost.exe的作用就是用同一个进程提供不同的系统或者非系统的服务,从而节省系统资源;而这恰好也成了很多木马很好的自启动加载点,很多时候我们看到 svchost.exe做一些异常的事情,或者从冰刃的创建进程查看看到svchost.exe创建木马进程,肯定就是有恶意的dll 以 win32 服务的形势被svchost.exe加载)。驱动程序启动也是很多木马(驱动级木马)自启动加载的地方。首先自启动加载首先需要一个 sys 文件,通常位置是C:windowssystem

23、32drivers 目录里面;另外会在控制面板 设备管理器 非即插即用设备里面会有该设备驱动的信息。 SAV 的 SAVRT 驱动, SEP 的 sysplant 驱动都是此类。对于此类的木马,我们往往需要在先关掉保护进程的前提下,卸载该设备,删除注册表,在删除sys 文件。以上是自启动木马,除此之外是触发式木马。触发式木马是当你进行某一操作时会触发木马的启动机制,使得木马启动,如果你永远不进行这一操作,而木马则永远不会启动。这样,事实上对于自启动木马,我们仔细查找各个启动项,总能找到蛛丝马迹;不过触发是木马就可以充分发挥作者的想象空间了,对我们来说也是更大的挑战。最常见的也是我们首先要检查的

24、当然就是Autorun.inf了,这个臭名昭著,一般都会关联到同一个目录下的一个exe 文件。通常此文件会以隐藏文件的形式出现,更有些恶毒的会加上“注册表监控并回写”来为文件隐藏护航,你一旦更改系统为“显示所有文件”,它马上会再次改为“不显示隐藏文件”。更有甚者,很多最新的木马对这个autorun.inf和关联的 exe 文件使用rootkit 技术,隐藏的更为隐蔽。处理方法:使用冰刃,它可以显示所有的隐藏文件大部分的使用的rootkit保护的文件,由于 autorun.inf和关联的 exe 文件通常都是木马的安装文件,大可直接删除。删除后,隐藏文件恢复到注册表HKLMSoftwareMic

25、rosoftWindowsCurrentVersionExporlerAdvancedFolderHiddenShowAll 下的 checkvalue 值改为 1。另外 autorun.inf修改了硬盘的打开属性,删除后盘附打不开,在注册表中搜索该exe 文件名称,找到后删除。另一种常见的触发方式是修改文件关联。文件关联就是某一类型的文件与某一程序的对应关系,我们的系统中有无数种文件格式,比如:图片文件(以.bmp .jpg .gif等为扩展名)、音乐文件 (mp3 mp4 等) .当你双击一个图片时,系统会调用看图程序来打开并显示图片,而不是调用播放器来播放图片,系统为什么会知道要调用看图

26、程序而不是调用播放器呢?这就是因为文件关联的存在,在注册表中,图片文件已经与看图程序关联在了一起,相应的,音乐文件与播放器关联在了一起,大多数类型的文件都与某一特定程序有关联。这样,系统才知道,打开什么样的文件需要调用什么程序。木马就是把某一特定类型文件的关联改为了与它自己关联,这时你一旦打开这一类型的文件就会触发木马的启动。由于木马启动后,会由它再调用正常的关联程序,所以,文件仍然会正常打开,而你也就不知道其实你的操作已经将木马启动了起来。木马会改哪种文件的关联呢?这只有木马的作者才知道。系统中又有多少文件关联可供它改呢?HKEY_CLASSIS_ROOT下的子项全部都是,怎么也得上千个吧。这样,只要你打开被关联格式的文件,就会触发木马,一般该木马还会指向到原来的关联进程,这个文件也可以正常打开,因此用户是注意不到的。如果

温馨提示

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

评论

0/150

提交评论