漏洞描述

ms07-029是一个远程执行代码漏洞,成功利用此漏洞的×××者可以远程完全控制受影响的系统。 ×××者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。

漏洞编号

CVE-2007-1748
BID-23470

×××目标及端口

DNS服务器
端口:需要自行确定

影响系统

    Microsoft Windows 2000 Server Service Pack 4 
    Microsoft Windows Server 2003 Service Pack 1
    Microsoft Windows Server 2003 Service Pack 2
    Microsoft Windows Server 2003 with SP1 for Itanium-based Systems
    Microsoft Windows Server 2003 with SP2 for Itanium-based Systems
    Microsoft Windows Server 2003 x64 Edition
    Microsoft Windows Server 2003 x64 Edition Service Pack 2

漏洞成因及原理

成因:Windows 域名系统 (DNS) 服务器服务的远程过程调用 (RPC) 管理接口中存在基于堆栈的缓冲区溢出。
原理:DNS RPC接口用来将域名转换为IP地址,如果接收到含有反斜线+八进制的字符,会导致栈溢出。设计的函数为Lookup_ZoneTreeNodeFromDottedName(),函数中在将数据写入缓冲区前进行了一些边界检查,但是通过含有多个反斜线的字符串便可以绕过检查触发漏洞。

metasploit exp可用目标

Windows 2000 SP0-SP4
Windows 2003 SP0-SP2

metasploit利用ms07-029

# 利用此payload需要locale、rhost、rpost三项内容,分别为:目标系统的语言、目标系统IP和目标系统DNS服务端口。
use exploit/windows/dcerpc/ms07_029_msdns_zonename
set rhost <target ip>
set rport <target port>
run -j

不使用metasploit利用ms07-029

暂未发现,后续补充

参考文章

绿盟ms07-029漏洞研究 微软官方ms07-029报告