首页 » 技术分享 » SREng日志全分析(一)

SREng日志全分析(一)

 

SREng日志全分析

我们先来了解下SREng日志的结构:

      

【注:以System Repair Engineer (SREng) 2.81 版本扫出来的日志为标准】


完整的SREng日志,是由以下部分组成的:所有的启动项目(包括注册表、启动文件夹、服务等)

系统驱动文件

浏览器加载项

正在运行的进程(包括进程模块信息)

文件关联

Winsock 提供者

Autorun.inf

HOSTS 文件

进程特权扫描

计划任务

Windows 安全更新检查

API HOOK

隐藏进程


Ⅰ,首先我们来研究:所有的启动项目(包括注册表、启动文件夹、服务等)

  

一.注册表启动项目分支:

1.在SREng日志中,注册表的结构如下:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

<avgnt><"C:\Program Files\Avira\AntiVir Desktop\avgnt.exe" /min /nosplash>  [(Verified)Avira GmbH]

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] 代表这个启动项目,在注册表中的详细位置。


<avgnt><"C:\Program Files\Avira\AntiVir Desktop\avgnt.exe" /min /nosplash>  [(Verified)Avira GmbH]

<avgnt>代表指该启动项在注册表中的名称。不同的启动项目,名称是不同的。

<"C:\Program Files\Avira\AntiVir Desktop\avgnt.exe" /min /nosplash>,这个项目代表的是:在此处,显示的是该注册表键完整的键值。对于键值为相对路径的情况(如Explorer.exe),系统自动遍历环境变量PATH中的文件夹列表,来查找文件。

[(Verified)Avira GmbH]代表的是:(Verified)表示该文件已经通过“数字签名验证”。但要注意的是,有些文件(Verified),但是没有公司名称(例如Avira GmbH),也是要留心的。

  

  

特例!:

1.

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

<NvMediaCenter><RUNDLL32.EXE C:\WINNT\system32\NvMcTray.dll,NvTaskbarInit> 

[NVIDIA Corporation]


在windows中,DLL文件(动态数据库链接文件)是不能自己独立运行的。它其实是启动Rundll32.exe,把NvMcTray.dll和其他相应参数作为命令行(CommandLine)参数传递的。

键值所显示的,是系统按此项启动时,执行的命令行。所以这里实际上是命令行的构成。

另外,在windows中,不止包括:rundll32.exe,常见的还包括:svchost.exe等。


2. 在windows系统中,有一项很特殊的启动项目,其名称为:AppInit_dlls

对于这个键值,正常的情况是:该项目的值为空。也就是说,在正常的电脑中,这个启动项目,如下所示:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows]

<AppInit_DLLs><>  [N/A]

     

这个键值的作用,是每一个进程启动加载user32.dll的时候,会自动加载这个键值中保存的所有dll。

如果在一份报告中,此项的“文件信息”出现键值(SREng会提示的,注:SREng对于此项非空的提示,并不表示一定是病毒造成的问题,应谨慎判断。),则分几种情况考虑:

1.被一些优化软件所修改(作用大致是对所有使用图形界面的程序的窗口进行改造等。)

2.被杀毒软件所修改,例如卡巴斯基等

3.被病毒修改

如果在此项的键值中出现很可疑的文件的话(如12343.dll、wkefu.dll等),那就要小心了例如下:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows]

<AppInit_DLLs><lalala.dll>  [N/A]

      

如果这个启动项目出现在报告中,那么必须得引起你的高度重视,你必须看清是空值(即正常值),还是有其他信息。

判断方法: 看这个文件(例如:lalala.dll),是不是在报告的“正在运行的系统进程”,插入了大部分进程。如果有,则要杀毒了。

      

番外:关于IFEO在日志中的反应:

什么?你居然不知道IFEO?好吧,建议你去百度一下,你就知道了~

在日志注册表项目中,如出现:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\]

这就表明你中了IFEO的劫持了。

例如:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\360safe.exe]

    <IFEO[360safe.exe]><ntsd -d>  [N/A]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\360safebox.exe]

    <IFEO[360safebox.exe]><ntsd -d>  [N/A]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\360tray.exe]

<IFEO[360tray.exe]><ntsd -d>  [N/A]


<IFEO[360safe.exe]>的意思是利用IFEO技术,劫持正常的文件名为:autoruns.exe 的文件。

<IFEO[360safe.exe]><ntsd -d>准确的说:是当被IFEO劫持的程序执行时,系统转而调用目标程序,并把被IFEO劫持程序执行时的完整命令行作为命令行参数加在后面进行传递,使360Safe.exe 进行调试,随后退出。

