Black Hat EU 2001 - Hackproofing Lotus Domino
三句話摘要
Lotus Domino 網頁伺服器的多層安全漏洞與防護方案。 Lotus Domino 的安全防護必須以適當的 ACL 存取控制清單為基礎,任何依賴隱藏、混淆或功能限制的措施都會被系統化的註釋 ID 枚舉和模板繞過技術攻破。 多重存取向量威脅 — Lotus Domino 的預設導航器和 read entries 命令都能洩露資料庫結構,單獨封鎖其中一個無法完全防護,必須雙重限制。
重點整理
重點- 1
多重存取向量威脅 — Lotus Domino 的預設導航器和 read entries 命令都能洩露資料庫結構,單獨封鎖其中一個無法完全防護,必須雙重限制。
- 2
完整遠端反編譯風險 — 攻擊者可透過系統化枚舉註釋 ID,在無需實際讀取內容權限的情況下,遠端發現所有隱藏視圖、表單、代理和設計元件,完整暴露應用程式結構。
- 3
模板檔案繞過技術 — Web 管理員範本檔案本應受保護,卻可透過緩衝區截斷(使用加號欺騙副檔名檢查)或副本 ID 直接請求等方式存取,導致資料庫列表和管理功能洩露。
- 4
隱藏並非安全措施 — 講者強調混淆和隱藏視圖根本無法構成安全防線,攻擊者可輕易透過註釋 ID 枚舉發現任何內容,真正的防護需依靠正確配置 ACL 存取控制清單。
實用技巧與重點
乾貨- 技術細節:
- 註釋 ID (Note ID) 以 4 為一組遞增(如 0x102、0x106、0x112...)
- 隱藏視圖以美元符號 ($) 開頭命名
- 無效或不存在檔案返回 404 錯誤,已刪除返回 500 伺服器錯誤
- Web 管理員範本 (web admin.ntf) 副本 ID:8525 66 c900 12664 F(跨所有機器統一)
- 攻擊方法:
- 緩衝區截斷:請求 `web admin.ntf+++++++++.nsf`(加號轉換成空格,截斷後剩 .ntf)
- 副本 ID 方法:直接使用副本 ID 作為檔案名稱請求
- 讀取表單而非開啟表單:`read form` 可繞過認證提示
- Lotus Domino 命令清單:
- open navigator、read entries、read view entries、open view、open document、edit document、save document、open form、read form、open about、open help
- 防護措施:
- 修改伺服器文件 HTTP 設定,禁止瀏覽資料庫列表(Open Server 命令)
- 使用 ACL 限制匿名使用者存取權限
- 刪除或重新配置 Web 管理員範本
- IIS 虛擬目錄設定為不允許讀取存取,將 .nsf、.box、.ns4 副檔名與 Lotus 過濾器關聯
- Lotus Designer 用戶端可修改 Web 管理員範本的 ACL
- 參考資源:
- Domino Security 網站:dominosecurity.org(講者誤寫為 do.com)
- Domino Security 維護者:Chuck Canel
- ID 密碼恢復工具:由 AAK Security 的 Ian 開發(URL: ccure.net/tools)
結論
結論“Lotus Domino 的安全防護必須以適當的 ACL 存取控制清單為基礎,任何依賴隱藏、混淆或功能限制的措施都會被系統化的註釋 ID 枚舉和模板繞過技術攻破。”
完整解析
詳細Lotus Domino 是一款應用程式伺服器,提供電子郵件、目錄服務和網頁存取等功能。其 Notes 資料庫採用文件驅動架構而非傳統表格式資料庫,包含視圖、表單、文件和代理等高級設計元件。講者 David Litfield 在 2001 年黑帽簡報會上披露,這套系統存在多層安全漏洞,允許未授權使用者完整反編譯遠端資料庫。
首先是預設導航器問題。Lotus Domino 的每個資料庫都有預設導航器,管理員通常試圖透過 URL 重定向映射防止存取。然而,簡單的十六進位編碼繞過(如將 "default" 的 D 改為十六進位值 64)即可打破這道防線。更關鍵的是,`read entries` 命令可返回相同資訊的 XML 列表,而鮮少有人針對此命令設置保護。
其次是註釋 ID 枚舉技術。資料庫內所有元件(視圖、表單、代理、文件)都有註釋 ID,系統會根據返回的 HTTP 狀態碼(404 表示不存在、500 表示 unknown command 異常)洩露元件存在性。攻擊者可透過程式化枚舉 0x000 到 0xFFFFF 範圍內的所有註釋 ID,分析回應完整發現所有隱藏內容。即使某視圖顯示無文件,攻擊者仍可透過已發現的 ID 直接存取該文件,因為 Lotus Domino 的權限檢查對所有視圖一視同仁。
第三是模板檔案繞過。資料庫儲存在 Lotus/Domino/data 目錄,模板檔案也存放於此,但靜態 HTML 在子目錄中。Web 管理員範本 (web admin.ntf) 通常被認為受保護,實際上可透過兩種方式存取:其一是緩衝區截斷,向請求末尾添加大量加號和 .nsf 副檔名,利用 Lotus 的縮短機制使其解析為 .ntf;其二是副本 ID,此範本檔案的副本 ID 在所有安裝上都相同(852566c900126 64F),攻擊者可直接使用此 ID 請求檔案。一旦存取該範本,攻擊者可透過 `read form` 模式(而非 `open form`)繞過認證提示,完整列舉目標伺服器上的所有資料庫。
講者強調,文件中提到的各種阻止措施皆非真正安全防線,隱藏和混淆只會給人虛假的安全感。真正的防護需要多層防禦:設置正確的 ACL 存取控制清單限制匿名使用者、禁用不必要的命令(特別是 Open Server)、删除或重新配置 Web 管理員範本、在 IIS 虛擬目錄禁用讀取存取並關聯所有 Lotus 副檔名等。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

