总是需要一些温暖。哪怕是一点点自以为是的纪念。 注册 | 登陆
浏览模式: 标准 | 列表2009年02月的文章

清除间谍软件上篇


      

                        所有人都面临间谍软件的威胁,特别是普通的网络用户。这些网络用户总是很快地点击弹出式对话框,按提示安装软件,接受垃圾邮件的馈赠或者浏览恶意的网站。

最佳的预防措施就是对最终用户进行教育。但是,对于大多数人来说,这个事情已经太晚了,间谍软件已经在Windows工作站中疯狂地蔓延开了。为了帮助你识别和修复各种类型的间谍软件的感染,你可以查看一下如下的情况。在做出诊断和介绍三个Windows安全专家讲的课程之后,我们还将介绍一些用户的投诉。你将发现,每一个专家对一个问题都有一个独特的解决方案。因此,在解决你自己的间谍软件的问题时,你一定要考虑一下所有这些解决方案。

用户的问题:

我为300多个用户提供技术支持。这些用户拥有家庭或者办公室的电脑,采用Windows XP或者Windows 2000操作系统。一些用户报告了下列问题。

当浏览器关闭时(有时候甚至都没有连接到互联网),会出现弹出广告。当打开浏览器时,一个像HotOffers.com的网站出现了,而不是我们内部网的主页。

一个名为“Viewpoint”的搜索工具条出现在浏览器上,无论我们在地址栏内输入什么,这个工具条都一直在搜索。

我有最新的杀毒软件,并且没有发现病毒。使用查杀间谍软件的工具“SpyBot Search & Destroy ”进行扫描之后,发现一些不熟悉的文件,我将删除这些文件。但是,这样并没有解决这些问题。那是什么文件?我如何删除这些文件?请帮忙。

专家提供的补救措施:

清除间谍软件第一步:诊断

安全专家Kevin Beaver:你在这里遇到的问题是人的问题和技术的局限性结合在一起产生的问题。间谍软件和广告软件的启动是用户盲目点击鼠标造成的。当IE浏览器弹出一个对话框,要求在IE中安装一个ActiveX控件或者向用户计算机下载其它貌似安全的游戏、屏幕保护程序等软件时,用户往往随意点击“确认”。

这就是我说的人的问题。这个问题经常发生,因为用户只是想安装软件,弹出式广告就借此机会避开检查想做什么就做什么了。一旦你的用户允许在他们的系统中安装这种软件,根据这种软件的性质,无论用户是否启动IE或者系统是否连接到互联网,这种软件都能够控制Windows计算机的某些方面。这包括启动弹出式广告、修改缺省的主页等。

技术的局限性与查杀间谍软件的工具有关。“Spybot Search & Destroy”对于保护台式电脑并不是万能的解决方案,尽管这是我使用的最好的软件工具。

安全专家Tony Bradley:从给出的情况看,这里可能存在两个不同的问题。当计算机甚至还没有连接到互联网的时候也出现弹出式广告,这类程序可能是通过Windows Messenger服务进入用户计算机的。修改浏览器主页和搜索工具条最有可能是浏览器辅助对象(BHO)出现的问题造成的。间谍软件是一种随看随下(drive-by downloads)的软件。当用户访问恶意网站时,间谍软件利用浏览器中的漏洞不需要用户同意就安装在用户的计算机中。

安全专家Lawrence Abrams:当浏览器中的搜索功能和主页被修改之后,通常会出现劫持浏览器的情况,就像“Viewpoint Manager”软件劫持浏览器一样。浏览器劫持一般分为两大类,主动劫持和被动劫持。

主动劫持者是一种在计算机启动时就调入的程序。这种程序持续监视计算机的具体设置,确保这些设置符合劫持者的愿望。被动劫持是在计算机启动时开始运行的程序。这种程序修改某些设置并且上传。一旦你确定这种劫持程序,这些问题是很容易修复的。

首先,你必须确定你处理的是哪一类劫持程序。我使用HijackThis软件进行查找。如果你熟悉程序入口(entry)的位置或者把软件程序与启动数据库进行比较,你就可以找到劫持软件。

在运行HijackThis工具软件时,我们注意到了Viewpoint工具条和Viewpoint管理器的入口。这就是Viewpoint间谍软件的罪证。我们还看到起始页的入口已经被修改了。

至于热力推荐(HotOffers)的问题,修复这个入口似乎并不起作用。他们还是不断地出现,上面提到的事情似乎都不是这个问题的原因。起始页改回到HotOffers的事实说明我们正在处理的问题是主动的劫持。

在这种情况下,我们需要使用另外一种名为“SilentRunners”的工具软件。这个工具能过让我们深入到正在这种自动运行的程序中。

SilentRunners将生成一个关于注册表设置的登记列表,找出哪些不是Windows缺省设置的程序。

运行这个程序,我将看到如下结果:











HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler

INFECTION WARNING! "{D56A1203-1452-EBA1-7294-EE3377770000}" = "Interlinking Memory Support"

-> {CLSID}InProcServer32(Default) = "C:\WINDOWS\System32\param32.dll" [null data]

这就告诉我一个名为c:\windows\system32\param32.dll的文件在计算机中启动了。param32.dll文件不是缺省的Windows配置。要确定这个文件是不是罪魁祸首,我使用Sysinternal软件中的strings.exe程序查看这个文件内部的ASCII字符串。

当在可执行文件中看到列出的字符串时,我们看到了一个HotOffers,我们现在知道我们已经找出了这个问题了。

清除间谍软件第二步:立即行动

安全专家Kevin Beaver:在这种情况下,你应该运行一两种其他反间谍软件扫描工具,看看能否清除间谍软件的感染。遗憾的是,防御间谍软件和广告软件需要多层次的防护措施才能有效。

安全专家Tony Bradley:要防止任何Windows Messenger服务向系统滥发弹出式信息,你需要关闭Windows Messenger服务(不要与MSN Messenger即时消息工具软件相混淆)或者封锁进入UDP端口135、137和138以及TCP端口135、139和445的通信。

用户已经验证,杀毒软件是最新的,并且使用了目前最好的反间谍软件工具之一的“Spybot - Search & Destroy”。 然而,这些反间谍软件工具都不是100%的有效。不要简单地依赖S&D软件的检查结果。用户还应该试一下使用其它的反间谍软件工具,例如Lavasoft公司的Ad-Aware、微软测试版的Windows AntiSpyware和Webroot软件公司的Spy Sweeper。

安全专家Lawrence Abrams:虽然劫持软件不会传播到其它计算机中,但是,这种软件在许多情况下会严重降低IE浏览器的安全设置。因此,在清除这种感染防止进一步感染之前,阻止用户使用被感染的计算机是非常重要的。

在Windows2000系统中预防Ping攻击


      

                        ICMP的全名是Internet Control and Message Protocal即因特网控制消息/错误报文协议,这个协议主要是用来进行错误信息和控制信息的传递,例如著名的Ping和Tracert工具都是利用ICMP协议中的ECHO request报文进行的(请求报文ICMP ECHO类型8代码0,应答报文ICMP ECHOREPLY类型0代码0)。

