Win 2003安全检测 让入侵者无处遁形
http://blog.163.com/myp8109/blog/static/1947228200871375615305/
Windows Server 2003是服务器版的系统,个人用户时有使用,但其多被用来做服务器的系统平台。攻击者更愿意获取其控制权,因此它面临的安全威胁也最大。往往的情况是,我们的系统遭到攻击甚至被入侵而我们不为所知。可见,除了安全部署,做好系统的入侵检测也是非常重要的。那应该从哪些方面进行检测,如何检测呢?
一、常规检查
1.查看系统中的“陌生人”
攻击者在入侵系统后,为了长期控制系统往往要创建系统帐户,这帐户往往是管理员组的。比如敲入命令“net user lw "test168" /add & net localgroup administrators lw /add”(不含引号)就创建了一个用户名为lw,密码为test168的管理员用户。这就是系统中的“陌生人”,我们必须要清除出去。
对于这样的用户,我们可以在命令提示符(cmd.exe)下敲入“net user”或者打开“计算机管理”,展开“本地用户和组”查看administrators组是否有陌生帐户添加以确定入侵。当然,一个狡猾的入侵者不会这么做,他们会通过各种方法进行帐户的隐藏。其常用的伎俩不外乎四种:
(1).激活Server 2003的Guest用户,并把其加入管理员组。对此,管理员一定要查看在administrators组中是否有个guest用户。如果存在,几乎可以肯定Server 2003被入侵了。
(2).创建隐藏帐户。入侵者在帐户的后面加“$”,比如把上面的命令改为“net user lw$ "test168" /add & net localgroup administrators lw$ /add”,就创建了一个lw$用户,该用户在命令提示符(cmd.exe)下输入“net user”命令是看不到的,但在“本地用户和组”中可以看到。
(3).克隆帐户。这应该是入侵者最常使用的,他们往往会克隆administrator帐户,这个帐户无论在命令提示符、“本地用户和组”设置注册表的“sam”项下也无法看到,隐蔽性极高。对此,管理员必须得通过工具才能查看系统中是否有克隆帐户。笔者推荐mt.exe,mt被很多杀毒软件定义为木马,也是攻击者进行帐户克隆的首选工具,但其也可以让系统中克隆帐户现行。
具体操作是:在命令提示符下进入mt目录输入命令:mt -chkuser。输入命令后,会在屏幕中输出结果,主要查看ExpectedSID和CheckedSID,如果这两个值不一样则说明账号被克隆了。在本例中可以看到账号simeon$的CheckedSID跟Administrator的CheckedSID值一样,说明simeon$克隆了Administrator账号。(图1)
(4).Rookit帐户。通过Rootkit创建的帐户具有克隆帐户隐藏的所有特点,也具有非常高的隐蔽性。对于这样的危险帐户的清除首先要清除系统中的Rookit程序,只有把其清除了,所有的隐藏帐户就会显形。笔者推荐工具RootKit Hook Analyzer,其可以分析检测系统中的Rootkit程序并用红色显示出来,然后管理员就可以结束它。(图2)
2.检查当前进程情况
进程是非常重要的一项,通过其可以查看是否可疑的程序在系统中运行。在一般情况下,可以通过“任务管理器”查看Server 2003进程情况,在其“进程”选项卡下Server 2003当前显式进程一目了然。甄别是否是危险进程,管理员要对系统进程或者常用程序的进程比较了解。对于拿不准的进程或者说不知道是Server 2003上哪个应用程序开启的进程,可以在网络上搜索一下该进程名加以确定。比如大家可以在“进程知识库”(http://www.dofile.com)进行查看比对。该网站比较详细地列举了“系统进程”、“应用程序进程”、“存在安全风险的进程”。当然,病毒、木马的进程是可以由攻击者更改的,但它们为了达到目的往往会在进程名上做文章,一般会取一个与系统进程类似的名称。通常迷惑手段是变字母o为数字0,变字母l为数字1,如svch0st.exe、exp1orer.exe等,此时要仔细辨别。(图3)
虽然Windows Server 2003集成了进程查看器,但其功能比较简陋而且对一些通过Hook或者Rootkit方式插入正常系统进程或者隐藏的进程显得无能为力。笔者推荐类似IceSword(冰刃)这样的工具,通其可以查看进程的线程及其该进程调用的模块信息,从而帮助管理员找到隐藏的进程。(图4)
3.检查系统文件
攻击者在入侵中或者入侵成功后,会在系统文件上做文章隐藏保护入侵工具(一般是木马的客户端)。其主要手段是替换同名的系统文件(exe和dll文件),或者实施系统文件与木马的捆绑。
检测系统文件,笔者建议在Server 2003系统安装完毕之后用“dir *.exe /s >1.txt”将系统盘所有的exe文件列表保存下来。这样,在检测时,先该命令生成一份当前Server 2003系统盘文件列表,然后用FC命令比较两个文件从而发现可疑文件,对于dll文件的检测方法类似。需要注意的是打补丁或者安装软件后重新生成一次原始列表。检查相关系统文件是否被替换或系统中是否被安装了木马后门等恶意程序。(图5)
对于被捆绑的系统文件的安全检测,笔者建议可以通过SFC命令还原纯净的系统文件。必要时可运行一次杀毒程序对系统盘进行一次扫描处理。
4.检查目录权限
Server 2003支持NTFS文件格式,我们一般要对磁盘、目录的权限往往经过严格的设置。这些设置加固了系统的安全,限制的攻击者的入侵。因此,攻击者在攻击过程中或者攻击完成后,往往要对目录的权限进行调整,以方便自己后期的使用。比如攻击者在获得一Web站点的webshell后,就要进行进一步的渗透、提权等操作,其中对于目录权限的突破是一个手段。所以,对于磁盘、目录权限的检测也是系统入侵检测的一个重要方面。(图6)
(1).需要检查权限的磁盘、目录有:系统盘及其它分区,%windir%、%windir%\system32、%windir%\system32\inetsrv、%windir%\system32\inetsrvdata、"documents Settings",如果是虚拟主机还应该有每个Web站点的目录。
(2).对于用serv-u部署的FTPServer 2003,需要查看serv-u安装目录的权限是否做过变动。
(3).检查system32下的某些重要系统命令的权限有无更改,这些命令文件是:cmd、net、ftp、tftp、cacls等。
5.检查启动项
攻击者在控制Server 2003后,往往会上传一个木马服务端,这个服务端除了注册为系统Server 2003外,有的会添加到系统启动项里随系统启动。因此,对Server 2003的入侵检测启动项也是一个重要的地方。
启动项的检查可用的方法主要有以下三个:
(1).Msconfig工具。运行该工具,在“启动”选项卡下可以看到随系统启动的程序,只需取消对可疑程序启动的勾选即可。
(2).regedit(注册表)工具。运行该工具,定位到如下注册表项下进行检查:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
以上的键值会出现在msconfig的“启动”项中。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
以上的键值比较隐蔽
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Shell"="EXPLORER.EXE,*.exe"
*为某病毒或者木马的可执行文件,这种方法非常隐蔽,被当前的许多病毒采用。
(3).专门工具。这样的工具比较多,比如RegRunFirst就不错。运行后点选左边相关的注册表启动项项,就可以看到该项下的启动程序。
另外,"C:\Documents and Settings\Administrator\「开始」菜单\程序\启动"也是个比较危险的地方。比如攻击者获得了一WebServer 2003的webshell,没有命令执行权限但具有对该目录的写权限,就可以向该目录上传木马程序等Server 2003重启后木马也就运行了。(图7)
二、容易被忽视的安全角落
1.检查系统服务
攻击者在攻克Server 2003后,往往会上传一个木马的服务端从而实现对Server 2003的远程控制。这些木马的服务端往往是以服务的形式随系统启动而运行的。对这木马服务端的检测,可以通过系统的“服务”工具实现。
运行services.msc,检查处于已启动状态的服务,查看是否有新加的未知服务并确定服务的用途。对于不清楚的服务打开该服务的属性,查看该服务所对应的可执行文件是什么,如果确定该文件是系统内的正常使用的文件,可粗略放过。查看是否有其他正常开放服务依存在该服务上,如果有,可以粗略的放过。如果无法确定该执行文件是否是系统内正常文件并且没有其他正常开放服务依存在该服务上,可暂时停止掉该服务,然后测试下各种应用是否正常。对于一些后门由于采用了hook系统API技术,添加的服务项目在服务管理器中是无法看到的,这时需要打开注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\SetServices项进行查找,通过查看各服务的名称、对应的执行文件来确定是否是后门、木马程序等。
需要提醒的是,这些木马的服务端在生成之前都可以进行设置。比如服务端运行后进程的名称、释放的目录、Server 2003描述等,所以管理员一定要仔细辨别。(图8)
2.查看相关日志
Server 2003中的日志有很多类,与笔者认为与入侵检测相关首先是“安全”日志,该日志记录了用户(本地或者远程)系统的详细信息。另外,与Server 2003中运行的服务相关的比如DNS、IIS等也是入侵检测中特别注意的。
运行eventvwr.msc,点击“安全性”就可以在右边看到与安全相关的日志。比如第一条日志显示LW用户在2008-6-21的12:46:23远程登陆了系统图9,如果管理员自己没有登录或者系统中本来没有该用户,那么就可以断定Server 2003被入侵了。(图9)
Server 2003中的日志信息往往非常多,要对这么多的日志信息进行分析显然是不可能的,我们可以在日志记录上点右键选“属性”,在“筛选器”中设置一个日志筛选器根据自己的需要进行筛选,过滤无用的信息。如果要分析Web是否被入侵,可以打开“IIS管理器”定位到其日志文件进行查看。不过,web日志是非常多的,因此需要通过专门的工具进行分析,比如“Web Log Explorer”就是一款不错的工具,可以查看浏览者的IP及其该IP访问、下载或者修改了哪些文件等等。(图10)
正因为,日志会记录入侵者的踪迹。所有狡猾的入侵者往往在入侵后会对日志进行操作,擦除入侵痕迹。常见的手段是:
(1).删掉日志。这是最低级的做法,虽然消除了日志,但也暴露了入侵者自己。如果是这样,管理员看到日志被删除可以马上断定Server 2003被入侵。
(2).部分删除。一些比较高明的入侵者在入侵结束后会删除日志中与自己相关的部分。如果这样,管理员可以实施对日志的监控保护,一旦发现日志有删除的痕迹就可以进行入侵检测。
(3).部分修改。这是一些高明的入侵者采用的方法,他们在入侵结束后会修改与自己相关的日志,以欺骗管理员或者嫁祸于人,金蝉脱壳。对才,管理员可以采取同上的方法,不过还要进行一定的分析。
最后,笔者以一个安全爱好者的角度建议管理员一定要备份好Server 2003的日志。
3.检查安全策略是否更改
Server 2003的安全级别比较高,其默认的安全策略限制了攻击者的很多行为,因此他们在入侵过程中或者入侵后往往对Server 2003的安全策略进行调整设置以利用对Server 2003的长久控制。所以,安全策略检测也是Server 2003入侵检测的一个重要方面。
安全策略检测主要从下面几个方面入手:
(1).协议相关:打开“本地连接”的属性,查看“常规”中是否只勾选了“TCP/IP协议”。因为一个安全的Server 2003其他的选项是不需要,但这也许是攻击者所需要的。
(2).TCP/IP筛选:打开“TCP/IP”协议设置,点“高级”→“选项”,查看“IP安全机制”是否是设定的IP策略,查看“TCP/IP”筛选允许的端口有没有被更改。
(3).IP安全策略:依次打开“管理工具”→“本地安全策略”,查看目前使用的IP安全策略是否发生更改。
(4).本地策略:在“本地安全策略”查看“本地策略”下的“用户权限分配”和“安全选项”相关策略有无更改。比如“使用空白密码的本地帐户只允许进行控制台登录”策略默认是“启用”的,攻击者可能基于远程登录的需要会改为“已禁用”。(图11)
总结:Windows Server 2003不管是作为个人系统还是服务器系统,安全检测是非常重要的。只要我们提高警惕,进行针对上述系统敏感区域的检测就能够在极大程度上提升系统安全,让入侵者无处遁形。