Black Hat Europe 2025 | A crash course in revealing insecure blind spots for DoS & DDoS
三句話摘要
SafeBreach 研究員揭露 Windows 域控制器的四個未驗證遠端 DoS/DDoS 漏洞,並透過自動化工具額外發現 26 個新脆弱 RPC 函數。 當伺服器程式碼被強力抽象層包裹、或服務本身可被遠端驅動為客戶端時,開發者對資源耗盡風險的感知會系統性地降低,這類「認知盲點」比單一程式錯誤更危險,因為它會批量產生漏洞。 開發者盲點一:客戶端程式碼可被遠端觸發
重點整理
重點- 1
開發者盲點一:客戶端程式碼可被遠端觸發
- 2
域控制器的 LSASS 進程內建 LDAP 客戶端,攻擊者可透過特定 RPC 呼叫(`DsrGetDcNameEx2`)強迫域控主動連線至攻擊者控制的 CLDAP 伺服器,因為客戶端信任任意 LDAP 伺服器,完全不需認證。
- 3
開發者盲點二:RPC 傳輸抽象層遮蔽了伺服器資安意識
- 4
Microsoft 官方文件明確標榜 RPC 讓開發者「只需專注應用邏輯,不用管網路細節」,這導致 RPC 介面開發者容易忽略最壞情境下的並發量與資源耗盡風險,留下大量可被濫用的記憶體配置入口。
- 5
Win DDoS:用 LDAP Referral 招募域控傀儡
- 6
LDAP referral 回應可包含指向受害伺服器的大量 URL 清單,而 Windows LDAP 客戶端只檢查 URL 字串是否重複,不驗證其是否解析到同一 IP,因此用單一萬用字元子網域即可產生大量「不同 URL,同一 IP」的清單,讓全球域控制器反覆對受害伺服器發送 LDAP 封包。
- 7
Torpedoes:單機等效 DDoS 的核心技術
- 8
預先送出數千個 RPC bind 封包並讓連線保持閒置(測試超過 10 分鐘仍存活),待所有連線就緒後同步觸發 RPC 呼叫,繞過每次呼叫前的 bind+ack 等待瓶頸,單台攻擊機即可造成域控或 Windows 端點崩潰。
實用技巧與重點
乾貨- 數字與成本
- 2024 下半年 DDoS 攻擊比 2023 同期增加 56%
- 2024 上半年增幅 46%
- Cloudflare 記錄史上最大 DDoS:7.3 Tbps
- 2023 每次 DDoS 平均成本:每分鐘 $6,000,平均單次損失 $486,000
- `DsrAddressToSiteNamesW` entry count 上限 32,000,每次呼叫最少分配 entry count × 8 bytes = 256 KB
- `NetrServerRequestChallenge` 單次呼叫可觸發數萬 MB 記憶體配置
- `NetRWKSvcTransportEnum` 的 preferred maximum length 可觸發最高 4 GB 虛擬記憶體配置
- 舊有挑戰資料清除窗口:2 分鐘
- Named Pipe 端點同時連線上限:20;TCP 端點無上限
- 最終透過 Impacket 自動化發現新脆弱函數:26 個
- 工具與技術
- 漏洞名稱:LDAP Nightmare(原始)、Win DDoS、Win DoS
- 技術名稱:Stateless RPC、Torpedoes
- 核心 DLL:`wldap32.dll`(LDAP/CLDAP 客戶端)、`WKSVC`、`spoolsv`
- 脆弱 RPC 介面:Netlogon(`DsrAddressToSiteNamesW`、`NetrServerRequestChallenge`)、Spoolsv(`RpcEnumPrinters`)
- 自動化工具:Impacket(Python 網路協議庫)+ 修改泛型類別強制傳入大型數值/字串參數
- 監控方式:WMI 遠端監控 RAM 用量 + 持續嘗試域認證驗證是否崩潰
- PoC 代碼庫:Win DDoS repository(含 Stateless RPC 與 Torpedoes 實作)
- 攻擊流程步驟
- 攻擊者發送 `DsrGetDcNameEx2` RPC 呼叫,觸發域控成為 CLDAP 客戶端
- 攻擊者 CLDAP 伺服器回傳 referral,將域控導向自己的 LDAP(TCP)伺服器
- 攻擊者回傳含數千條 URL 的 referral 清單,全部指向受害伺服器的同一 IP:Port
- 域控依序對受害伺服器送出 LDAP 封包,受害伺服器因收到非預期封包而關閉連線
- 域控繼續下一條 referral,反覆洪泛直到清單耗盡
結論
結論“當伺服器程式碼被強力抽象層包裹、或服務本身可被遠端驅動為客戶端時,開發者對資源耗盡風險的感知會系統性地降低,這類「認知盲點」比單一程式錯誤更危險,因為它會批量產生漏洞。”
完整解析
詳細DDoS 攻擊在 2024 年創下歷史新高,Cloudflare 甚至記錄了 7.3 Tbps 的史上最大規模攻擊,而每次 DDoS 事件帶來的商業損失平均高達 48 萬美元。SafeBreach 的 Orya Eer 與 Shahak Morag 從一個名為「LDAP Nightmare」的已知漏洞出發,系統性地挖掘 Windows 域控制器的兩類開發者盲點,最終產出四個可遠端執行、無需認證的拒絕服務漏洞,並進一步透過自動化手法再發現 26 個新脆弱函數。
研究的起點是 LDAP Nightmare:Windows 的 LSASS 進程內建 CLDAP 客戶端,攻擊者可透過任意域控上開放的 RPC 呼叫 `DsrGetDcNameEx2`,使域控主動連線到攻擊者控制的 CLDAP 伺服器。LDAP Nightmare 原本利用回傳無效欄位值使客戶端崩潰。研究者進一步思考:若改為回傳「合法但大量」的 LDAP referral URL,讓域控把所有請求都導向同一個受害 IP,是否能把域控變成 DDoS 傀儡?實驗結果確認可行,這就是 Win DDoS。技術上的關鍵突破在於繞過 UDP 封包大小限制——先回傳一個 referral 指向自己的 TCP LDAP 伺服器,此後通訊就改走 TCP,不再有大小限制。另一個繞過點是重複 URL 的去重邏輯:Windows LDAP 客戶端只比對 URL 字串本身,不驗證解析後的 IP,因此只需設定萬用字元子網域全部指向受害 IP,即可產生字串各異但流量目標相同的龐大 referral 清單,讓全球公開可觸及的域控齊聲洪泛受害伺服器,攻擊者無需入侵任何設備、不留任何足跡。
第二條攻擊路線針對 RPC 的傳輸抽象層。研究者觀察到 Microsoft 官方文件標榜 RPC 讓開發者「只需專注應用邏輯」,推論這種強抽象化會使開發者忘記自己正在寫的是伺服器程式,忽略極端並發與資源耗盡的場景。他們篩選在 LSASS 進程內運行、無需認證、接受大型數值或緩衝區參數的 RPC 函數,並發明兩項加速技術:「Stateless RPC」直接跳過 bind/ack 握手,將 bind 與 call 封包合併在同一個 TCP 封包送出,大幅提升每秒呼叫率;「Torpedoes」則預先建立數千條已完成 bind 的 TCP 連線,等全數就緒後同步觸發 RPC 呼叫,讓單台機器的洪泛強度等效於分散式 DDoS。以 `NetrServerRequestChallenge` 為例,其 computer name 參數無大小限制,每次呼叫可觸發數萬 MB 的記憶體配置;配合 Torpedoes 在 2 分鐘的挑戰資料清除窗口內集中洪泛,足以讓域控崩潰。針對需要認證的 Spoolsv `RpcEnumPrinters`,研究者更進一步將 Torpedoes 與預簽章硬編碼封包結合,讓任何 Domain User 都能遠端崩潰域內所有 Windows 端點。
收到研究回報後,Microsoft 針對所有已知脆弱函數發布修補,但研究者並未停步。他們利用 Impacket 的測試套件——這些測試為了驗證實作正確性,本身就包含完整合法的 RPC 呼叫參數——修改泛型類別強制傳入超大數值與字串,再用 socket hook 記錄每個測試產生的封包,最後透過 Torpedoes 重放,搭配 WMI 遠端監控 RAM 與認證可用性來判斷是否觸發崩潰。這套自動化流程在 Microsoft 已修補的基礎上,再度發現 26 個新脆弱 RPC 函數,Microsoft 隨後發布了統一的綜合修補。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

