Total Pageviews

Monday, 7 May 2012

黑客对NT系统的四种常用攻击手段以及如何防止这类攻击


Microsoft IIS ism.dll缓冲区溢出
受影响的服务器:运行IIS 4.0并带有“Service Pack 3/4/5”的Windows NT服务器

  Microsoft IIS缓冲区溢出这一安全弱点是Web服务器无时不有的重大缺陷之一。该弱点被称为IIS eEye,这个名称来自发现此问题的一个小组。在实施缓冲区溢出攻击时,黑客向目标程序或服务输入超出程序处理能力的数据,导致程序突然终止。另外,还可 以通过设置,在执行中的程序终止运行前,用输入的内容来覆盖此程序的某些部分,这样就可以在服务器的安全权限环境下执行任意黑客命令。

  eEye发现,IIS用来解释HTR文件的解释程序是ism.dll,它对缓冲区溢出攻击的抵抗力十分脆弱。如果攻击者将一个以.htr结尾的超长文 件名(大约3,000个字符,或更多)传递给IIS,那么输入值将在ism.dll中造成输入缓冲区溢出,并导致IIS崩溃。如果攻击者输入的不是一串字 母而是可执行代码(通常称为“鸡蛋”或“外壳代码”),那么在IIS终止之前将执行该代码。由eEye小组发现的这一攻击方法包括三个步骤:

1.创建一个用于侦听任意TCP端口上连接活动的程序。一旦接收到连接信号,该程序将执行一个Windows命令外壳程序(cmd.exe),并将该外壳 与连接绑定在一起。这个程序是经过修改的Netcat。Netcat是一个流行的网络连接实用程序,其源代码可以免费获得。
2.在IIS的ism.dll中制造缓冲区溢出,并使IIS从外部Web站点下载侦听程序(由步骤1产生)。
3.执行刚下载的程序(由步骤2产生),该程序将等待传入的连接并使攻击者进入Windows命令外壳程序中。

  由于缓冲区溢出导致IIS在崩溃之前转而运行Windows命令外壳,所以该外壳程序将在IIS的安全权限背景下运行,而该安全权限背景等价于NT Administrator权限。这样,攻击者要做的只是与被攻击的IIS服务器的侦听端口建立连接,然后等着出现c:>提示就万事大吉了。现在, 攻击者拥有对整个NT服务器的管理权限,可以做任何事,比如,添加新用户、修改服务器的内容、格式化驱动器,甚至将该服务器用作攻击其它系统的踏脚石。

  运行IIS 4.0并带有“Service Pack 3/4/5”的Windows NT服务器容易受到此类攻击。Microsoft已经发布了对该弱点的修补程序。Windows NT Service Pack 6也已经修补了该问题。





  Microsoft IIS MDAC RDS安全弱点

  受影响的服务器:运行IIS 4.0并安装了MDAC 2.1或更早版本的Windows NT服务器

  在发现IIS eEye安全弱点的大约一个月后,IIS 4.0的另一个弱点又暴露出来。使用Microsoft数据访问组件(MDAC)和远程数据服务(RDS),攻击者可以建立非法的ODBC连接,并获得对 Web服务器上的内部文件的访问权。如果安装了Microsoft Jet OLE DB提供程序或Datashape提供程序,攻击者可以使用Visual Basic for Applications shell()函数发出能够在服务器上执行的命令。

  在安装了MDAC 2.1或更高版本的IIS 4.0上,从位于其公共目录中的msadcmsadcs.dll,可以找到MDAC RDS弱点。Rain Forest Puppy在其站点中对该弱点进行了详细说明。该弱点利用了IIS上MDAC默认安装时的不适当配置和安全机制的缺乏这一漏洞。在等价于NT Administrator的IIS Web服务器进程的安全权限背景下,进行这种攻击的黑客可以在NT系统上远程执行任意命令。

  MDAC的弱点不是由于技术造成的,而是由于用户对它的配置方式所致。很多站点是通过NT Option Pack 4.0安装IIS 4.0的。如果NT Option Pack 4.0是以典型或默认配置安装的,那么MDAC就容易遭到这种攻击。大多数使用默认安装的系统管理员都没有具体调整过这些设置,从而使Web服务器的安全 性大大降低。

  Foundstone公司的George Kurtz、Purdue大学的Nitesh Dhanjani和我曾经共同设计了一个只有一行的命令字符串,该命令将利用MDAC RDS弱点,使远程NT系统启动一个通过FTP或TFTP进行的文件传输过程。这个命令将告诉服务器到从某个外部系统下载并执行Netcat。 Netcat将运行Windows命令外壳程序,并建立一个返回攻击者计算机的连接,这样,攻击者就获得了对远程NT系统的完全管理控制权。

  Microsoft已经发布了相应的安全公告,并对使IIS 4.0免受该弱点攻击的保护措施进行了说明。

