※黑客攻防指南※===>黑客入门==>影响Windows系统的最危险的网络安全弱点
影响Windows系统的最危险的网络安全弱点

作者:Scott Lawler

W1--Unicode弱点(遍历Web服务器的文件夹)

W1.1 描述

Unicode对每个字符提供了唯一的编码,无论什麽平台,无论什麽程序,无论什麽语言。Unicode标准已经被包括微软在内的大多数卖主接受了。给IIS服务器发送一条精心构造的包含无效的Unicode UTF-8系列的URL,攻击者能迫使服务器逐步的从一个目录移到另一个目录,并执行任意的脚本。这种攻击方法也称为目录遍历攻击。

Unicode分别把字符‘/’和‘\’表示成‘%2f’和‘%5c’。然而,您用一种称为“超长”序列也可以表示这些字符。超长序列是一种对超过一般字符的解释的无效的Unicode字符的技术上的表示。‘/’和‘\’都可以用一个字节来表示。超长表示法,例如,‘/’可以再表示成两个字节的‘%c0%af’。IIS不会对超长表示法进行安全检查。因此,通过URL传递超长的Unicode序列,可以绕过微软的安全检查。如果一个目录被标记为“可执行的”,则攻击者可以使这个可执行文件在服务器上执行。在下面的网址可以找到关于Unicode危险的另外信息:http://www.wiretrip.net/rfp/p/doc.asp?id=57&face=2

W1.2 影响的系统

Microsoft Windows NT 4.0 + IIS 4.0

Windows 2000 + IIS 5.0 没有安装 Service Pack 2

W1.3 检测方法

如果您在运行没打补丁的IIS版本,那麽您是容易受到攻击的。测定您是否容易受到攻击的最好方法是运行hfnetchk程序。hfnetchk程序是为系统管理员开发的核实在一个网络上的一个或几个系统的补丁的级别。Unicode目录遍历漏洞可以在下列更新文件中确认:

Q269862_MS00_057
Q269862_MS00_078
Q277873_MS00_086
Q293826_MS01_026
Q301625_MS01_044
Windows 2000 Service Pack 2

如果以上任何一个都没安装,则系统是容易受攻击的。

为了得到更详细的确认,在您的系统上亲自试一试。在您的IIS Web 服务器上敲入以下命令:http://victim/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\

在特定的系统上,这个URL可能得修改。如果您已经删除了脚本目录(推荐这样做),这个命令无效。您可以测试一个系统,通过建立一个临时的包含可执行文件的目录,或使用另一个包含可执行文件的目录来代替脚本目录。例如,您或许已经删除了脚本目录,但可能有cgi-bin目录。用cgi-bin目录来测试您的系统。

如果您是容易受攻击的,这个URL送回容易受攻击的服务器的c盘目录的列表。您可以象攻击者那样对您自己的系统做测试。唯一的区别是您发送的是无害的命令(比如dir),而攻击者会作大的毁坏或在您的系统插入后门。

W1.4 解决方法

您必须安装微软的最新版本的补丁。可以从微软安全公告中了解下载这些补丁的信息:http://microsoft.com/technet/
security/bulletin/MS00-078.asp

URL Lockdown 工具和URL扫描都能对这个弱点有所帮助。URL Lockdown 工具能帮助系统管理员锁住IIS服务器,可以从下列地址得到:http://www.microsoft.com/technet/
security/tools/locktool.asp

URL扫描是一个能过滤掉许多HTTP请求的过滤器。例如,它可以过滤掉包含UTF8编码的字符的请求。URL扫描工具可以在下列地址得到:http://microsoft.com/technet/security/URLScan.asp

W2--ISAPI扩展缓冲区溢出

W2.1 描述

由微软Windows NT 和Windows 2000构建的Web服务器中,绝大多数的Web服务软件都是用微软的网络信息服务(IIS)。当IIS安装时,数个ISAPI扩展也自动安装了。ISAPI,即网络服务应用程序接口,允许开发者使用DLL来扩展IIS服务的性能。有几个DLL,例如idq.dll,包含设计上的错误使得做不必要的错误范围检查。实际上,他们不会阻塞不可接受的输入的长字符串。攻击者向这些DLL发送数据,这称为缓冲溢出攻击,然后完全控制IIS Web 服务器。

W2.2 影响的系统

idq.dll缓冲溢出影响 Microsoft Index Server 2.0 和 Windows 2000 中的 Indexing Service。