ICMP协议有一个特点——它是无连结的,也就是说只要发送端完成ICMP报文的封装并传递给路由器,这个报文将会象邮包一样自己去寻找目的地址,这个特点使得ICMP协议非常灵活快捷,但是同时也带来一个致命的缺陷——易伪造(邮包上的寄信人地址是可以随便写的),任何人都可以伪造一个ICMP报文并发送出去,伪造者可以利用SOCK_RAW编程直接改写报文的ICMP首部和IP首部,这样的报文携带的源地址是伪造的,在目的端根本无法追查,(攻击者不怕被抓那还不有恃无恐?)根据这个原理,外面出现了不少基于ICMP的攻击软件,有通过网络架构缺陷制造ICMP风暴的,有使用非常大的报文堵塞网络的,有利用ICMP碎片攻击消耗服务器CPU的,甚至如果将ICMP协议用来进行通讯,可以制作出不需要任何TCP/UDP端口的木马。既然ICMP协议这么危险,我们为什么不关掉它呢?   

我们都知道,Windows2000在网络属性中自带了一个TCP/IP过滤器,我们来看看能不能通过这里关掉ICMP协议,桌面上右击网上邻居->属性->右击你要配置的网卡->属性->TCP/IP->高级->选项->TCP/IP过滤,这里有三个过滤器,分别为:TCP端口、UDP端口和IP协议,我们先允许TCP/IP过滤,然后一个一个来配置,先是TCP端口,点击“只允许”,然后在下面加上你需要开的端口,一般来说WEB服务器只需要开80(www),FTP服务器需要开20(FTP Data),21(FTP Control),邮件服务器可能需要打开25(SMTP),110(POP3),以此类推……接着是UDP,UDP协议和ICMP协议一样是基于无连结的,一样容易伪造,所以如果不是必要(例如要从UDP提供DNS服务之类)应该选择全部不允许,避免受到洪水(Flood)或碎片(Fragment)攻击。最右边的一个编辑框是定义IP协议过滤的,我们选择只允许TCP协议通过,添加一个6(6是TCP在IP协议中的代码,IPPROTO_TCP=6),从道理上来说,只允许TCP协议通过时无论UDP还是ICMP都不应该能通过,可惜的是这里的IP协议过滤指的是狭义的IP协议,从架构上来说虽然ICMP协议和IGMP协议都是IP协议的附属协议,但是从网络7层结构上ICMP/IGMP协议与IP协议同属一层,所以微软在这里的IP协议过滤是不包括ICMP协议的,也就是说即使你设置了“只允许TCP协议通过”,ICMP报文仍然可以正常通过,所以如果我们要过滤ICMP协议还需要另想办法。

刚刚在我们进行TCP/IP过滤时,还有另外一个选项:IP安全机制(IP Security),我们过滤ICMP的想法就要着落在它身上。

打开本地安全策略,选择IP安全策略,在这里我们可以定义自己的IP安全策略。

一个IP安全过滤器由两个部分组成:过滤策略和过滤操作,过滤策略决定哪些报文应当引起过滤器的关注,过滤操作决定过滤器是“允许”还是“拒绝”报文的通过。要新建IP安全过滤器,必须新建自己的过滤策略和过滤操作:右击本机的IP安全策略,选择管理IP过滤器,在IP过滤器管理列表中建立一个新的过滤规则:ICMP_ANY_IN,源地址选任意IP,目标地址选本机,协议类型是ICMP,切换到管理过滤器操作,增加一个名为Deny的操作,操作类型为“阻止”(Block)。这样我们就有了一个关注所有进入ICMP报文的过滤策略和丢弃所有报文的过滤操作了。需要注意的是,在地址选项中有一个镜像选择,如果选中镜像,那么将会建立一个对称的过滤策略,也就是说当你关注any IP->my IP的时候熟悉网络的人都知道Ping,Ping是用于检测网络连接性、可到达性和名称解析的疑难问题的主要TCP/IP命令。Ping最主要的用处就是检测目标主机是否可连通。

黑客要入侵,就得先锁定目标,一般都是通过使用Ping命令来检测主机,获取相关信息,然后再进行漏洞扫描。如何不受别人的攻击?那就是阻止别人Ping自己的电脑,让攻击无从着手。笔者介绍四种常见的阻止Ping的方法,供大家参考。

一、用高级设置法预防Ping

默认情况下,所有Internet控制消息协议(ICMP)选项均被禁用。如果启用ICMP选项,您的网络将在 Internet 中是可视的,因而易于受到攻击。

如果要启用ICMP,必须以管理员或Administrators 组成员身份登录计算机,右击“网上邻居”,在弹出的快捷菜单中选择“属性”即打开了“网络连接”,选定已启用Internet连接防火墙的连接,打开其属性窗口,并切换到“高级”选项页,点击下方的“设置”,这样就出现了“高级设置”对话窗口,在“ICMP”选项卡上,勾选希望您的计算机响应的请求信息类型,旁边的复选框即表启用此类型请求,如要禁用请清除相应请求信息类型即可。

二、用网络防火墙阻隔Ping

使用防火墙来阻隔Ping是最简单有效的方法,现在基本上所有的防火墙在默认情况下都启用了ICMP过滤的功能。在此,以金山网镖2003和天网防火墙2.50版为蓝本来说明。

对于使用金山网镖2003的网友,请用鼠标右击系统托盘中的金山网镖2003图标,在弹出的快捷菜单中选择“实用工具”中的“自定义IP规则编辑器”,在出现的窗口中选中“防御ICMP类型攻击”规则,消除“允许别人用ping命令探测本机”规则,保存应用后就发挥效应。

如果您用的是天网防火墙,在其主界面点击“自定义IP规则”,然后不勾选“防止别人用ping命令探测”规则,勾选“防御ICMP攻击”规则,然后点击“保存/应用”使IP规则生效。

三、启用IP安全策略防Ping

IP安全机制(IP Security)即IPSec 策略,用来配置 IPSec 安全服务。这些策略可为多数现有网络中的多数通信类型提供各种级别的保护。您可配置 IPSec 策略以满足计算机、应用程序、组织单位、域、站点或全局企业的安全需要。可使用 Windows XP 中提供的“IP 安全策略”管理单元来为 Active Directory 中的计算机(对于域成员)或本地计算机(对于不属于域的计算机)定义 IPSec 策略。

在此以WINDOWS XP为例,通过“控制面板”—“管理工具”来打开“本地安全策略”,选择IP安全策略,在这里,我们可以定义自己的IP安全策略。一个IP安全过滤器由两个部分组成:过滤策略和过滤操作。要新建IP安全过滤器,必须新建自己的过滤策略和过滤操作,右击窗口左侧的“IP安全策略,在本地机器”,在弹出的快捷菜单中选择“创建IP安全策略”,单击“下一步”,然后输入策略名称和策略描述。单击“下一步”,选中“激活默认响应规则”复选项,单击“下一步”。开始设置响应规则身份验证方式,选中“此字符串用来保护密钥交换(预共享密钥)”选项,然后随便输入一些字符(后面还会用到这些字符的),单击“下一步”,就会提示已完成IP安全策略,确认选中了“编辑属性”复选框,单击“完成”按钮,会打开其属性对话框。

接下来就要进行此新建安全策略的配置。在“Goodbye Ping 属性”对话窗口的“规则”选项页中单击“添加”按钮,并在打开安全规则向导中单击“下一步”进行隧道终结设置,在这里选择“此规则不指定隧道”。单击“下一步”,并选择“所有网络连接”以保证所有的计算机都Ping不通。单击“下一步”,设置身份验证方式,与上面一样选择第三个选项“此字符串用来保护密钥交换(预共享密钥)”并填入与刚才上面相同的内容。单击“下一步”即打开“IP筛选器列表”窗口,在“IP筛选器列表”中选择“新IP筛选器列表”,单击右侧的“编辑”,在出现的窗口中点击“添加”,单击“下一步”,设置“源地址”为“我的IP地址”,单击“下一步”,设置“目标地址”为“任何IP地址”,单击“下一步”,选择协议类型为ICMP,单击“完成”后再点“确定”返回如图9的窗口,单击“下一步”,选择筛选器操作为“要求安全”选项,然后依次点击“下一步”、“完成”、“确定”、“关闭”按钮保存相关的设置返回管理控制台。