<ntsd -d>:

-d是这个工具的一个参数,指定ntsd -d的命令可以使程序即使成功进行调试,也会随着它的退出而一起退出。

     

二.如何区分正常和不正常的启动项目:

1.一个看上去正常的系统文件,在不正常的文件位置。(比如应该在windows\system32文件夹下的一个系统文件,却跑到了windows目录下)

这个,就需要自己去掌握了,并要时刻牢记:windows常见进程,对应的文件名称,位置。

例如:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

<svchost><C:\windows\system32\drivers\svchost.exe>  [Microsoft Corporation]

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

<svhcost><C:\windows\system32\svhcost.exe>  [Microsoft Corporation]

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

<svchost><C:\windows\system32\windows\svchost.exe>  [Microsoft Corporation]

  

这三个启动项目明显是不正常的,第一个和第三个明显文件摆放的路径不同,正常的svchost.exe在C:\windows\system32\下,第二个路径对了,但你仔细观察下它的文件名:svhcost.exe…………


2.数字签名验证

80%的正常文件都会有[(Verified)(公司)](当然,还有一些正常文件会没有,这就要借助那伟大的搜索引擎和你那同伟大的大脑了!)所以,在SRE报告中,我们对于没有数字签名验证的文件,其数字签名验证处显示为:[],或[N/A]时,在看报告的时候,要特别小心。例如:

<WoShiBingDu><C:\WINDOWS\sae13424.exe> [N/A]

<lalala><C:\WINDOWS\lalala.exe> []

      

这就是典型的病毒啊!

         

3.善于利用搜索引擎

有些正常的文件,但没有数字签名验证。在这种情况时,我们就要用到搜索引擎了。因此,一定要善用搜索引擎!我们可以直接搜索文件名,比如 abc.exe, abc.dll,abc.sys等。

        

三.启动文件夹分支:

启动文件夹是指开始——程序——启动。在Windows中,启动文件夹分作公用启动文件夹和私有启动文件夹。公用启动文件夹里面的启动快捷方式对所有用户均有效,而私有启动文件夹里面的快捷方式仅对当前用户有效。SREng 能够同时支持共有启动文件夹和私有启动文件夹的信息的获取并在日志中将相关信息予以反馈。

一般来说,日志中的这项内容会很少,分析日志者可以根据自己的判断或结合用搜索引擎很快地判断该启动项是否正常。小编我的启动文件里就没有东东~

例如:

==================================

启动文件夹

N/A

==================================

       

或:

==================================

启动文件夹

[IE-Bar]

          <C:\Documents and Settings\All Users\Start Menu\Programs\Startup\IE-Bar.lnk>

<N/A, >

==================================

       

这个,就是恶意软件所生成的东西,要删除……

        

       

四.服务分支:

1.在SREng日志中,服务的结构如下:

[Avira AntiVir Guard / AntiVirService][Running/Auto Start]

<"C:\Program Files\Avira\AntiVir Desktop\avguard.exe"><Avira GmbH>

      

AntiVirService代表该服务的服务名(注册表中该服务项的真正名称)

Avira AntiVir Guard代表该服务的显示名(该服务项的DisplayName键值)

  

[Running/Auto Start]代表:该服务的运行状态

注:一些其他的状态的中文名:

Running:正在运行

Auto Start:自动启动

Manual Start:手动启动

Disable:禁用

Stopped:目前处于停止

      

<"C:\Program Files\Avira\AntiVir Desktop\avguard.exe">代表映像路径,即ImagePath键值,其与启动项类似,仍然是服务启动时执行的命令行

<Avira GmbH>代表服务的公司名称

       

2.正常、非正常服务的判断方法和依据:

1.根据数字签名验证

这条很上文的【注册表启动项目】的判断方法没啥两样,在这就不再啰嗦了~

         

2.分析在SRE报告中出现的非已经验证过的微软服务和其他服务

日志中只显示非已经验证过的微软服务(已经验证过的微软服务sreng将自动隐藏)

例如:

[woshibingdu / wsbd][Running/Auto Start]

<C:\WINDOWS\system32\wsbd.exe -k><>

      

这种服务……典型的该删!没有数字签名,名称又乱七八糟(wsbd=我是病毒,(*^__^*) 嘻嘻,小编的恶趣味哦~)

        

[svchost / svchost][Stopped/Auto Start]

<C:\WINDOWS\system32\windows\svchost.exe -g><Microsoft Corporation>