.printer缓冲溢出影响 Windows 2000 Server、Advanced Server、Server Data Center Edition + IIS 5.0。这些危险的DLL还可以影响Windows 2000 Professional,但默认的情况下不适用。作为可预防的事件,您可以查看组策略,如果可能,使工作站的基于Web的打印机不可用(Computer Configuration:Administrative Templates:Printers)。

W2.3 检测方法

如果您的Web服务器没有安装版本至少为Service Pack 2的话,您是容易受到攻击的。如果您对已安装的补丁的版本不是很确定,从下列地址下载并运行hfnetchk程序:http://www.microsoft.com/technet/
treeview/default.asp?url=/technet/
security/tools/hfnetchk.asp

下列的补丁修理了.printer缓冲溢出:

Q296576-MS01-023
Q300972-MS01-033
Q301625-MS01-044
Windows 2000 SP2
Q299444--The Windows NT 4.0 Security Roll-up Package

下列的补丁修理了.printer缓冲溢出:

Q300972-MS01-033
Q301625-MS01-044
Windows NT 4.0 Security Roll-up Package

W2.4 解决方法

安装微软的最新补丁。

Windows NT 4.0: http://www.microsoft.com/ntserver/nts/
downloads/critical/q299444/default.asp
Windows 2000 Professional,Server和Advanced Server: http://www.microsoft.com/technet/
security/bulletin/MS01-044.asp
Windows 2000 Datacenter Server: 为特制的硬件,可以从原设备制造商得到。

Windows XP: 不影响。

此外,对不需要的ISAPI扩展,系统管理员应该找到并使之无效。经常做检查,以防止这些扩展有效。

牢记最少特权原则,您的系统应该只运行充分发挥功能的最少服务。

URL Lockdown 工具和URL扫描都能对这个弱点有所帮助。URL Lockdown 工具能帮助系统管理员锁住IIS服务器,可以从下列地址得到:http://www.microsoft.com/technet/security/
tools/locktool.asp

URL扫描是一个能过滤掉许多HTTP请求的过滤器。例如,它可以过滤掉包含UTF8编码的字符的请求。URL扫描工具可以在下列地址得到:http://microsoft.com/technet/security/URLScan.asp

W3--IIS RDS 的使用(微软的远端数据服务)

W3.1 描述

IIS是构建于Microsoft Windows NT 4.0 的Web服务器上的Web服务软件。恶意的用户利用远端数据服务的设计漏洞来运行拥有系统管理员特权的远端命令。

W3.2 影响的系统

Microsoft Windows NT 4.0 + IIS

有/msadc虚拟目录的最容易受到攻击。

W3.3 检测方法

如果您没有打补丁,则您是容易受到攻击的。

一个对RDS弱点和怎样纠正它的很好的建议可以在下列地址找到: http://www.wiretrip.net/rfp/p/doc.asp?id=2&iface=2

W3.4 解决方法

这个弱点不能由一个补丁解决。为了解决这个问题,遵循在下列公告列出的指导:

http://support.microsoft.com/support/
kb/articles/q184/3/75.asp
http://www.microsoft.com/technet/
security/bulletin/ms98-004.asp
http://www.microsoft.com/technet/
security/bulletin/ms99-025.asp

作为解决这个问题的另一个方法,您可以把MDAC升级到2.1以上。最近的MDAC版本可以在下列地址找到: http://www.microsoft.com/data/download.htm

W4--NETBIOS-没保护的Windows网络共享

W4.1 描述

服务器的讯息阻塞(SMB)协议,既公共网络文件系统(CIFS),使文件在网络上能够共享。如果配置不正确,能危急系统文件,或使连在因特网上的敌对方有操作文件系统的全部权力。许多计算机使用者不知道,为了改善合作者和网站外部的探索者的效率,当他把他的驱动盘对网络使用者标记为可读的和可写的时,他们已经对攻击者开放了系统。政府部门的网站的管理员习惯于,为了软件任务的计划的发展,把他们的文件世界标记为可读的,以让别的部门的人能容易地访问。结果,不到两天,攻击者发现了共享的文件并窃取了正在计划中的软件。

在Windows机器上使文件共享,方便了信息的窃取和几种病毒的快速传播。Macintosh和Unix也会遇到同样的问题。

使Windows文件共享的SMB机制同样也能让攻击者获得Windows系统的敏感文件信息。用户和组信息(用户名、最后登录日期、密码政策、RAS信息)、系统信息和特定的注册码,能通过对NetBIOS会议服务的“空会议”得到。这些信息对黑客是很有用的,因为这可以帮助他们猜测或强力破解密码。