最后在“本地安全设置”中右击配置好的“Goodbye Ping”策略,在弹出的快捷菜单中选择“指派”命令使配置生效。

经过上面的设置,当其他计算机再Ping该计算机时,就不再Ping通了。但如果自己Ping本地计算机,仍可Ping通。在Windows 2000中操作基本相同。

四、修改TTL值防Ping

许多入侵者喜欢用TTL值来判断操作系统,他们首先会Ping一下你的机子,如看到TTL值为128就认为你的系统为Windows NT/2000,如果TTL值为32则认为目标主机操作系统为Windows 95/98,如果为TTL值为255/64就认为是UNIX/Linux操作系统。既然入侵者相信TTL值所反应出来的结果,那么我们不妨修改TTL值来欺骗入侵者,达到保护系统的目的。方法如下:

打开Windows自带的“记事本”程序,编写如下所示的批处理命令:











@echo REGEDIT4>>ChangeTTL.reg

@echo.>>ChangeTTL.reg

@echo [HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters]>>ChangeTTL.reg

@echo "DefaultTTL"=dword:000000ff">>ChangeTTL.reg

@REGEDIT /S /C ChangeTTL.reg

另存为以.bat为扩展名的批处理文件,点击这个文件,你的操作系统的缺省TTL值就会被修改为ff,即十进制的255,即把你的操作系统人为地改为UNIX系统了!

“DefaultTTL=dword:000000f”是用来设置系统缺省TTL值的,如果你想将自己的操作系统的TTL值改为其它操作系统的ICMP回显应答值,请改变“DefaultTTL”的键值,要注意它的键值为16进制。

如何禁止别人Ping自己的主机(Windows2000自带)

我的电脑-控制面板-管理工具-本地安全策略-ip安全策略,这是Windows2000给我们的配置ip管理的工具,我这里只说一下如何禁止别人ping我的主机。

共有四个步骤:

1、建立禁ping 规则;

2、建立禁止/允许规则;

3、把这两个规则联系在一起 ;

4、指派;

详细:

1.右击ip安全策略-管理ip筛选器表和筛选器操作-ip筛选器列表-添加:名称:ping;描述:ping;(勾选“使用添加向导”),---添加-下一步:指定源/目的ip ,协议类型(icmp),下一步直至完成,关闭此对话框。

2.管理ip筛选器表和筛选器操作-管理筛选器操作-添加(勾选“使用添加向导”)-下一步:名称:refuse;描述:refuse--下一步:阻止-下一步直至完成。

3.右击ip安全策略-创建ip安全策略-下一步:名称:禁止ping;--下一步:取消激活默认响应规则-下一步:选中选中“编辑属性“-完成。然后再“禁止ping属性“上-添加(勾选“使用添加向导”)-下一步直至“身份验证方法”;选第三项,输入共享字串-下一步:在ip筛选器列表里选“ping”——下一步:选“refuse”——下一步到完成。

这是你在“本地安全设置“右侧会看到“禁止ping“这条规则,但是现在他还没有起作用。

4.右击“禁止ping”——指派。

这回一条禁止别人ping自己的机器的ip策略完成了。

赶快找个机器试试,自己的机器不行。会提示:请求超时(timeout).

以上只是一条小得的ip过滤,你可以自己制作其他的ip策略。

清除间谍软件下篇


      

                        清除间谍软件第三步:恢复

安全专家Kevin Beaver:如果可能的话,运行一种以上的反间谍软件程序,如Spybot - Search & Destroy、冠群国际的eTrust PestPatrol Anti-Spyware 、微软的Windows AntiSpyware,同时加强IE安全设置和个人防火墙保护。在安全的环境中,你还可以考虑使用基于行为的防御软件,如Sana安全公司和Finjan软件公司的产品。

安全专家Tony Bradley:如果运行其它的间谍软件扫描工具还不能完全清除间谍软件,你可以采取手工方式确定间谍软件在做什么和如何杀灭这些间谍软件。Sysinternals Freeware公司提供很多免费的软件工具,可以查出间谍软件暗地里在做什么。进程管理器(Process Explorer) 能够帮助你查找正在运行的可疑的进程。间谍软件的进程通常使用与Windows的进程相类似的名称,以便不易被察觉。然而,如果你查看路径信息,你就可以发现那些路径异常的进程,并且验证那些表面上合法的文件的版本和版权信息。Sysinternals公司的其它工具还有Autoruns和ListDLLs。这些工具对于帮助你调查正在运行的进程也是很有效的。

另一个功能强大的帮助你识别和消灭间谍软件组件的工具是Merijn.org公司的HijackThis。这个软件能够检查Windows注册表和硬盘中的关键区域,并且提供详细的内容列表。在使用HijackThis工具软件的时候需要特别谨慎,或者请求专家提供指导。这个软件的文件删除和保留的权利完全取决于用户。HijackThis软件有时候查出的软件程序是合法的,如果删除会对系统产生不利的影响,甚至会使系统无法运行。

安全专家Lawrence Abrams:现在间谍软件已经找到了。我们需要设计一个工作人员很容易操作的清除间谍软件的常规方法。工作人员将清除办公计算机和家庭计算机中的间谍软件。你可以通过控制面板中的增加/删除程序很容易地卸载Viewpoint工具条和Viewpoint管理器。

为了修复HotOffers的感染,你可以删除param32.dll文件。问题是,这个程序是不停地运行的。你需要以安全模式重新启动计算机,这时param32.dll文件就不运行了,就可以删除了。如果这样还不行,使用一个名为“KillBox”的工具软件在重新启动的过程中删除那个文件。

然后,你可以使用HijackThis软件修复剩余的入口,恢复用户对起始页和搜索功能的控制。

接下来,你可以在一个正式的删除文件中把这些步骤记下来。这种文件要让工作人员和家庭用户很容易理解。

清除间谍软件第四步:预防措施

安全专家Kevin Beaver:你可以拥有的最强大的预防措施就是人的因素:教育人们如何处置和为什么不要点击弹出式广告、安装程序的提示以及其它可能导致传播间谍软件手段。遗憾的是,只要人类介入计算环境,我们就会遇到这种问题。有些人是故意的,有些人是不故意的。因此,还要确保使用正确的技术。这个提高警惕的周期是永远也不会结束的。

安全专家Tony Bradley:要防止随看随下(drive-by downloads)和其它间谍软件问题,用户应该避免访问可疑的网站。知名的网站一般都是比较安全的和没有恶意软件的。但是,如果用户要访问没有访问过的小网站,很可能会受到恶意软件的感染。为了增强保护措施,你可以使用Lavasoft公司的Ad-Aware Pro或者微软Windows AntiSpyware测试版。这些软件能够主动监视你的计算机,防止间谍软件的安装。

你可以采取的另一种措施是使用研究机构Eric Howes的IE-SPYAD工具软件。这个软件提供了一个包含9000个恶意网站的列表,这些网站安装广告软件、间谍软件和浏览器劫持软件或者其它恶意软件。运行IE-SPYAD之后,可以保证这些恶意网站不影响你的计算机。