这个,什么?看上去不错?!恩,有微软签名。再仔细看看~咦,正常的svchost.exe不是在


C:\windows\system32\下面吗?怎么这个~~~~~懂的人都懂了……

   

3.善于使用搜索引擎

你可以直接用服务的服务名和显示名来搜索。

      

4.谨防冒充“微软签名的”

目前有些病毒,开始伪造微软签名了,公司名是:<Microsoft Corporation>,所以,提醒大家,不要看到是MS的签名,就跳过去了,我们要从名称,映像路径等来综合判断~

       

         

特例!:

1.例如:

[Shell Hardware Detection / ShellHWDetection][Running/Auto Start]

<C:\Windows\System32\svchost.exe -k netsvcs-->%SystemRoot%\System32\shsvcs.dll><Microsoft Corporation>

        

上文已经提到过了

【在windows中,DLL文件(动态数据库链接文件)是不能自己独立运行的。它其实是启动Rundll32.exe,把NvMcTray.dll和其他相应参数作为命令行(CommandLine)参数传递的。

键值所显示的,是系统按此项启动时,执行的命令行。所以这里实际上是命令行的构成。】


在这里,shsvcs.dll启动svchost.exe,把shsvcs.dll和其他相应参数作为命令行(CommandLine)参数传递。所以,在这我们不是主要判断\svchost.exe -k netsvcs,而是要重点判断shsvcs.dll是否为正常文件。


2.例如:

[Human Interface Device Access / HidServ][Stopped/Disabled]

<C:\WINDOWS\System32\svchost.exe -k netsvcs-->%SystemRoot%\System32\hidserv.dll><N/A>

[Help and Support / helpsvc][Stopped/Disabled]

<C:\windows\System32\svchost.exe -k netsvcs-->%WINDIR%\PCHealth\HelpCtr\Binaries\pchsvc.dll><N/A>

        

这两个是很常见的正常项,尽管没有数字签名……


Ⅱ,系统驱动文件

windows正常的驱动文件,为:*.sys,类型的文件,位于:c:\windows\system32\drivers ,这个文件夹下面。

谨记:要删除驱动的时候,一定要先备份,后删除!

     

1.在SREng日志中,驱动程序的结构如下:

[Microsoft Kernel Acoustic Echo Canceller / aec][Stopped/Manual Start]

<system32\drivers\aec.sys><Microsoft Corporation>


其结构和【服务】的结构没有太大区别,在这不累述了。

  

正常、非正常驱动程序的判断方法和依据:

1.看数字签名(见上文)

   

2.文件名称乱七八糟的= =,例如:

[hswgajeg/ rekng][Running/Manual Start]

<system32\drivers\66542gvi.sys><sfjsfg>

[skjd / skjd][Stopped/Manual Start]

<\??\C:\DOCUME~1\hopesky~1\LOCALS~1\Temp\skjd.sys><N/A>


……别废话了,先备份,后删除吧~

    

3.搜索引擎上明摆着是病毒的

     

4.由某种病毒衍生出来的驱动

      

多多积累,才能多多收获,就这样~~

      

      

Ⅲ,浏览器加载项

浏览器加载项是一个综合的项目,其中包括了BHO,ActiveX等插件,浏览器工具栏等多个项目,这些项目中,不仅仅有dll类型的加载PE文件(BHO或ActiveX项目),也有工具栏附加按钮,浏览器的右键菜单项目等。


1.在SREng日志中,浏览器加载项的结构如下:

[Thunder Browser Helper]

  {889D2FEB-5411-4565-8998-1DD2C5261283} <D:\Program Files\Thunder\ComDlls\xunleiBHO_Now.dll, (Signed) Thunder Networking Technologies,LTD>


      

[Thunder Browser Helper]代表该加载项的名称

{889D2FEB-5411-4565-8998-1DD2C5261283}代表在注册表中的名称

<D:\Program Files\Thunder\ComDlls\xunleiBHO_Now.dll代表映像路径

(Signed) Thunder Networking Technologies,LTD>代表数字签名(有些没有也是正常的!)

       

2.正常、非正常浏览器加载项的判断方法和依据:

那啥,很少有病毒会很无聊的涉及到这个项目,一般都是恶意软件等去涉及的……在这个项目中,基本上出不了大问题,自己多多积累一些windows自带的浏览器加载项和常见的浏览器加载项就行了~

         

         


转载自原文链接, 如需删除请联系管理员。

原文链接:SREng日志全分析(一),转载请注明来源!

0
相关推荐