角落里的木马查杀之战——站长安全顾问系列话题之三

转载自黑客防线
服务器管理的日常工作,无非在各种日志之间转悠,看看web日志,读读数据库日志,分析分析防火墙日志,重点查一下安全软件日志……目的就是让系统中各种各样可能存在的恶意软件被清理或者干脆就放不进来。相信安全工程师的日常工作一定有些乏味,也一定有丝丝呆板的无奈。为什么我们不试图去改变这种情况,用更轻松的工作方法去替代部分沉闷的时间?

今天发此帖的原由,是因为有人向我抱怨:“天天看日志,眼睛都绿了,日志分析工具却又不能解决所有问题。很多webshell、系统木马都找非常隐蔽的地方躲藏,这些角落实在是难找……”,于是我答曰:“角落的问题,不是问题,只要没被rookit找上门,对已经存在的坏东东,都不用看日志来查。”

其实作为一个服务器,以常规2003 server + iis为例,需要日常关注的,无非是web目录下的webshell、系统目录下的木马、其他盘上的后门什么的,这些东西是需要时常注意的,指不定什么角落就被放了一个别人的东西。对于以上的种种,虽然我们不能完全做到100%发现、清理(比如rookit被装上了就比较郁闷),但是可以用简单方法一网打尽!

用的工具很简单,就是UE[全名ultraedit,就是著名的文件编辑器],原理就是文件名、文件时间、文件内容、文件属性等综合比对!下面举个例子来做说明。

现如今webshell到处都是,典型的webshell有一句话的、图片的、加密的、文件参数生成的、特殊后缀等,反倒是以前的最典型的独立文件的webshell比较少见了。

木马、后门也是漫天飞,这个要归类就比较难了,根据本贴内容大致分一下:不隐藏不删除自身、隐藏不删除自身、隐藏删除自身,另外还有单独的hook类的,比如rookit或者驱动级的隐藏木马(特例,最后会讲)。

对付这类的webshell、木马大家肯定都有自己的一套办法,我们今天只说用UE来查。

注意:数据备份是安全人员必须要做的事,所以我们在测试前假定你有一份干净的备份,这个备份应该包括web备份、系统文件备份(系统文件备份有更好的方法,这里不讨论,只用最笨最简单的:用PE之类的盘加载,把系统文件全部copy出来)等——如果你说备份也是被搞过而不安全的,那抱歉,这个帖子实在不适合你,你还是回火星吧。

下面以web目录为例:比如我备份的所有web文件都放在web-bak里面,而实际给访问者提供使用的是web目录,现在我们要查一查从备份开始到当下有可能出问题的文件。利用UE,我们可以得到如下的视图:

角落里的木马查杀之战——站长安全顾问系列话题之三

这个视图很明确的告诉你以下信息:
哪些文件不同时存在于两个文件夹里面,分别是处于什么子目录;
哪些文件同时存在于两个文件夹里面,分别是处于什么子目录,但大小不同;
哪些文件同时存在于两个文件夹里面,分别是处于什么子目录,大小相同,但修改时间不同;
哪些文件同时存在于两个文件夹里面,分别是处于什么子目录,大小相同,修改时间相同,但文件属性不同;
哪些文件同时存在于两个文件夹里面,分别是处于什么子目录,大小相同,修改时间相同,文件属性相同,但NTFS数据流不同;
哪些文件同时存在于两个文件夹里面,分别是处于什么子目录,大小相同,修改时间相同,文件属性相同,NTFS数据流不同,但文件内容经过加密。

……
还有更多,大家自己分析下吧。
通过以上的判断,可以查一句话webshell、图片webshell、加密webshell、文件参数生成webshell、特殊后缀webshell,以及不隐藏不删除自身的木马、隐藏不删除自身的木马、隐藏删除自身的木马(需要比对系统文件)……
很强大吧?嘿嘿。但是,有不足!
比如rootkit,我在测试的时候,使用了用户当前权限无法正常浏览到的rootkit,这个东东hook了一些东西,在当前用户下是看不到的。在这样的情况下,使用UE是比对不出来的——这也算是这个方法的硬伤吧,不过不能完全奢求工具不是?!

总的来说,用UE这个看似简单的功能,能够找到决大多数恶意的东西,为我们日常的安全维护提供很大的便利,美中不足的是对用户权限下无法访问的东西不能做出判断。

问题:
1.        怎么样解决这个硬伤?莫非要给UE加上进程比对或者冰刃的API检查?
2.        就以上帖子的处理方法和防护目标,有突破的方法吗?如何突破?
 
上一篇:mysql5.6主从复制与基于amoeba实现读写分离


下一篇:IP代理