安全专家Lawrence Abrams:现实是,间谍软件、劫持软件和其它恶意软件正在像蠕虫、特洛伊木马和病毒一样流行。大多数人以为杀毒软件会清除一切恶意软件,而实际上杀毒软件的重点是病毒、特洛伊木马和蠕虫。在你的计算机中采取多层防御措施是非常重要的。

下面是我提出的防御间谍软件的八项措施。请注意,排列顺序不是按照重要性排列的,因为它们具有同样的重要性。

·Windows补丁一发布就要立即使用。

·企业防火墙和基于本地软件的防火墙必须能够保护每一台计算机。

·IE浏览器的设置必须是非常安全的。

·每台计算机至少安装两种间谍软件清除工具,如Spybot - Search & Destroy和Ad-Aware。

·应该安装Javacool软件公司的SpywareBlaster软件,以阻止已知的恶意ActiveX控件在每一台计算机上运行。

· 每一台计算机应该安装一个好的杀毒软件。

·杀毒软件、SpywareBlaster和间谍软件清除程序必须不断更新新的恶意软件的定义。

·最后,也许是最重要的,创建一个互联网安全使用行为规范的指南。例如,用户永远不要点击弹出式广告,永远不要打开来源不明的电子邮件的附件,一定要阅读要安装的软件中的细则。

Windows2000动态DNS安全考虑


      

                        Windows2000 域名解析是基于动态DNS,动态DNS的实现是基于RFC 2136基础上的。在Windows 2000下,动态DNS是与DHCP、WINS及活动目录(AD)集成在一起的。在Windows 2000的域下有三种实现DNS的方法:与活动目录集成、与活动目录集成的主DNS及不与活动目录集成的辅助DNS、不与活动目录集成的主DNS及不与活动目录集成的辅助DNS。当DNS完成集成到活动目录中后,我们可以利用Windows2000网络中的三个重要安全特性:安全动态更新、安全区域传输、对区域和资源记录的访问控制列表。

一、安全动态更新

在动态DNS(DDNS)中一个最重要的安全特性就是安全更新。在实现安全更新时一个主要的考虑是DNS项组成的记录的所有权。所有权是由DHCP的配置及对客户端的支持来决定的。

与客户端相关的有两种DNS记录:A记录和PTR记录,A记录解析名字到地址,而PTR记录解析地址到名字。地址是指一个客户端的IP地址,名字是指一个客户的完全合格域名,应该是计算机名加上网络的域名。

在Windows 2000环境中,当客户端通过DHCP请求一个IP时,客户端DNS记录就被注册。根据设置,客户端、DHCP服务器或者两者都可以更新客户的A记录和PTR记录,谁注册了这个记录,谁就对记录拥有所有权。

下面是在Windows2000网络中定义客户的A记录和PTR记录所有权的可选项。

1.Windows2000本机模式

在Windows2000环境下,DHCP服务器和DHCP客户端都可以通过DNS注册记录。当网络仅由Windows2000的服务器和客户端组成时,这种Windows2000环境被定义为"本机模式"。

当客户端是一个Windows2000客户时,默认配置是当客户在网络上注册时动态更新它自己的A记录,与此同时,DHCP服务器更新客户的PTR记录。因此,A记录的所有权属于客户端,PTR记录的所有权属于DHCP服务器。

第二种可能的配置是DHCP服务器更新正向和反向查找,在这种情况下,DHCP服务器同时拥有A记录和PTR记录的所有。

第三种可能的配置是DHCP服务器被配置为不执行动态更新,在这种情况下,客户端将更新A记录和PTR记录,同时也就拥有记录的所有权。

2.Windows2000混杂模式

在一个混杂模式的环境下,DHCP客户端不能在DNS下注册。所谓混杂模式即网络除Windows2000服务器、客户端外同时存在有WindowsNT4.0或Windows98客户。

先前的客户端,如WindowsNT4.0和Windows9x不能直接通过DNS注册。因为只有DHCP服务器可以通过DNS注册记录,在混杂环境中唯一的选择是让DHCP服务器注册A记录和PTR记录,在这种情况下,服务器拥有正向和反向查找记录的所有权。

3.安全动态更新

在Windows2000网络中,只有当活动目录与DNS区域集成时,安全动态更新才可用。安全动态更新意味着什么呢?在Windows2000中,它意味着用活动目录的ACL制定用户和组的权限来修改DNS区域和/或它的资源记录。为允许更新DNS区域和/或它的资源记录,除ACL外,动态更新也使用安全通道和认证。

Windows2000支持使用IETF草拟的"GSS Algorithm for TSIG "(GSS-TSIG)算法进行安全动态更新。这个算法使用 Kerberos v5 作为优先的认证协议,GSS-API在RFC2078中有定义。

二、区域

1.区域的类型

Windows 2000 可以配置 DNS 区域为主要区域、辅助区域或活动目录集成。

主要和辅助区域的功能与在Unix和NT4.0环境下一样。另外,DNS数据库与其它数据库如WINS和DHCP保持独立,复制是从其它复制服务中独立设置。如果网络中有服务器运行低于

8.1.2的BIND版本,则必须使用主要/辅助区域,因为在早先的版本中不支持动态更新。

如果安装了活动目录,DNS区域可以成为活动目录集成区域。这意味着DNS区域数据库成为活动目录数据库的一部分,每条记录都是活动目录的对象,每个活动目录对象拥有它自己的ACL(访问控制列表)。

2.区域传输或复制的类型

Windows 2000下的DNS可以支持 AXFR 或 IXFR。AXFR或所有的区域传输,是整个区域数据库文件的复制。IXFR或增量区域传输,仅仅复制区域数据库的变化。如果区域类型设置为主要/辅助区域,那么可以应用这些区域复制方法。IXFR支持在BIND 8.2.1及以上版本。

当 DNS与活动目录集成时,所有的区域和资源记录将成为活动目录数据库中的对象。活动目录的复制是基于多主机模型。

多主机模型的好处之一是没有单点失败的问题。这是可能的,因为DNS是活动目录数据库的一部分,而活动目录数据库被复制到所有的域控制器。

多主机模型的第二个好处是仅需要设置一个复制拓扑。DNS区域数据库变成活动目录数据的一部分,因此DNS区域传输作为活动目录复制的一部分完成。

3.区域传输的安全

如果Windows 2000的DNS配置为主要/辅助区域,是不能使用加密和压缩的。为了与BIND兼容,Windows 2000支持AXFR,每个消息发送/接受一个或多个资源记录。在BIND4.9.4以前的版本不支持多条资源记录由一个消息传输。为与BIND8.2.1版本兼容Windows2000支持IXFR,为与BIND8.1.2版本兼容Windows 2000 支持DNS通告。

当Windows 2000的DNS配置为与活动目录集成时,复制进程成为活动目录复制的一部分,因此它自动使用加密和压缩。

在Windows 2000下使用Kerberos v5进行加密。控制器之间的通信通道自动加密,不需要管理员配置。

当活动目录更新在"桥头"服务器间传输时,自动进行压缩。桥头服务器是在本地局域网服务器自动选择产生的,当活动目录使用广域网链路进行更新时,每个局域网的桥头服务器会与其它桥头服务器通信,这将大大减少通过 WAN 链路的流量。在这种情况下,为了节省带宽会自动压缩。

三、活动目录集成DNS 区域

在 Windows 2000下活动目录与DDNS集成,因此实现活动目录安全第一步是实现 DDNS的安全。

1.文件系统

使用NTFS。Windows 2000 的版本是 NTFS v5,此版本允许设置文件和文件夹的安全、加密文件系统和审核。NTFS v5 不与先

前的NTFS兼容。在安装了Service Pack 4 或更高版本的NT4.0上只能读取NTFS v5。

