IIS ASP 19.95美元的攻击 - IISHack 1.5

/ns/ld/softld/data/20010301140248.htm

IIS ASP 19.95美元的攻击 - IISHack 1.5
发布日期:November 3rd, 2000

受影响的系统:Windows NT 4.0 IIS 4.0 sp6 (vulnerable)
Windows NT 5.0 IIS 5.0 (not vulnerable)

描述:
在IIS(Internet Information Server)内存在一个缓冲区溢出,可以用来取得SYSTEM级访问权限。 ASP ISAPI文件解析了这个机制。

它不是一个远程漏洞 ,而是本地的(稍后,我们将在如何远程关闭此漏洞的咨询里对此进行解释)。
理论上它是本地漏洞,实际上你需要创建一个“恶意的” .asp文件,当它被IIS解析时引起inetinfo.exe缓冲溢出,
因此而允许你以SYSTEM来控制本地服务器。

谁会受这个漏洞的影响呢? 在同一NT4 IIS 4 WEB服务器内运行着多种客户端的任何WEB集合公司或internet服务提供者。
基本上,任意客户端(或攻击者)能够更新他们的website,也就是上传一个新的default.asp或anything.asp,然后以SYSTEM执行代码,
因此而取得你服务器的完全控制权。然后他们能在那台NT4 server上的任何其他客户端website上做任何他们想做的事。
另一方面,他们可以安装嗅探器或破解密码来更深一层控制你的网络。

因此标题“19.95美元的攻击...”意味着,任何有20美元的人都能潜在地攻入任何运行NT4+IIS4的WEB集合公司或internet服务提供者。
仅仅是从一个WEB集合公司买一个帐号,然后上传恶意的.asp文件(如evil.asp),并从你的WEBSITE调用那个evil.asp,比如这样: http://www.badguy.com/evil.asp,以及你在那台服务器上以SYSTEM执行的代码。

这里有个example.asp文件可以引起NT4+IIS4的inetinfo.exe溢出。

----start-cut-of-example.asp----

----start-cut-of-example.asp----

这里[buffer]是2220个字符的大小或更多。 是的,这个溢出可以被利用。看下面的一节。

那么你没有20美元来花,或者服务器不是website主机,这怎么办呢?好,这将牵涉到一个远程攻击成为可能的情况。

一个实例情形可能是,一台服务器有一个来宾登记/留言板系统,当它回写到它的.asp文件时没有脱去SCRIPT注释。
于是攻击者可以在一个WEB留言板的"Enter your message here:"对话框(或无论哪一种的对话框)中简单地粘贴含有
script溢出语句的内容,并提交信息。 然后一旦他们调用(内含溢出信息的).asp file, 它能导致IIS解析该文件时溢出,
并且执行他们的代码。

另一个你应该与最近的IIS Unicode漏洞结合起来注意的攻击是,在远程系统上用cmd.exe执行恶意.asp文件的内容,
那时当你调用恶意.asp文件时你的代码以SYSTEM被执行了。事实上,我们已经创建了一个例子用来表明这个.asp代码如何溢出,
以及IIS Unicode漏洞可以一起被用来攻击任何在安置热修复后的NT4+IIS4+SP6(或低一些)系统。

由于这种攻击的本质,或许非常可能连防火墙也不能防止这种类型的攻击。

The Exploit:
如何使用IIS Unicode + .asp代码溢出远程入侵一个系统?
对于你不太熟悉的IIS Unicode exploit, 它基本上可以允许你作为IUSR_MACHINE远程执行IIS的命令。
现在既然我们可以通过cmd.exe执行命令,我们可以试着使远程WEB服务器连接到外部FTP服务器上去获取文件
(类似于第一个IISHACK一样的文件),而你可能仍然作为IUSR_MACHINE来执行。 我们入侵工作是这样的,通过使用Unicode
漏洞在远程服务器上执行我们的.asp文件(以shell代码完成,将cmd.exe绑接到一个端口上),然后调用那个.asp文件导致
inetinfo.exe溢出,结果是一个有系统特权的cmd.exe被绑接到一个特殊端口。现在,在大多数情况下cmd.exe必须有正确的ACL
(那可能不允许IUSR_MACHINE用户接触那端口),在适当的位置也有一些其他的安全防范,所以我们知道这个漏洞在一个安全的
系统上是不起作用的。 然而,这只是概念上的证明,并且我们大多数都知道,许多IIS服务器没有适当的本地安全。
exploit编译后基本上看起来象下面显示的:

C:\we are still hiring good programmers> iishack1.5.exe
IISHack Version 1.5
eEye Digital Security http://www.eEye.com
Code By: Ryan Permeh & Marc Maiffret
eEye Digital Security takes no responsibility for use of this code.
It is for educational purposes only.

Usage: IISHack1.5 [server] [server-port] [trojan-port]

C:\send resume to hire@eeye.com> iishack1.5.exe www.[yourowncompany].com 80
6969
IISHack Version 1.5
eEye Digital Security http://www.eEye.com
Code By: Ryan Permeh & Marc Maiffret
eEye Digital Security takes no responsibility for use of this code.
It is for educational purposes only.

Attempting to find an executable directory...
Trying directory [scripts]
Executable directory found. [scripts]
Path to executable directory is [C:\Inetpub\scripts]
Moving cmd.exe from winnt\system32 to C:\Inetpub\scripts.
Successfully moved cmd.exe to C:\Inetpub\scripts\eeyehack.exe
Sending the exploit...
Exploit sent! Now telnet to www.[yourowncompany].com on port 6969 and you
should get a cmd prompt.
C:\> telnet www.[yourowncompany].com 6969
Trying www.[yourowncompany].com...
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.

C:\WINNT\system32>whoami
NT AUTHORITY\SYSTEM

从以下站点下在完整的exploit:
http://www.eEye.com/html/advisories/IISHack1.5.zip

提供者情况:
Microsoft在hot fixes之前早已经修复了.asp代码溢出,并且它提供在大多数post service pack 6 hot fixes中。
这个漏洞在最近版本的W3SVC.DLL中也已经修复了。 安装任何新近的hotfix可以修复该问题。


这里有一些可以修复.asp代码溢出漏洞的MS的建议和hotfixes:
MS00-080: Patch Available for "Session ID Cookie Marking" Vulnerability
MS00-060: Patch Available for "IIS Cross-Site Scripting" Vulnerabilities
MS00-057: Patch Available for "File Permission Canonicalization"
Vulnerability
MS00-030: Patch Available for "Malformed Extension Data in URL"
Vulnerability
MS00-023: Patch Available for "Myriad Escaped Characters" Vulnerability
MS00-019: Patch Available for "Virtualized UNC Share" Vulnerability
MS00-018: Patch Available for "Chunked Encoding Post" Vulnerability