W4.2 影响的系统

Microsoft Windows NT

Microsoft Windows 2000

W4.3 检测方法

一个对SMB文件共享是否存在和相应的弱点作快速、免费和安全的测试、对所有Windows操作系统都有效的软件能在Gibson Research Corporation网站(http://grc.com)得到。单击“ShieldsUP”图标来接收针对任何系统的SMB的方向的实时评估。详细的指导能帮助微软Windows使用者处理SMB弱点。注意,当您连接上网络,这个网络中有些中间设备能阻塞SMB,则ShieldsUP工具会报告您不容易受到攻击,而实际上,您是容易受到攻击的。例如,用户通过cable调制解调器上网,供应者已经阻塞了SMB进入cable调制解调器网络。ShieldsUP报告您不易受攻击。但是,连在您的cable调制解调器依然受到这个弱点的威胁。

Microsoft Personal Security Advisor,能报告您是否处于SMB弱点的威胁中,也能解决上面所提的问题。由于它在本地运行,它的结果总是可靠的。它能在下列地址得到:http://www.microsoft.com/technet/security/
tools/mpsa.asp

W4.4 解决方法

采取下列步骤来防御不受保护的共享:

1、当共享数据时,只共享相应的目录。
2、为了增加安全性,只对特定的IP地址共享,因为DNS姓名可以哄骗。
3、对Windows系统(NT和2000),使用文件系统许可制度,只让需要使用的人访问共享的目录。
4、对Windows系统,阻止通过使用“空协议”连接来列举匿名的用户、组、系统配置和注册码等信息。更多信息请看W5。
5、阻塞对路由器或主机的NetBIOS协议服务(tcp 139)和微软 CIFS(tcp/udp 445)的连接。
6、考虑到对独立的连接到因特网的主机或不信赖的域环境的RestrictAnonymous注册码的情况。更多信息请看下列网页:
Windows NT 4.0: http://support.microsoft.com/support/
kb/articles/Q143/4/74.asp
Windows 2000: http://support.microsoft.com/support/
db/articles/Q246/2/61.asp

W5--空协议连接产生的信息泄漏

W5.1 描述

空协议连接,既匿名登录,是一种允许匿名用户通过网络获取信息(象用户名和权限)或登录不需要证明的机制。它被应用程序(比如explore.exe)用来确认远端服务器的权限。在Windows NT和Windows 2000中,许多本地服务是在SYSTEM帐号下运行的,在Windows 2000中称为LocalSystem。这种系统帐号能被用于几种系统操作。当一台机器需要发送系统数据给另一台机器时,系统帐号就与那台机器建立一个空协议连接。

系统帐号拥有事实上的无限特权并且没有密码,所以您不能用系统帐登录。有时需要利用系统帐号来和另外的机器传递信息,例如可用的共享、用户名等网络邻居类的功能。由于系统帐号不能用用户名和密码来登录进另一个系统,所以它用空连接来获得访问权。不幸的是,攻击者也能用空连接登录。

W5.2 影响的系统

Windows NT 4.0和Windows 2000。

W5.3 检测方法

试图用空协议连接来连接您的系统,使用下列命令:

net use \\a.b.c.d\ipc$"" /user:""
(a.b.c.d为远端系统的IP地址。)

如果您收到的消息为“连接失败”,则您的系统是安全的。如果没有返回消息,这意味着命令成功了,则您的系统是容易受到攻击的。

“Hunt for NT”工具也是有用的。它是NT Forensic Toolkit的一个组件,可以访问以下地址: href="http://www.foundstone.com/">http://www.foundstone.com/。

W5.4 解决方法

域控制器需要空协议连接来通信。因此,如果您工作在域环境下,您虽然可以使攻击者能得到的信息最少,但不能阻止所有的泄漏。为了限制攻击者能获得的信息,在Windows NT 4.0中修改下列注册表值:
HKLM/System/CurrentControlSet/Control/LSA/RestrictAnonymous=1

把RestrictAnonymous设为1依然一些信息对匿名用户可用。在Windows 2000中把这个值设为2。当他们或个人组的成员(包括空连接用户)的访问没有许可时,禁止匿名用户获得信息。

当您修改注册表时,可能会使您的系统不能充分的发挥功能。所以在改动前要做测试。而且,系统应该备份,这样,当需要时,系统能够简单的恢复。如果您不需要文件和打印共享,从TCP/IP协议中去掉NetBIOS协议。

注意,在域控制器中配置RestrictAnonymous和一些特定的服务能禁止许多基本的网络操作。所以,专家建议,只配置那些能被因特网访问到的机器。其它的机器都应该由配置了阻塞NetBIOS和CIFS的防火墙保护。

应该不让任何因特网用户访问内部域控制器或其它不是配置为让外部访问的机器。为了阻止这样的访问,阻塞外部路由器或防火墙的下列端口:

TCP和UDP的135至139和445

W6--SAM的散列(LM散列)

W6.1 描述

虽然绝大多数Windows用户都不需要LAN管理器支持,Windows NT和Windows 2000系统还是默认存储了LAN管理器的密码的散列。因为LAN管理器使用一个弱的口令方案,它比多数的现有的微软的方案弱,所以,可以在很短的时间内,破解LAN管理器的密码。甚至连强大的密码散列都能在一个月内破解。LAN管理器散列的主要弱点表现在以下几个方面:

密码被限制在14个字节内
用空格将密码补齐至14个字节
密码全部转换成大写
密码被分割成两个7个字节的段

这些意味着,密码破解程序只须破解两个都是大写的7个字节的密码。另外,LAN管理器偷听密码散列。偷听给攻击者提供了用户密码。

W6.2 影响的系统

Windows NT和Windows 2000系统

W6.3 检测方法

如果您运行的是默认安装的NT或2000,则您是危险的,因为LAN管理器散列在默认情况下产生了。您可以(您拥有您老板的许可书)在您的系统上试一试简单的密码破解程序,例如LC3(IOphtcrack version 3),它可以在下列地址得到:
http://www.atstake,com/research/lc3/download.html

W6.4 解决方法

有两种方法可以防御LM散列被破解密码。第一种方法在网络上是LAN管理器鉴定无效并使用NTLMv2。NTLMv2(NT LanManager version 2),使用了强大的加密算法和加强了认证和会议安全机制,从而弥补了LAN管理器(LM)的大部分弱点。

有了Windows NT 4.0 SP4和更新的系统后,包括Windows 2000,微软使在您的网络上只用NTLMv2成为可能。在Windows NT和Windows 2000中,控制这项功能的注册表键为 HKLM\System\CurrentControlSet\Control\LSA\LMCompatibilityLevel。如果您把它设为3,工作站或服务器只使用NTLMv2信任书来作鉴定。如果您把它设为5,所有的域服务器都会拒绝LM和NTLM鉴定,只接受NTLMv2。

如果在您的网络中有老的操作系统,比如Windows 95,则您得小心。老的操作系统不使用带微软网络客户端的NTLMv2。在Windows 9x中,相应的注册表键为 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\LMCompatibility,可用的值为0或3(有目录服务客户端时)。好的解决办法为卸载这些老的操作系统,它不会让您提供组织要求的最底安全要求。

微软的网络科技文章,“How to Disable LM Authertication on Windows NT [Q147706]”,详细列举了Windows 9x和Windows NT/2000的注册表的修改情况。“LMCompatibilityLevel and Its Effects [Q175641]”说明了这些参数的互动结果。另一篇很有用的文章为“How to Enable NTLMv2 Authentication for Windows 95/98/2000/NT [Q239869]”。它说明了使用Windows 2000的目录服务客户段来解决Windows 95/98的NTLMv2兼容性问题。

在网络上,单单删除LanMan散列并不能解决问题,因为散列依然会产生并存储在SAM或活动目录中。最近,微软提供了完全解决关闭产生LanMan散列的新的机制。对Windows 2000系统,查找注册表键:
HKEY_LOCAL_MECHINE\SYSTEM\currentControlSet\Control\Lsa。在RegEdt32或RegEdit的编辑菜单中,单击Add Key--然后增加一个名为NoLMHash的键。然后,退出注册表编辑器并重起机器。在这以后,当用户更改密码时,计算机不会再产生LanMan散列。如果在Windows 2000域控制器里增加了这个键,则LanMan散列不会再产生并存储在活动目录中。

对于Windows XP,建立如下的注册表值也能实现同样的功能:

Hive:HKEY_LOCAL_MACHINE
Key:System\CurrentControlSet\Control\Lsa
value:REG_DWORD
Data:1

更多信息,请查阅微软基础知识文章[Q299656]: http://support.microsoft.com/support/
kb/articles/q299/6/56.asp

主目录 分目录

Copyright By「黑白网络工作室」2002 All Rights Reserve