NTFS通过设置文件夹和文件级别访问权限来限制网络或本地对文件的访问。

NTFS和共享权限可以被用来非常精确的控制权限和继承关系。

2.注册表

使用注册表编辑器编辑DACL关系到每一个注册表的配置单元。细节问题可以参考SANS出版的"Windows NT Security, Step-by-Step"。

3.Enterprise管理员和Schema管理员组

在Windows2000网络建立之后,限制访问这两个管理员组。这些组出现在根域下并且有最高的权限。根据域的结构,管理可以被委派到域结构,因此管理可以被限制到单个域。

4.加密文件系统

Windows2000的NTFS提供了使用加密文件系统的选择。EFS使用基于公共密钥的技术来进一步限制文件的未授权访问。

5.活动目录中的DNS

DNS的安装将扩展活动目录的架构,包含了DNSUpdateProxy组。这是一个非常强大的组,它允许创建对象,这是不安全的,当这种情况发生时,任何授权用户可以获得这些对象的所有权。

DNS中客户端的A记录和PTR记录会在DHCP处理进程中进行更新,这在上面有详细地叙述。当客户和服务器都是Windows2000时,安全动态更新可以通过默认安装来完成,当有其它的用户需要支持时,安全动态更新不能完成,除非DHCP服务器被加入到了DNSUpdateProxy组,加入DNSUpdateProxy组后,允许DHCP服务器为早期的客户端执行动态更新。

如果DHCP服务运行在一个域控制器时,需要特别考虑的是,添加DHCP服务器到DNSUpdateProxy组,将允许所有用户或计算机完全控制相应域控制器的DNS记录。

6.资源记录的所有权

DHCP服务器不能在早期的客户端上执行安全动态更新,这在Windows2000网络中是非常重要的。如果这种情况发生,会出现不能完全更新活动记录的情况。例如,一个NT4.0的客户端通过DHCP服务器在DNS中注册了一个名字,当这台机器被升级到Windows2000时,这个名字保持不变。DHCP服务器因其最先注册了这个名字而拥有这个名字的资源记录所有权,所以Windows 2000客户不能更新它自己的名字。

7.WINS查找

作为Windows2000最终的告诫,我将翻译说明为什么WINS将是Windows 2000网络中最可能需要的部分。为什么呢?对所有非Windows2000客户,NetBios解析仍是必需的。同样,所有需要NetBios的程序也将需要WINS来做名字解析。WINS通过两个特定的资源记录直接集成到了DNS中:WINS和WINS-R。这分别为WINS做正向和反向记录查找。

四、结论

总之,理解Windows2000使用DNS的过程是非常重要的。在文章的1.0部分"安全动态更新"和2.0部分"区域"中有了一个简述。理解Windows2000的"gotchas"和"caveats"也是非常重要的。3.0部分活动目录集成DNS区域列举了相关的项目。

小技巧保护(IIS)Web服务器


      通常地,大多数Web站点的设计目标都是:以最易接受的方式,为访问者提供即时的信息访问。在过去的几年中,越来越多的黑客、病毒和蠕虫带来的安全问题严重影响了网站的可访问性,尽管Apache服务器也常常是攻击者的目标,然而微软的Internet信息服务(IIS) Web服务器才是真正意义上的众矢之的。
