学会如何巧妙从进程中判断出病毒和木马
学会如何巧妙从进程中判断出病毒和木马
来源:赛迪网技术社区 作者:jcx860
任何病毒和木马存在于系统中,都无法彻底和进程脱离关系,即使采用了隐藏技术,也还是能够从进程中找到蛛丝马迹,因此,查看系统中活动的进程成为我们检测病毒木马最直接的方法。但是系统中同时运行的进程那么多,哪些是正常的系统进程,哪些是木马的进程,而经常被病毒木马假冒的系统进程在系统中又扮演着什么角色呢?请看本文。
病毒进程隐藏三法
当我们确认系统中存在病毒,但是通过“任务管理器”查看系统中的进程时又找不出异样的进程,这说明病毒采用了一些隐藏措施,总结出来有三法:
1.以假乱真
系统中的正常进程有:svchost.exe、explorer.exe、iexplore.exe、winlogon.exe等,可能你发现过系统中存在这样的进程:svch0st.exe、explore.exe、iexplorer.exe、winlogin.exe。对比一下,发现区别了么?这是病毒经常使用的伎俩,目的就是迷惑用户的眼睛。通常它们会将系统中正常进程名的o改为0,l改为i,i改为j,然后成为自己的进程名,仅仅一字之差,意义却完全不同。又或者多一个字母或少一个字母,例如explorer.exe和iexplore.exe本来就容易搞混,再出现个iexplorer.exe就更加混乱了。如果用户不仔细,一般就忽略了,病毒的进程就逃过了一劫。
2.偷梁换柱
如果用户比较心细,那么上面这招就没用了,病毒会被就地正法。于是乎,病毒也学聪明了,懂得了偷梁换柱这一招。如果一个进程的名字为svchost.exe,和正常的系统进程名分毫不差。那么这个进程是不是就安全了呢?非也,其实它只是利用了“任务管理器”无法查看进程对应可执行文件这一缺陷。我们知道svchost.exe进程对应的可执行文件位于“C:\WINDOWS\system32”目录下(Windows2000则是C:\WINNT\system32目录),如果病毒将自身复制到“C:\WINDOWS\”中,并改名为svchost.exe,运行后,我们在“任务管理器”中看到的也是svchost.exe,和正常的系统进程无异。你能辨别出其中哪一个是病毒的进程吗?
3.借尸还魂
除了上文中的两种方法外,病毒还有一招终极大法——借尸还魂。所谓的借尸还魂就是病毒采用了进程插入技术,将病毒运行所需的dll文件插入正常的系统进程中,表面上看无任何可疑情况,实质上系统进程已经被病毒控制了,除非我们借助专业的进程检测工具,否则要想发现隐藏在其中的病毒是很困难的。
系统进程解惑
上文中提到了很多系统进程,这些系统进程到底有何作用,其运行原理又是什么?下面我们将对这些系统进程进行逐一讲解,相信在熟知这些系统进程后,就能成功破解病毒的“以假乱真”和“偷梁换柱”了。
svchost.exe
常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe。随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由svchost.exe进程来启动。而系统服务是以动态链接库(DLL)形式实现的,它们把可执行程序指向scvhost,由cvhost调用相应服务的动态链接库来启动服务。我们可以打开“控制面板”→“管理工具”→服务,双击其中“ClipBook”服务,在其属性面板中可以发现对应的可执行文件路径为“C:\WINDOWS\system32\clipsrv.exe”。再双击“Alerter”服务,可以发现其可执行文件路径为“C:\WINDOWS\system32\svchost.exe -k LocalService”,而“Server”服务的可执行文件路径为“C:\WINDOWS\system32\svchost.exe -k netsvcs”。正是通过这种调用,可以省下不少系统资源,因此系统中出现多个svchost.exe,其实只是系统的服务而已。
在Windows2000系统中一般存在2个svchost.exe进程,一个是RPCSS(RemoteProcedureCall)服务进程,另外一个则是由很多服务共享的一个svchost.exe;而在WindowsXP中,则一般有4个以上的svchost.exe服务进程。如果svchost.exe进程的数量多于5个,就要小心了,很可能是病毒假冒的,检测方法也很简单,使用一些进程管理工具,例如Windows优化大师的进程管理功能,查看svchost.exe的可执行文件路径,如果在“C:\WINDOWS\system32”目录外,那么就可以判定是病毒了。
explorer.exe
常被病毒冒充的进程名有:iexplorer.exe、expiorer.exe、explore.exe。explorer.exe就是我们经常会用到的“资源管理器”。如果在“任务管理器”中将explorer.exe进程结束,那么包括任务栏、桌面、以及打开的文件都会统统消失,单击“任务管理器”→“文件”→“新建任务”,输入“explorer.exe”后,消失的东西又重新回来了。explorer.exe进程的作用就是让我们管理计算机中的资源。
explorer.exe进程默认是和系统一起启动的,其对应可执行文件的路径为“C:\Windows”目录,除此之外则为病毒。
iexplore.exe
常被病毒冒充的进程名有:iexplorer.exe、iexploer.exeiexplorer.exe进程和上文中的explorer.exe进程名很相像,因此比较容易搞混,其实iexplorer.exe是Microsoft Internet Explorer所产生的进程,也就是我们平时使用的IE浏览器。知道作用后辨认起来应该就比较容易了,iexplorer.exe进程名的开头为“ie”,就是IE浏览器的意思。
iexplore.exe进程对应的可执行程序位于C:\ProgramFiles\InternetExplorer目录中,存在于其他目录则为病毒,除非你将该文件夹进行了转移。此外,有时我们会发现没有打开IE浏览器的情况下,系统中仍然存在iexplore.exe进程,这要分两种情况:1.病毒假冒iexplore.exe进程名。2.病毒偷偷在后台通过iexplore.exe干坏事。因此出现这种情况还是赶快用杀毒软件进行查杀吧。
rundll32.exe
常被病毒冒充的进程名有:rundl132.exe、rundl32.exe。rundll32.exe在系统中的作用是执行DLL文件中的内部函数,系统中存在多少个Rundll32.exe进程,就表示Rundll32.exe启动了多少个的DLL文件。其实rundll32.exe我们是会经常用到的,他可以控制系统中的一些dll文件,举个例子,在“命令提示符”中输入“rundll32.exe user32.dll,LockWorkStation”,回车后,系统就会快速切换到登录界面了。rundll32.exe的路径为“C:\Windows\system32”,在别的目录则可以判定是病毒。
spoolsv.exe
常被病毒冒充的进程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系统服务“Print Spooler”所对应的可执行程序,其作用是管理所有本地和网络打印队列及控制所有打印工作。如果此服务被停用,计算机上的打印将不可用,同时spoolsv.exe进程也会从计算机上消失。如果你不存在打印机设备,那么就把这项服务关闭吧,可以节省系统资源。停止并关闭服务后,如果系统中还存在spoolsv.exe进程,这就一定是病毒伪装的了。
限于篇幅,关于常见进程的介绍就到这里,我们平时在检查进程的时候如果发现有可疑,只要根据两点来判断:
1.仔细检查进程的文件名;
2.检查其路径。
通过这两点,一般的病毒进程肯定会露出马脚。
找个管理进程的好帮手
系统内置的“任务管理器”功能太弱,肯定不适合查杀病毒。因此我们可以使用专业的进程管理工具,例如Procexp。Procexp可以区分系统进程和一般进程,并且以不同的颜色进行区分,让假冒系统进程的病毒进程无处可藏。
运行Procexp后,进程会被分为两大块,“System Idle Process”下属的进程属于系统进程,
explorer.exe”下属的进程属于一般进程。我们介绍过的系统进程svchost.exe、winlogon.exe等都隶属于“System Idle Process”,如果你在“explorer.exe”中发现了svchost.exe,那么不用说,肯定是病毒冒充的。
Windows2000服务器入侵前兆检测方法技巧
来源:赛迪网技术社区 作者:jcx860
入侵检测系统(IDS)是防火墙的合理补充,它帮助安全系统发现可能的入侵前兆,并对付网络攻击。入侵检测系统能在不影响网络性能的情况下对网络进行监测,提供对内部攻击、外部攻击和误操作的实时保护,能够扩展系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。但是,入侵检测系统并不是万能的,高昂的价格也让人退却,而且,单个服务器或者小型网络配置入侵检测系统或者防火墙等投入也太大了。
一、对于WWW服务入侵的前兆检测
对于网络上开放的服务器来说,WWW服务是最常见的服务之一。基于80端口的入侵也因此是最普遍的。很多sceipt kids就对修改WEB页面非常热衷。WWW服务面对的用户多,流量相对来说都很高,同时WWW服务的漏洞和相应的入侵方法和技巧也非常多,并且也相对容易,很多“黑客”使用的漏洞扫描器就能够扫描80端口的各种漏洞,比如wwwscan 、X-scanner等,甚至也有只针对80端口的漏洞扫描器。Windows系统上提供WWW服务的IIS也一直漏洞不断,成为系统管理员头疼的一部分。
虽然80端口入侵和扫描很多,但是80端口的日志记录也非常容易。IIS提供记录功能很强大的日志记录功能。在“Internet 服务管理器”中站点属性可以启用日志记录。默认情况下日志都存放在%WinDir%\System32\LogFiles,按照每天保存在exyymmdd.log文件中。这些都可以进行相应配置,包括日志记录的内容。
在配置IIS的时候应该让IIS日志尽量记录得尽量详细,可以帮助进行入侵判断和分析。现在我们要利用这些日志来发现入侵前兆,或者来发现服务器是否被扫描。打开日志文件,我们能够得到类似这样的扫描记录(以Unicode漏洞举例):
2002-03-10 05:42:27 192.168.1.2 - 192.168.1.1 80 HEAD /script/..蜡../..蜡../..
蜡../winnt/system32/cmd.exe /c+dir 404 -
2002-03-10 05:42:28 192.168.1.2 - 192.168.1.1 80
GET /script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404 -
需要注意类似这样的内容:
/script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404
如果是正常用户,那么他是不会发出这样的请求的,这些是利用IIS的Unicode漏洞扫描的结果。后面的404表示并没有这样的漏洞。如果出现的是200,那么说明存在Unicode漏洞,也说明它已经被别人扫描到了或者已经被人利用了。不管是404或者200,这些内容出现在日志中,都表示有人在扫描(或者利用)服务器的漏洞,这就是入侵前兆。日志也记录下扫描者的来源:192.168.1.2这个IP地址。
再比如这个日志:
2002-03-10 06:17:50 192.168.1.2 - 192.168.1.1 80 HEAD / - 400 -
这是一个使用HEAD请求来扫描WWW服务器软件类型的记录,攻击者能够通过了解WWW使用的软件来选择扫描工具扫描的范围。
IIS通常都能够记录下所有的请求,这里面包含很多正常用户的请求记录,这也让IIS的日志文件变得非常庞大,上十兆或者更大,人工浏览分析就变得不可取。这时可以使用一些日志分析软件,帮助日志分析。或者使用下面这个简单的命令来检查是否有Unicode漏洞的扫描事件存在:
find /I "winnt/system32/cmd.exe" C:\log\ex020310.log
“find”这个命令就是在文件中搜索字符串的。我们可以根据扫描工具或者漏洞情况建立一个敏感字符串列表,比如“HEAD”、“cmd.exe”(Unicode漏洞)、“.ida”“.idq”(IDA/IDQ远程溢出漏洞)、“.printer”(Printer远程溢出漏洞)等等。
二、对于FTP等服务入侵的前兆检测
根据前面对于WWW服务入侵前兆的检测,我们可以照样来检测FTP或者其他服务(POP、SMTP等)。以FTP服务来举例,对于FTP服务,通常最初的扫描或者入侵必然是进行帐号的猜解。对于IIS提供的FTP服务,也跟WWW服务一样提供了详尽的日志记录(如果使用其他的FTP服务软件,它们也应该有相应的日志记录)。
我们来分析这些日志:
2002-03-10 06:41:19 192.168.21.130 administrator [36]USER administrator 331
2002-03-10 06:41:19 192.168.21.130 - [36]PASS - 530
这表示用户名administrator请求登录,但是登录失败了。当在日志中出现大量的这些登录失败的记录,说明有人企图进行FTP的帐号猜解。这就是从FTP服务来入侵的入侵前兆。
分析这些日志的方法也跟前面分析WWW服务的日志方法类似。因为FTP并不能进行帐号的枚举,所以,如果发现有攻击者猜测的用户名正好和你使用的帐号一致,那么就需要修改帐号并加强密码长度。
三、系统帐号密码猜解入侵的前兆检测
对于Windows 2000服务器来说,一个很大的威胁也来自系统帐号密码的猜解,因为如果配置不佳的服务器允许进行空会话的建立,这样,攻击者能够进行远程的帐号枚举等,然后根据枚举得到的帐号进行密码的猜测。即使服务器拒绝进行空会话的建立,攻击者同样能够进行系统帐号的猜测,因为基本上很多服务器的系统管理员都使用administrator、admin、root等这样的帐号名。那些黑客工具,比如“流光”等,就可以进行这样的密码猜测,通过常用密码或者进行密码穷举来破解系统帐号的密码。
要检测通过系统帐号密码猜解的入侵,需要设置服务器安全策略,在审核策略中进行记录,需要审核记录的基本事件包括:审核登录事件、审核帐户登录事件、帐户管理事件。审核这些事件的“成功、失败”,然后我们可以从事件查看器中的安全日志查看这些审核记录。
比如:如果我们在安全日志中发现了很多失败审核,就说明有人正在进行系统帐号的猜解。我们查看其中一条的详细内容,可以看到:
登录失败:
原因:用户名未知或密码错误
用户名:administrator
域:ALARM
登录类型:3
登录过程:NtLmSsp
身份验证程序包:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
工作站名:REFDOM
进行密码猜解的攻击者打算猜测系统帐号administrator的密码,攻击者的来源就是工作站名:REFDOM,这里记录是攻击者的计算机名而不是他的IP地址。
当我们发现有人打算进行密码猜解的时候,就需要对相应的配置和策略进行修改。比如:对IP地址进行限制、修改被猜解密码的帐号的帐号名、加强帐号密码的长度等等来应对这样的入侵。
四、终端服务入侵的前兆检测
Windows2000 提供终端控制服务(Telminal Service),它是一个基于远程桌面协议(RDP)的工具,方便管理员进行远程控制,是一个非常好的远程控制工具。终端服务使用的界面化控制让管理员使用起来非常轻松而且方便,速度也非常快,这一样也让攻击者一样方便。而且以前终端服务存在输入法漏洞,可以绕过安全检查获得系统权限。对于打开终端服务的服务器来说,很多攻击者喜欢远程连接,看看服务器的样子(即使他们根本没有帐号)。
对终端服务进行的入侵一般在系统帐号的猜解之后,攻击者利用猜解得到的帐号进行远程终端连接和登录。
在管理工具中打开远程控制服务配置,点击"连接",右击你想配置的RDP服务(比如 RDP-TCP(Microsoft RDP 5.0),选中书签"权限",点击"高级",加入一个Everyone组,代表所有的用户,然后审核他的"连接"、"断开"、"注销"的成功和"登录"的成功和失败,这个审核是记录在安全日志中的,可以从"管理工具"->"日志查看器"中查看。但是这个日志就象前面的系统密码猜解那样,记录的是客户端机器名而不是客户端的IP地址。我们可以做一个简单的批处理bat文件(文件名为TerminalLog.bat),用它来记录客户端的IP,文件内容是:
time /t >>Terminal.log
netstat -n -p tcp | find ":3389">>Terminal.log
start Explorer
终端服务使用的端口是TCP 3389,文件第一行是记录用户登录的时间,并把这个时间记入文件Terminal.log中作为日志的时间字段;第二行是记录用户的IP地址,使用netstat来显示当前网络连接状况的命令,并把含有3389端口的记录到日志文件中去。这样就能够记录下对方建立3389连接的IP地址了。
要设置这个程序运行,可以在终端服务配置中,登录脚本设置指定TerminalLOG.bat作为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本是Explorer(资源管理器),所以在Terminal.bat的最后一行加上了启动Explorer的命令start Explorer,如果不加这一行命令,用户是没有办法进入桌面的。当然,可以把这个脚本写得更加强大,但是请把日志记录文件放置到安全的目录中去。
通过Terminal.log文件记录的内容,配合安全日志,我们就能够发现通过终端服务的入侵事件或者前兆了。
对于Windows2000服务器来说,上面四种入侵是最常见的,也占入侵Windows2000事件的绝大多数。从上面的分析,我们能够及时地发现这些入侵的前兆,根据这些前兆发现攻击者的攻击出发点,然后采取相应的安全措施,以杜绝攻击者入侵。
我们也可以从上面分析认识到,服务器的安全配置中各种日志记录和事件审核的重要性。这些日志文件在被入侵后是攻击者的重要目标,他们会删除和修改记录,以便抹掉他们的入侵足迹。因此,对于各种日志文件,我们更应该好好隐藏并设置权限等保护起来。同时,仅仅记录日志而不经常性地查看和分析,那么所有的工作就等于白做了。
在安全维护中,系统管理员应该保持警惕,并熟悉黑客使用的入侵手段,做好入侵前兆的检测和分析,这样才能未雨绸缪,阻止入侵事件的发生。











没有评论:
发表评论