该教程转自http://nkevin.blog.163.com/blog/#pn2【原创连载】学看 SRE 报告 ———— 第一讲很早就想写,关于如何看SRE报告的文章。 只是这东西,我觉得不是用文字,就能完全表达清楚的。
做为教程的第一帖,我先讲一下SRE报告的“结构”。掌握了结构,大家就不会对满屏的英文,感到头疼了。
一。SRE报告整体结构说明
一份完整的 SRE 报告,分为如下 13 部分:
1. 注册表启动项目
2. 启动文件夹
3. 系统服务项目
4. 系统驱动文件
5. 浏览器加载项
6. 正在运行的进程(包括进程模块信息)
7. 文件关联
8. Winsock 提供者
9. Autorun.inf
10.HOSTS 文件
11.进程特权扫描
12.API HOOK
13.隐藏进程
其中,判断一台电脑,是否存在异常,主要是查看:
1. 注册表启动项目
3. 系统服务项目
4. 系统驱动文件
6. 正在运行的进程
8. Winsock 提供者
9. Autorun.inf
10.进程特权扫描
在这次的教程中,我先讲解第一项:注册表启动项目, 的结构看法。
二。SRE报告——注册表启动项目,结构讲解
在任何一份SRE报告中,注册表启动项目,都有相同的结构,我下面随便举个例子:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
<Synchronization Manager><mobsync.exe /logon> [(Verified)Microsoft Windows 2000 Publisher]第一行:[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run] ,代表的是:这个启动项目,在注册表中的详细位置。
第二行:<Synchronization Manager><mobsync.exe /logon> [(Verified)Microsoft Windows 2000 Publisher],由三部分组成:
1. <Synchronization Manager>,这个项目,是指该启动项,在注册表中的名称。不同的启动项目,自然名称也不会相同。
2. <mobsync.exe /logon>,这个项目,分两种情况:
⑴ 对于(经过验证的)系统关键文件,SRE则直接列出该项目的文件名称,而不给出相应的详细路径。这种文件,一般在后面都会标有“(Verified)”,我后面解释。
⑵ 对于普通文件,则会在这个项目中,给出详细的文件路径和名称,比如:c:\windows\system32\abc.exe
在我们这次的例子中,是满足:⑴的。
说明:这个说法有误。
其实在此处,显示的就是该注册表键完整的键值,无论其是否是正常的文件或经过验证的文件。对于键值为相对路径的情况(如Explorer.exe),系统自动遍历环境变量PATH中的文件夹列表,来查找文件。
by 轩辕小聪 08.06.15
3.[(Verified)Microsoft Windows 2000 Publisher],这项代表:该文件,是否含有“公司签名认证”
SRE这个软件,自身具备了对“系统关键文件”和一些“众所周知的软件的文件”(如:explorer.exe,winlogon.exe,userinit.exe等)的“验证检测”,凡是通过了检测的系统关键文件,SRE在公司名这里,都会标有:Verified,这个英文。
换个角度来说:在SRE报告中,凡是出现“Verified”这个英文的启动项目,都100%是正常的启动项目。
100%这个说法太绝对了。其实看被机器狗修改的文件就知道,有这个字样,但是没有公司名称,也是有问题的。
严格意义上来说,这叫“数字签名验证”,使用的是一定的对称散列算法。
by 轩辕小聪 08.06.15
总结一下,在SRE报告的:注册表启动项目中,虽然条目有很多,但是,全部都遵守这个结构:
【启动项目的详细注册表位置】
【启动项目的名称】【启动项目对应的文件的详细路径】【公司签名】
我们再来看个例子,大家对照着,看一下:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
<shell><Explorer.exe> [(Verified)Microsoft Windows 2000 Publisher]看完这两行,大家应该得到如下结论:
●此启动项目名称:Shell
●此启动项目对应文件: Explorer.exe
●此启动项目在注册表中对应的位置:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
●公司签名:Microsoft Windows 2000 Publisher
●是否经过SRE“验证”:是 (因为有Verified)
Microsoft Windows 2000 Publisher在这里不止是公司的名称。系统文件的版本信息中可见的公司名称,其实是Microsoft Corporation
然而对于系统文件,SREng可以显示更具体的细节,因此这里显示的是这样一个结果。可以发现,SREng2.5和2.6在这个地方显示的结果不同。
by 轩辕小聪 08.06.15
三。启动项目的“特例”
1. 咱们上面讲的,是标准的启动项目信息,有些文件的启动项目,稍微“拐了一个弯”,我们来看个例子,我再讲解:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
<NvMediaCenter><RUNDLL32.EXE C:\WINNT\system32\NvMcTray.dll,NvTaskbarInit> [NVIDIA Corporation]这个启动项目,算是比较复杂的了,但还算是够常见,第一行,不解释了。。。。。。。主要解释第二行的中间:
<RUNDLL32.EXE C:\WINNT\system32\NvMcTray.dll,NvTaskbarInit>
和我们上面讲解的结构不同。这个启动项目,具有一层隐含意思。在windows中,DLL类型的文件(动态数据库链接文件),是不能自己独立运行的。它必须找“载体”来运行。在windows系统中,运行 DLL 类型的文件的载体,就是:Rundll32.exe。
所以,我们分析一下上面那行文件信息:RUNDLL32.EXE C:\WINNT\system32\NvMcTray.dll,NvTaskbarInit
意思就是:C:\WINNT\system32\NvMcTray.dll,这个真正的启动文件,正在依靠 RUNDLL32.EXE,这个程序,进行启动。
对于这种启动项目,在文件详细信息这里,其结构就发生了变化,变为:载体 主运行文件的详细位置。这个大家能理解就行了。
在windows系统中,载体,不止包括:rundll32.exe,常见的,还包括:svchost.exe,大家照猫画虎,应该可以想到的。
在这里更加正确和根本的解释是:
键值所显示的,是系统按此项启动时,执行的命令行。
因此这里说的实际上是命令行的构成。
这里其实是启动Rundll32.exe,把dll名和其他相应参数作为命令行(CommandLine)参数传递。
by 轩辕小聪 08.06.15
2. 在windows系统中,有一项及其特殊的启动项目,其名称为:AppInit_dlls
对于这个键值,正常的情况是:该项目的值,为空。也就是说,正常的电脑,这个启动项目,应该是这样的:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows]
<AppInit_DLLs><> [N/A]如果在一份报告中,此项的“文件信息”,这个位置,出现东西,则分两种情况考虑:
★被美化软件,修改
目前许多朋友,都喜欢通过美化软件,来美化系统。据我所知,有些高级美化软件,为了达到彻底美化系统的效果,会修改此键值,典型的软件:Windows Blinds
这款软件安装后,此项目的值被修改为:wbsys.sys。大家知道就行了。
注意: 此项注册表启动信息,绝对不能删除,只能在SRE中,双击-进入编辑模式,然后把里面的文件名称去掉,留为空值,就可以了。
★被病毒修改。
遇到上面的美化情况,可以问一下电脑的使用者,是否美化了系统,使用了什么美化软件。如果没有用,而且,此键值出现了文件信息,则中毒的几率非常大。比如下面的例子:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows]
<AppInit_DLLs><kamabas.dll> [N/A]如果这个启动项目,出现在报告中,必须要引起100000000000%的高度重视,必须看清是空值(即正常值),还是有其他信息。
判断方法: 看这个文件(如我的例子中的:kamabas.dll),是不是在报告的“正在运行的系统进程”,中,插入了大部分进程。如果是:则100%为病毒。(后面我会再次讲到的)
这里的说法比较笼统。
实际上,这一个键值显然不是为了病毒而存在的^-^
这个键值的作用,是每一个进程启动加载user32.dll的时候,会自动加载这个键值中保存的所有dll
美化软件就是使用这样的功能,对所有使用图形界面的程序的窗口进行改造。
只是为了能被所有加载user32.dll的进程加载,就可以使用这些项目,包括某些杀毒软件。
SREng对于此项非空的提示,并不表示一定是病毒造成的问题,应谨慎判断。
by 轩辕小聪 08.06.15
四。启动项目“通用正常启动信息”
对于windows XP 系统,在任何一台电脑上,都有如下启动信息,这些信息都是正常信息,看到后无须判断,直接精简掉:
1.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\>{26923b43-4d38-484f-9b9e-de460746276c}]
<Internet Explorer><%systemroot%\system32\shmgrate.exe OCInstallUserConfigIE> [N/A]
2.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\>{881dd1c5-3dcf-431b-b061-f3f88e8be88a}]
<Outlook Express><%systemroot%\system32\shmgrate.exe OCInstallUserConfigOE> [N/A]
3.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{2C7339CF-2B09-4501-B3F3-F3508C9228ED}]
<Themes Setup><%SystemRoot%\system32\regsvr32.exe /s /n /i:/UserInstall %SystemRoot%\system32\themeui.dll> [N/A]
4.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{44BBA840-CC51-11CF-AAFA-00AA00B6015C}]
<Microsoft Outlook Express 6><"%ProgramFiles%\Outlook Express\setup50.exe" /APP:OE /CALLER:WINNT /user /install> [N/A]
5.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{44BBA842-CC51-11CF-AAFA-00AA00B6015B}]
<NetMeeting 3.01><rundll32.exe advpack.dll,LaunchINFSection C:\WINDOWS\INF\msnetmtg.inf,NetMtg.Install.PerUser.NT> [(Verified)Microsoft Windows Publisher]
6.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{5945c046-1e7d-11d1-bc44-00c04fd912be}]
<Windows Messenger 4.7><rundll32.exe advpack.dll,LaunchINFSection C:\WINDOWS\INF\msmsgs.inf,BLC.QuietInstall.PerUser> [(Verified)Microsoft Windows Publisher]
7.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{6BF52A52-394A-11d3-B153-00C04F79FAA6}]
<Microsoft Windows Media Player><rundll32.exe advpack.dll,LaunchINFSection C:\WINDOWS\INF\wmp11.inf,PerUserStub> [(Verified)Microsoft Windows Component Publisher]
8.[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\{7790769C-0471-11d2-AF11-00C04FA35D02}]
<通讯簿 6><"%ProgramFiles%\Outlook Express\setup50.exe" /APP:WAB /CALLER:WINNT /user /install> [N/A]
9.<PHIME2002A><; C:\WINDOWS\system32\IME\TINTLGNT\TINTSETP.EXE /IMEName> [N/A]
10.<PHIME2002ASync><; C:\WINDOWS\system32\IME\TINTLGNT\TINTSETP.EXE /SYNC> [N/A]
11.<IMJPMIG8.1><; "C:\WINDOWS\IME\imjp8_1\IMJPMIG.EXE" /Spoil /RemAdvDef /Migration32> [(Verified)Microsoft Windows Publisher]
在这里原作者没有很好的解释(或许他自己也不太清楚)这一项目的作用,可能导致有些读者因此认为Installed Components项目的检测是“鸡肋”。
在此可以告诉大家,全然不是这样,这个项目是我们当时极力向smallfrogs建议加入的项目。
虽然在大部分情况下这个项目下不会存在异常,然而这个项目仍然作为一个可以启动的位置,而且是相比之下极为隐蔽的位置,彩虹桥等木马就曾藏身于此,特别因为此木马是远程注入无进程的,因此一段时间内甚难以发现其踪迹。因此此项绝非虚设。
by 轩辕小聪 08.06.15
五。关于 IFEO,在此项目中的反映。
请提前参考:IFEO技术介绍:
http://nkevin.blog.163.com/blog/static/448194812007818115139284/在SRE报告的——注册表启动项目中,如果出现:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]
则证明有IFEO,劫持情况出现,这种情况,我在以前的日志写过了,根据下面的文件信息,挑出病毒文件。留着后面删除。最后,用System Detector,这个软件,一键修复即可。举例,大家看一下,是这样的:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\AppSvc32.exe]
<IFEO[AppSvc32.exe]><C:\Program Files\Common Files\Microsoft Shared\addslta.exe> []
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ArSwp.exe]
<IFEO[ArSwp.exe]><C:\Program Files\Common Files\Microsoft Shared\addslta.exe> []
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\AST.exe]
<IFEO[AST.exe]><C:\Program Files\Common Files\Microsoft Shared\addslta.exe> []
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\autoruns.exe]
<IFEO[autoruns.exe]><C:\Program Files\Common Files\Microsoft Shared\addslta.exe> []
典型的IFEO类病毒,参考的SRE报告:
http://nkevin.blog.163.com/blog/static/4481948120078299324191/(大部分安全类软件,都被“IFEO”了)
我简单解释一下“第二行”:
<IFEO[autoruns.exe]>:意思是,利用IFEO技术,劫持正常的文件名为:autoruns.exe 的文件。
<C:\Program Files\Common Files\Microsoft Shared\addslta.exe>:这个就是劫持的主体了,文件名可以看出来吧?
说白了,上面的最后2行,意思就是:当碰到autoruns.exe这个文件的时候,则改为执行:addslta.exe,这个文件。。。。
准确地来说,是当被IFEO劫持的程序执行时,系统转而调用目标程序,并把被IFEO劫持程序执行时的完整命令行作为命令行参数加在后面进行传递。
因此当被IFEO劫持程序与目标程序是同一个时,将导致此过程不停地循环,最终使命令行长度超过系统限制而使操作失败。
by 轩辕小聪 08.06.15
六。如何挑选,区分正常,和不正常的启动项目。
1.正常的系统文件,在不正常的文件位置。(正常的位置,相似的名称)
这个,就需要看报告的人自己去掌握,必须要时刻牢记,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]
这两个启动项目,是正常的?还是不正常的?这里我就不说了,留给大家,思考一下吧~
2.看公司签名
95%的病毒,其病毒文件,都是没有公司签名的,对于没有公司签名的文件,在SRE报告中,其公司名处。显示为:[],或者[N/A]。
在看报告的时候,特别留心,公司签名是这种的。例如:
<WinSysM><C:\WINDOWS\192896M.exe> [N/A]
<LotusHlp><C:\WINDOWS\LotusHlp.exe> []
<WinSysW><C:\WINDOWS\192896L.exe> [N/A]
当然,剩下的5%,意思就是:也有伪装签名的病毒文件存在噢!这个,就得靠大家的细心了。
3.善用搜索引擎
有些比较“偏”的软件,虽然是正常的文件,但也没有公司签名。这种情况,还不在少数。因此,一定要善用搜索引擎,直接搜索,启动的文件,比如 abc.exe, abc.dll等等。
例子:<kav><; "C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 6.0\avp.exe"> [N/A]
稍微有点电脑知识的人,应该能看出这个启动项目是什么吧?郁闷不?公司名,居然是[N/A]。。。。。。搞不懂卡巴公司在搞什么。。。
4. 学会积累,总结
每看一份报告,都要知道,这个电脑,安装了哪些软件,他们有哪些的(正常)进程。这个过程,不是教出来的,只能是自己积累出来的。
行了,第一讲,就写这么多了。今天头有点疼,可能有些我想不到的地方。上面这些,应该涵盖了90%以上的知识了。需要大家慢慢理解和消化。想学看报告,必须就要“多看报告”,至于报告的来源,我推荐瑞星卡卡助手论坛:
http://forum.ikaka.com/这里面,有N多报告,提供给大家看的。刚开始的时候,看报告不要心急,逐行查验,别闲麻烦。我刚开始学看的时候,都是逐个字母的看。看的多了,积累的多了。就会很快的。
下次,我继续往后写,关于 SRE报告中: 服务 这个项目。
用户系统信息:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MAXTHON 2.0)