高级教育机构往往无法在构建充满活力、界面友好的网站还是构建高安全性的网站之间找到平衡点。另外,它们现在必须致力于提高网站安全性以面对缩减中的技术预算 (其实许多它们的私有部门也面临着相似的局面)。
正因为如此,我在这里将为预算而头疼的大学IT经理们提供一些技巧,以帮助他们保护他们的IIS服务器。虽然主要是面对大学里的IT专业人员的,但是这些技巧也基本上适用于希望通过少量的财政预算来提高安全性的IIS管理人员。实际上,这里面的一些技巧对拥有强大预算的IIS管理人员也是非常有用的。
首先,开发一套安全策略
保护Web服务器的第一步是确保网络管理员清楚安全策略中的每一项制度。如果公司高层没有把服务器的安全看作是必须被保护的资产,那么保护工作是完全没有意义的。这项工作需要长期的努力。如果预算不支持或者它不是长期IT战略的一部分,那么花费大量时间保护服务器安全的管理员将得不到管理层方面的重要支持。
网络管理员为各方面资源建立安全性的直接结果是什么呢?一些特别喜欢冒险的用户将会被关在门外。那些用户随后会抱怨公司的管理层,管理层人员又会去质问网络管理员究竟发生了什么。那么,网络管理员没办法建立支持他们安全工作的文档,因此,冲突发生了。
通过标注Web服务器安全级别以及可用性的安全策略,网络管理员将能够从容地在不同的操作系统上部署各种软件工具。
IIS安全技巧
微软的产品一向是众矢之的,因此IIS服务器特别容易成为攻击者的靶子。搞清楚了这一点后,网络管理员必须准备执行大量的安全措施。我将要为你们提供的是一个清单,服务器操作员也许会发现这是非常有用的。
1. 保持Windows升级:
你必须在第一时间及时地更新所有的升级,并为系统打好一切补丁。考虑将所有的更新下载到你网络上的一个专用的服务器上,并在该机器上以Web的形式将文件发布出来。通过这些工作,你可以防止你的Web服务器接受直接的Internet访问。
2. 使用IIS防范工具:
这个工具有许多实用的优点,然而,请慎重的使用这个工具。如果你的Web服务器和其他服务器相互作用,请首先测试一下防范工具,以确定它已经被正确的配置,保证其不会影响Web服务器与其他服务器之间的通讯。
3. 移除缺省的Web站点:
很多攻击者瞄准inetpub这个文件夹,并在里面放置一些偷袭工具,从而造成服务器的瘫痪。防止这种攻击最简单的方法就是在IIS里将缺省的站点禁用。然后,因为网虫们都是通过IP地址访问你的网站的 (他们一天可能要访问成千上万个IP地址),他们的请求可能遇到麻烦。将你真实的Web站点指向一个背部分区的文件夹,且必须包含安全的NTFS权限 (将在后面NTFS的部分详细阐述)。
4. 如果你并不需要FTP和SMTP服务,请卸载它们:
进入计算机的最简单途径就是通过FTP访问。FTP本身就是被设计满足简单读/写访问的,如果你执行身份认证,你会发现你的用户名和密码都是通过明文的形式在网络上传播的。SMTP是另一种允许到文件夹的写权限的服务。通过禁用这两项服务,你能避免更多的黑客攻击。
5. 有规则地检查你的管理员组和服务:
有一天我进入我们的教室,发现在管理员组里多了一个用户。这意味着这时某个人已经成功地进入了你的系统,他或她可能冷不丁地将炸弹扔到你的系统里,这将会突然摧毁你的整个系统,或者占用大量的带宽以便黑客使用。黑客同样趋向于留下一个帮助服务,一旦这发生了,采取任何措施可能都太晚了,你只能重新格式化你的磁盘,从备份服务器恢复你每天备份的文件。因此,检查IIS服务器上的服务列表并保持尽量少的服务必须成为你每天的任务。你应该记住哪个服务应该存在,哪个服务不应该存在。Windows 2000 Resource Kit带给我们一个有用的程序,叫作tlist.exe,它能列出每种情况运行在svchost 之下的服务。运行这个程序可以寻找到一些你想要知道的隐藏服务。给你一个提示:任何含有daemon几个字的服务可能不是Windows本身包含的服务,都不应该存在于IIS服务器上。想要得到Windows服务的列表并知道它们各自有什么作用,请点击这里。
6. 严格控制服务器的写访问权限:
这听起来很容易,然而,在大学校园里,一个Web服务器实际上是有很多"作者"的。教职人员都希望让他们的课堂信息能被远程学生访问。职员们则希望与其他的职员共享他们的工作信息。服务器上的文件夹可能出现极其危险的访问权限。将这些信息共享或是传播出去的一个途径是安装第2个服务器以提供专门的共享和存储目的,然后配置你的Web服务器来指向共享服务器。这个步骤能让网络管理员将Web服务器本身的写权限仅仅限制给管理员组。
7. 设置复杂的密码:
我最近进入到教室,从事件察看器里发现了很多可能的黑客。他或她进入了实验室的域结构足够深,以至于能够对任何用户运行密码破解工具。如果有用户使用弱密码 (例如"password"或是 changeme"或者任何字典单词),那么黑客能快速并简单的入侵这些用户的账号。
8. 减少/排除Web服务器上的共享:
如果网络管理员是唯一拥有Web服务器写权限的人,就没有理由让任何共享存在。共享是对黑客最大的诱惑。此外,通过运行一个简单的循环批处理文件,黑客能够察看一个IP地址列表,利用\\命令寻找Everyone/完全控制权限的共享。
9. 禁用TCP/IP协议中的NetBIOS:
这是残忍的。很多用户希望通过UNC路径名访问Web服务器。随着NETBIOS被禁用,他们便不能这么做了。另一方面,随着NETBIOS被禁用,黑客就不能看到你局域网上的资源了。这是一把双刃剑,如果网络管理员部署了这个工具,下一步便是如何教育Web用户如何在NETBIOS失效的情况下发布信息。
10. 使用TCP端口阻塞:
这是另一个残忍的工具。如果你熟悉每个通过合法原因访问你服务器的TCP端口,那么你可以进入你网络接口卡的属性选项卡,选择绑定的TCP/IP协议,阻塞所有你不需要的端口。你必须小心的使用这一工具,因为你并不希望将自己锁在Web服务器之外,特别是在当你需要远程登陆服务器的情况下。要得到TCP端口的详细细节,点击这里。
11. 仔细检查*.bat和*.exe 文件:
每周搜索一次*.bat和*.exe文件,检查服务器上是否存在黑客最喜欢,而对你来说将是一场恶梦的可执行文件。在这些破坏性的文件中,也许有一些是*.reg文件。如果你右击并选择编辑,你可以发现黑客已经制造并能让他们能进入你系统的注册表文件。你可以删除这些没任何意义但却会给入侵者带来便利的主键。
12. 管理IIS目录安全:
IIS目录安全允许你拒绝特定的IP地址、子网甚至是域名。作为选择,我选择了一个被称作WhosOn的软件,它让我能够了解哪些IP地址正在试图访问服务器上的特定文件。WhosOn列出了一系列的异常。如果你发现一个家伙正在试图访问你的cmd.exe,你可以选择拒绝这个用户访问Web服务器。当然,在一个繁忙的Web站点,这可能需要一个全职的员工!然而,在内部网,这真的是一个非常有用的工具。你可以对所有局域网内部用户提供资源,也可以对特定的用户提供。
13. 使用NTFS安全:
缺省地,你的NTFS驱动器使用的是EVERYONE/完全控制权限,除非你手工关掉它们。关键是不要把自己锁定在外,不同的人需要不同的权限,管理员需要完全控制,后台管理账户也需要完全控制,系统和服务各自需要一种级别的访问权限,取决于不同的文件。最重要的文件夹是System32,这个文件夹的访问权限越小越好。在
Web服务器上使用NTFS权限能帮助你保护重要的文件和应用程序。
14.管理用户账户:
如果你已经安装IIS,你可能产生了一个TSInternetUser账户。除非你真正需要这个账户,否则你应该禁用它。这个用户很容易被渗透,是黑客们的显著目标。为了帮助管理用户账户,确定你的本地安全策略没有问题。IUSR用户的权限也应该尽可能的小。
15. 审计你的Web服务器:
审计对你计算机的性能有着较大的影响,因此如果你不经常察看的话,还是不要做审计了。如果你真的能用到它,请审计系统事件并在你需要的时候加入审计工具。如果你正在使用前面提到的WhosOn工具,审计就不那么重要了。缺省地,IIS总是纪录访问, WhosOn 会将这些纪录放置在一个非常容易易读的数据库中,你可以通过Access或是 Excel打开它。如果你经常察看异常数据库,你能在任何时候找到服务器的脆弱点。
总结
上述所有IIS技巧和工具(除了WhosOn以外)都是Windows自带的。不要忘记在测试你网站可达性之前一个一个的使用这些技巧和工具。如果它们一起被部署,结果可能让你损失惨重,你可能需要重启,从而遗失访问。
最后的技巧: 登陆你的Web服务器并在命令行下运行netstat -an。观察有多少IP地址正尝试和你的端口建立连接,然后你将有一大堆的调查和研究要做了。

机房安全 小心Windows2000权限叠加


      

                        我校同其他十几所中小学一起装配了NC教室。NC教室的主要配置为:清华同方超强TR200 2680服务器(Windows 2000 Server操作系统)、港湾快速以太网交换机、京东方网络计算机(国产方舟2号400MHz CPU)。在装配时,京东方及北控软件公司的工程师们为我们的系统进行了安全设置:屏蔽了开始菜单中的运行、搜索、控制面板等功能,并隐藏了各个磁盘的盘符。这样一来,我们就不用担心学生有意、无意删改系统文件而造成系统瘫痪,机房管理也变得更加方便。

但是经过一段时间的使用,笔者发现机房中还存在一个安全隐患。当打开“育典网络教学系统”的浏览器时,在“工具菜单”下选择“Internet选项”,在“常规”选项卡下找到“Internet临时文件”并选择“设置→查看对象”,竟然可以可以一级一级向上访问到C盘或其他任意磁盘驱动器。这显然是机房中的一个重大安全隐患。既然找到了这个后门,我们就赶快像微软一样打补丁吧。方法非常简单,以管理员的身份登录到Windows 2000 Server,打开“我的电脑”,鼠标右键单击C盘,选择“共享”,在新窗口中选择“安全菜单”,可以看到在“名称”下面列出了用户和组信息。选择之前建立的Student组,在权限设置中将该组设置为“读取”(或一项权限也不设置),这样Student组的成员就无法访问C盘,更不要说删改磁盘中的文件了。当学生想通过上面的方法访问磁盘时,会弹出对话框警告其无权访问。最后别忘了对其他磁盘也进行相应设置。

最后要说明的一点是,如果在您的机房中学生所属的组不只是Student组,还属于User组或其他组的话,一定要把这些组的权限也进行如上设置才行,因为在Windows 2000中用户所拥有的权限是叠加的。

安全虚拟主机配置


      

                        注入漏洞、上传漏洞、弱口令漏洞等问题随处可见。跨站攻击,远程控制等等是再老套不过了的话题。有些虚拟主机管理员不知是为了方便还是不熟悉配置,干脆就将所有的网站都放在同一个目录中,然后将上级目录设置为站点根目录。有些呢,则将所有的站点的目录都设置为可执行、可写入、可修改。有些则为了方便,在服务器上挂起了QQ,也装上了BT。更有甚者,竟然把Internet来宾帐号加入到Administrators组中!汗……!普通的用户将自己的密码设置为生日之类的6位纯数字,这种情况还可以原谅,毕竟他们大部分都不是专门搞网络研究的,中国国民的安全意识提高还需要一段时间嘛,但如果是网络管理员也这样,那就怎么也有点让人想不通了。网络安全问题日益突出,最近不又有人声称“万网:我进来玩过两次了!”。这么有名气的网络服务商,也难免一逃啊!网站注入漏洞是最近还频频在报刊杂志上曝光的高校入侵……一句话,目前很大部分的网站安全状况让人担忧!

这里就我个人过去的经历和大家一同来探讨有关安全虚拟主机配置的问题。以下以建立一个站点cert.ecjtu.jx.cn为例,跟大家共同探讨虚拟主机配置问题。

一、建立Windows用户



为每个网站单独设置windows用户帐号cert,删除帐号的User组,将cert加入Guest用户组。将用户不能更改密码,密码永不过期两个选项选上。

二、设置文件夹权限

1、设置非站点相关目录权限

Windows安装好后,很多目录和文件默认是everyone可以浏览、查看、运行甚至是可以修改 的。这给服务器安全带来极大的隐患。这里就我个人的一些经验提一些在入侵中较常用的目录。











C:\;D:\;……

C:\perl

C:\temp\

C:\Mysql\

c:\php\

C:\autorun.inf

C:\Documents and setting\

C:\Documents and Settings\All Users\「开始」菜单\程序\

C:\Documents and Settings\All Users\「开始」菜单\程序\启动

C:\Documents and Settings\All Users\Documents\

C:\Documents and Settings\All Users\Application Data\Symantec\

C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere

C:\WINNT\system32\config\

C:\winnt\system32\inetsrv\data\

C:\WINDOWS\system32\inetsrv\data\

C:\Program Files\

C:\Program Files\Serv-U\

c:\Program Files\KV2004\

c:\Program Files\Rising\RAV

C:\Program Files\RealServer\

C:\Program Files\Microsoft SQL server\

C:\Program Files\Java Web Start\

以上这些目录或文件的权限应该作适当的限制。如取消Guests用户的查看、修改和执行等权限。由于篇幅关系,这里仅简单提及。

2、设置站点相关目录权限:

A、设置站点根目录权限:将刚刚建立的用户cert给对应站点文件夹,假设为D:\cert设置相应的权限:Adiministrators组为完全控制;cert有读取及运行、列出文件夹目录、读取,取消其它所有权限。

B、设置可更新文件权限:经过第1步站点根目录文件夹权限的设置后,Guest用户已经没有修改站点文件夹中任何内容的权限了。这显然对于一个有更新的站点是不够的。这时就需要对单独的需更新的文件进行权限设置。当然这个可能对虚拟主机提供商来说有些不方便。客户的站点的需更新的文件内容之类的可能都不一样。这时,可以规定某个文件夹可写、可改。如有些虚拟主机提供商就规定,站点根目录中uploads为web可上传文件夹,data或者database为数据库文件夹。这样虚拟主机服务商就可以为客户定制这两个文件夹的权限。当然也可以像有些做的比较好的虚拟主机提供商一样,给客户做一个程序,让客户自己设定。可能要做到这样,服务商又得花不小的钱财和人力哦。

三、配置IIS

基本的配置应该大家都会,这里就提几个特殊之处或需要注意的地方。

1、主目录权限设置:这里可以设置读取就行了。写入、目录浏览等都可以不要,最关键的就是目录浏览了。除非特殊情况,否则应该关闭,不然将会暴露很多重要的信息。这将为黑客入侵带来方便。其余保留默认就可以了。

2、应用程序配置:在站点属性中,主目录这一项中还有一个配置选项,点击进入。在应用程序映射选项中可以看到,默认有许多应用程序映射。将需要的保留,不需要的全部都删除。在入侵过程中,很多程序可能限制了asp,php等文件上传,但并不对cer,asa等文件进行限制,如果未将对应的应用程序映射删除,则可以将asp的后缀名改为cer或者asa后进行上传,木马将可以正常被解析。这也往往被管理员忽视。另外添加一个应用程序扩展名映射,可执行文件可以任意选择,后缀名为.mdb。这是为了防止后缀名为mdb的用户数据库被下载。

3、目录安全性设置:在站点属性中选择目录安全性,点击匿名访问和验证控制,选择允许匿名访问,点击编辑。如下图所示。删除默认用户,浏览选择对应于前面为cert网站设定的用户,并输入密码。可以选中允许IIS控制密码。这样设定的目的是为了防止一些像站长助手、海洋等木马的跨目录跨站点浏览,可以有效阻止这类的跨目录跨站入侵。

4、可写目录执行权限设置:关闭所有可写目录的执行权限。由于程序方面的漏洞,目前非常流行上传一些网页木马,绝大部分都是用web进行上传的。由于不可写的目录木马不能进行上传,如果关闭了可写目录的执行权限,那么上传的木马将不能正常运行。可以有效防止这类形式web入侵。

5、处理运行错误:这里有两种方法,一是关闭错误回显。IIS属性――主目录――配置――应用程序调试――脚本错误消息,选择发送文本错误信息给客户。二是定制错误页面。在IIS属性――自定义错误信息,在http错误信息中双击需要定制的错误页面,将弹出错误映射属性设置框。消息类型有默认值、URL和文件三种,可以根据情况自行定制。这样一方面可以隐藏一些错误信息,另外一方面也可以使错误显示更加友好。

四、配置FTP

Ftp是绝大部分虚拟主机提供商必备的一项服务。用户的站内文件大部分都是使用ftp进行上传的。目前使用的最多的ftp服务器非Serv-U莫属了。这里有几点需要说明一下。

1、管理员密码必须更改

如果入侵爱好者们肯定对Serv-U提权再熟悉莫过了。这些提权工具使用的就是Serv-U默认的管理员的帐号和密码运行的。因为Serv-U管理员是以超级管理员的身份运行的。如果没有更改管理员密码,这些工具使用起来就再好用不过了。如果更改了密码,那这些工具要想正常运行,那就没那么简单喽。得先破解管理员密码才行。

2、更改安装目录权限

Serv-U的默认安装目录都是everyone可以浏览甚至可以修改的。安装的时候如果选择将用户信息存储在ini文件中,则可以在ServUDaemon.ini得到用户的所有信息。如果Guests有修改权限,那么黑客就可以顺利建立具有超级权限的用户。这可不是一件好事。所以在安装好Serv-U之后,得修改相应的文件夹权限,可以取消Guests用户的相应权限。

五、命令行相关操作处理

1、禁止guests用户执行com.exe:

我们可以通过以下命令取消guests执行com.exe的权限cacls C:\WINNT\system32\Cmd.exe /e /d guests。

2、禁用Wscript.Shell组件:

Wscript.Shell可以调用系统内核运行DOS基本命令。可以通过修改注册表,将此组件改名,来防止此类木马的危害。HKEY_CLASSES_ROOT\Wscript.Shell\ 及HKEY_CLASSES_ROOT\Wscript.Shell.1\改名为其它的名字。将两项clsid的值也改一下HKEY_CLASSES_ROOT\Wscript.Shell\CLSID\项目的值和HKEY_CLASSES_ROOT\Wscript.Shell.1\CLSID\项目的值,也可以将其删除。

3、禁用Shell.Application组件

Shell.Application也可以调用系统内核运行DOS基本命令。可以通过修改注册表,将此组件改名,来防止此类木马的危害。HKEY_CLASSES_ROOT\Shell.Application\ 及HKEY_CLASSES_ROOT\Shell.Application.1\ 改名为其它的名字。将HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值更改或删除。同时,禁止Guest用户使用shell32.dll来防止调用此组件。使用命令:











cacls C:\WINNT\system32\shell32.dll /e /d guests

4、FileSystemObject组件

FileSystemObject可以对文件进行常规操作可以通过修改注册表,将此组件改名,来防止此类木马的危害。对应注册表项为HKEY_CLASSES_ROOT\scripting.FileSystemObject\。可以禁止guests用户使用或直接将其删除。考虑到很多的上传都会使用到这个组件,为了方便,这里不建议更改或删除。

5、禁止telnet登陆

在C:\WINNT\system32目录下有个login.cmd文件,将其用记事本打开,在文件末尾另取一行,加入exit保存。这样用户在登陆telnet时,便会立即自动退出。

注:以上修改注册表操作均需要重新启动WEB服务后才会生效。

六、端口设置

端口窗体底端就是门,这个比喻非常形象。如果我们服务器的所有端口都开放的话,那就意味着黑客有好多门可以进行入侵。所以我个人觉得,关闭未使用的端口是一件重要的事情。在控制面板――网络与拨号连接――本地连接――属性――Internet协议(TCP/IP)属性,点击高级,进入高级TCP/IP设置,选择选项,在可选的设置中选择TCP/IP筛选,启用TCP/IP筛选。添加需要的端口,如21、80等,关闭其余的所有未使用的端口。

七、关闭文件共享

系统默认是启用了文件共享功能的。我们应给予取消。在控制面板――网络和拨号连接――本地连接――属性,在常规选项种,取消Microsoft 网络文件和打印共享。服务最少原则是保障安全的一项重要原则。非必要的服务应该给予关闭。系统服务可以在控制面板――管理工具――服务中进行设定。

八、关闭非必要服务

类似telnet服务、远程注册表操作等服务应给予禁用。同时尽可能安装最少的软件。这可以避免一些由软件漏洞带来的安全问题。有些网管在服务器上安装QQ,利用服务器挂QQ,这种做法是极度错误的。

九、关注安全动态及时更新漏洞补丁

更新漏洞补丁对于一个网络管理员来说是非常重要的。更新补丁,可以进一步保证系统的安全。

黑客探取密码原理及防范


      

                        一、非法获取Password的原理

Edit控件是Windows的一个标准控件,当把其Password属性设为True时,就会将输入的内容屏蔽为星号,从而达到保护的目的。虽然我们看来都是星号,但程序中的Edit控件实际仍是用户输入的密码,应用程序可以获取该控件中的密码,其他应用程序也可以通过向其发送WM_GETTEXT或EM_GETLINE消息来获取Edit控件中的内容。黑客程序正是利用Edit控件的这个特性,当发现当前探测的窗口是Edit控件并且具有ES_PASSWORD属性时,则通过SendMessage向此窗口发送WM_GETTEXT或EM_GETLINE消息,这样Edit框中的内容就一目了然了。

二、黑客软件工作方法

首先要取得当前的窗口,并判断是否是Edit控件,一般多通过鼠标来指定要探测的窗口,例如在WM_MOUSEMOVE消息的响应函数中进行判断,现列举代码片段如下:











  //将客户坐标转换成屏幕坐标

  ClientToScreen(&point);

  //返回一个包含指定屏幕坐标点的窗口

  CWnd* pWnd = CWnd::WindowFromPoint(point);

  if (pWnd)

  {

  //获取窗口句柄

  HWND hwndCurr = pWnd->GetSafeHwnd();

  if ((::GetWindowThreadProcessId (GetSafeHwnd(), NULL)) != (::GetWindowThreadProcessId

(hwndCurr, NULL)))

  {



  char lpClassName[255];

  //获取类名

  if (::GetClassName(hwndCurr, lpClassName, 255))

  {

  //判断是否是Edit控件

  if (0 == m_strWndClass.CompareNoCase("EDIT")

  {

  //获取窗口风格

  LONG lStyle = ::GetWindowLong(hwndCurr, GWL_STYLE);

  //如果设置了ES_PASSWORD属性

  if (lStyle & ES_PASSWORD)

  {

  char szText[255];

  //通过掌握的句柄hwndCurr向此控件发送WM_GETTEXT消息

  ::SendMessage(hwndCurr, WM_GETTEXT, 255, (LPARAM)szText); //密码已保存在szText中

  m_strPassword = szText;

  }

  }

  }

  }

  }上述代码中值得注意的有以下几个关键地方:











ClientToScreen(&point);

CWnd* pWnd = CWnd::WindowFromPoint(point);

HWND hwndCurr = pWnd->GetSafeHwnd();这三句代码可以获取当前鼠标位置所在窗口的窗口句柄,在SendMessage中要用到的。











::SendMessage(hwndCurr, WM_GETTEXT, 255, (LPARAM)szText);这便是真正起作用的SendMessage了,其第一个参数指定了要接收消息的窗口句柄,我们已经通过上面的代码获取到了,第二个参数就是让Edit控件返回字符的WM_GETTEXT消息了,并将得到的内容保存在szText中。

三、防范措施

既然我们搞清除了黑客软件普遍采取的手法,那我们自然能制订出一套防范其攻击的措施来。下面我们就要对Password进行保护。

从以上分析我们可以看出:Edit控件的漏洞主要在于没有对发送WM_GETTEXT或EM_GETLINE消息者的身份进行检查,只要能找到Edit窗口句柄,任何进程都可获取其内容。所以必须要对发送消息者的身份进行验证,这里给出一种方法来验证发送消息者的身份是否合法:

1.创建新CEdit类

从CEdit继承一个子类CPasswordEdit,申明全局变量g_bSenderIdentity表明消息发送者的身份: BOOL g_bSenderIdentity;然后响应CWnd的虚函数DefWindowProc,在这个回调函数中进行身份验证:











  LRESULTCPasswordEdit:efWindowProc (UINTmessage,WPARAMwParam,LPARAMlParam)

  {

  //对Edit的内容获取必须通过以下两个消息之一

  if((message==WM_GETTEXT) ||(message==EM_GETLINE))

  {

  //检查是否为合法

  if(!g_bSenderIdentity)

  {

  //非法获取,显示信息

  AfxMessageBox(_T ("报告:正在试图窃取密码!");

  return 0;

  }

  //合法获取

  g_bSenderIdentity=FALSE;

  }

  return CEdit:efWindowProc (message,wParam,lParam);

  }

2.在数据输入对话框中做些处理

在对话框中申明一个类成员m_edtPassword:











CpasswordEdit m_edtPassword;然后在对话框的OnInitDialog()中加入下列代码:











m_edtPassword.SubclassDlgItem(IDC_EDIT_PASSWORD,this);将控制与新类做关联。

之后要在对话框的数据交换函数中将身份设为合法:











  void CDlgInputDataExchange (CDataExchange*pDX)

  {

  //如果获取数据

  //注意:对于CPropertyPage类这里不需要 if (pDX->m_bSaveAndValidate)条件

  if(pDX->m_bSaveAndValidate)

  {

  g_bSenderIdentity=TRUE;

  }

  CDialogDataExchange(pDX);

  //{{AFX_DATA_MAP(CDlgInput)

  DDX_Text (pDX,IDC_EDIT_PASSWORD,m_sPassword);

  //}}AFX_DATA_MAP

  }

这样,Password输入框就拥有了合法身份,会受到保护。

结论

以上的方法仅针对VC程序,对于其他语言如VB、Delphi等语言,需要借助VC做一个Password的ActiveX控件,实现方法与上述方法基本类似。以上程序均用VisualC++6.0编制调试通过。