Allaire ColdFusion 4.0弱点

  受影响的服务器:运行在Windows NT上的Allaire ColdFusion Server 4.0

  作为还算容易使用的、功能强大的脚本语言,ColdFusion已经广泛流行起来。但流行并不意味着安全。ColdFusion的问题不在于该服务器 自身,而是在于它附带的脚本。ColdFusion 4.0提供了示范应用程序和范例,它们可以在位于Web服务器根目录中的cfdocsexampleapp和cfdocsexpeval目录中找到。当用 户执行典型安装时,将安装这些应用程序和脚本。ColdFusion所附带的部分范例经过修改后,将允许非法访问服务器上所包含的敏感数据。这些弱点表 明,基本的应用程序服务器可以被编写得不好的应用程序脚本歪曲利用。

  存在这种弱点的一个范例应用程序是cfdocsexampleappdocssourcewindow.cfm。因为ColdFusion是作为具有 Administrator权限的系统服务运行的,所以,该程序可以被用来任意访问和查看NT Web服务器上的任何文件,包括boot.ini。用这种方法可以检索任何文件。Packet Storm对该弱点做了完整解释。

  而更严重的弱点存在于cfdocsexpevalopenfile.cfm、cfdocsexpevaldisplayopenedfile.cfm 和cfdocsexpevalexprcalc.cfm中。这三个文件可以用来查看服务器上的任何文件,更为严重的是,它们还能将任意文件上载到服务器。 对该弱点如何发作的讨论超出了本文的范围,欲了解详细信息请访问L0pht Heavy Industries的咨询信息。表达式求值程序exprcalc.cfm用于让开发人员计算被上载文件中的ColdFusion表达式的值。作为预防手 段,该脚本在进行表达式计算时便会把被上载的文件删除掉,但要避免删除却是件容易的事。这样,攻击者可以上载恶意文件,并最终控制服务器。

  这些就是ColdFusion的示范脚本中最严重的弱点。要防止出现问题,请从任何运行中的服务器中删除ColdFusion示范脚本。 Allaire的Security Zone提供了补丁程序,并提供了如何保护ColdFusion服务器的进一步信息。 Sambar 4.3 hello.bat

  受影响的服务器:运行在Windows NT上的Sambar 4.3 beta 7和更早版本

  Sambar是提供给开发者的免费Web服务器。它提供了对CGI和WinCGI脚本、ODBC脚本以及ISAPI的支持。它甚至捆绑了Perl 5解释器。

  Sambar 4.3 beta 7版和更早版本附带两个名为hello.bat和echo.bat的文件,它们是将Windows批处理文件用作CGI脚本的范例。这两个脚本本身没有问 题,hello.bat显示字符串“Hello World”,而echo.bat显示字符串“Place Holder”。但当批处理文件被用作CGI脚本时,Web服务器将使用Windows命令外壳程序cmd.exe来运行它们。这样,攻击者可以利用该弱 点针对目标服务器运行任意命令。例如,假如攻击者把URL http://target.site/cgi-bin/hello.bat?&dir+c:放 在他或她的浏览器中,那么,将在服务器上运行命令“dir c:”,并在浏览器上显示结果。由于Sambar是在NT Administrator安全权限下运行的,因此事情会变得更为复杂。这样的权限等级可以让攻击者作为NT Administrator运行任意命令。

  Windows命令外壳使用“&”在相同命令行上分隔多个命令。如果用户将“&”放在hello.bat的后面,并在其后添加一个命令,那么将在执行hello.bat后执行第二个命令。

  由于已经删除了文件hello.bat和echo.bat,Sambar 4.3 beta 8版和更高版本没有该弱点。但是,由于Windows命令外壳程序解析命令行的方式无法改变,所以并没有办法能真正修正该问题。如果您安装了4.3 beta 7版或更低版本,请一定要删除hello.bat和echo.bat