
LDAP 安全加固實戰指南基于 Anthropic-Cybersecurity-Skills 的 ldap3 審計與 GPO 加固配置【免費下載鏈接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0項目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本文是一份面向安全工程師與身份與訪問管理IAM團隊的 LDAP 目錄服務安全加固技術指南。它以Anthropic-Cybersecurity-Skills倉庫中的configuring-ldap-security-hardening技能為核心系統講解如何通過LDAPSLDAP over TLS強制、LDAP 簽名LDAP Signing、通道綁定Channel Binding、匿名綁定防護等手段抵御憑據竊取、LDAP 注入、匿名枚舉與 NTLM 中繼等攻擊并配套提供基于ldap3的自動化審計腳本。讀完本文你將掌握 LDAP 加固的完整技術模型、可復制的 Python 審計代碼、Windows GPO/注冊表加固配置項以及對應的 MITRE ATTCK 與 NIST CSF 2.0 框架映射。LDAP 加固面對的攻擊面LDAPLightweight Directory Access Protocol是身份目錄服務的核心協議一旦暴露攻擊者可以利用以下攻擊類別突破目錄服務憑據收割Credential Harvesting通過明文 LDAP 通信截獲用戶憑據LDAP 注入LDAP Injection篡改搜索過濾器繞過訪問控制或枚舉數據匿名綁定Anonymous Binding未認證即枚舉用戶、組與目錄結構通道綁定繞過Channel Binding Bypass剝離 TLS 層驗證實施 NTLM 中繼攻擊。本技能定義于 skills/configuring-ldap-security-hardening/SKILL.md的定位是在部署或審計一個 LDAP/Active Directory 環境時通過強制 LDAPS、通道綁定與 LDAP 簽名來消除上述攻擊路徑并持續監控 LDAP 攻擊行為。其安全控制集對齊了 NIST 800-53 的訪問控制要求包括賬戶管理AC-2、訪問強制AC-3、最小權限AC-6、審計日志AU-3與身份識別IA-2。依賴庫ldap3庫安裝方式用途ldap3pip install ldap3LDAP 協議客戶端用于目錄服務安全審計在 skills/configuring-ldap-security-hardening/scripts/agent.py 中審計腳本通過以下導入完成對 ldap3 的初始化若依賴缺失會提示安裝并退出try: import ldap3 from ldap3 import Server, Connection, ALL, NTLM, Tls import ssl except ImportError: print(Install: pip install ldap3) sys.exit(1)腳本運行時要求 Python 3.8且僅在獲得授權的測試/實驗環境中執行審計。核心 ldap3 API 方法API 參考文檔skills/configuring-ldap-security-hardening/references/api-reference.md歸納了 ldap3 在 LDAP 加固場景中的四個關鍵方法下面結合源碼中的實際調用方式逐一展開。Server創建帶 TLS 配置的 LDAP 服務器Server(ip, port, use_ssl, tls, get_infoALL)use_sslTrue表示啟用 TLS 通道走 636 端口tls接受一個Tls實例用于證書校驗配置get_infoALL會拉取服務器 rootDSE 信息供后續基址 DN 推斷使用。在審計腳本中LDAPS 可用性檢查使用Tls(validatessl.CERT_NONE)關閉證書校驗以探測端口可達性審計場景而非生產連接配置tls Tls(validatessl.CERT_NONE) server Server(server_ip, port636, use_sslTrue, tlstls, get_infoALL) conn Connection(server, auto_bindTrue)Connection認證綁定Connection(server, user, password, authenticationNTLM)指定用戶與密碼、使用 NTLM 認證方式建立綁定用于檢測服務器是否接受簡單綁定/通道綁定相關的認證行為。審計腳本中通道綁定檢查即采用此形式server Server(server_ip, get_infoALL) conn Connection(server, userf{domain}\\{username}, passwordpassword, authenticationNTLM, auto_bindTrue)注意用戶名使用domain\username格式這是對 Active Directory 域內賬戶進行 NTLM 認證的標準寫法。Connection匿名綁定測試Connection(server, auto_bindTrue)不提供任何憑據的匿名綁定用于驗證目錄服務是否允許未認證訪問。這是判斷“匿名枚舉”風險的關鍵探測手段。conn.search目錄對象搜索conn.search(base, filter, attributes)在指定基址上執行 LDAP 過濾器查詢并獲取指定屬性。腳本中使用兩種典型檢索# 讀取 rootDSE 基本信息 conn.search(, (objectClass*), search_scopeldap3.BASE, attributes[*]) # 枚舉用戶對象 conn.search(base_dn, (objectClassuser), attributes[sAMAccountName])若匿名連接下(objectClassuser)能返回用戶條目即確認服務器存在可被未認證用戶枚舉的嚴重缺陷。自動化的四項安全檢查實現agent.py把上述 API 封裝為四個獨立檢查函數構成一次完整的 LDAP 加固審計流水線。核心邏輯如下函數檢查內容判定方式check_ldap_signing匿名綁定是否可用389 端口匿名 bind 成功后默認判定為高風險check_ldapsLDAPS 是否可用636 端口 TLS bind 失敗即判定為高風險check_channel_binding簡單綁定是否被允許NTLM bind 成功后結合加固配置人工復核audit_anonymous_accessrootDSE 與用戶枚舉匿名搜索(objectClassuser)返回條目即告警LDAP 簽名檢查check_ldap_signingdef check_ldap_signing(server_ip): try: server Server(server_ip, port389, get_infoALL) conn Connection(server, auto_bindTrue) info server.info conn.unbind() return { check: LDAP signing, port: 389, anonymous_bind: True, severity: HIGH, recommendation: Enforce LDAP signing via GPO: Domain controller: LDAP server signing requirements Require signing, } except Exception as e: return {check: LDAP signing, error: str(e), anonymous_bind: False}從源碼結構看該檢查通過是否成功匿名綁定來判斷服務器未強制 LDAP 簽名的暴露程度并直接給出 GPO 修復建議。LDAPS 可用性檢查check_ldapsdef check_ldaps(server_ip): try: tls Tls(validatessl.CERT_NONE) server Server(server_ip, port636, use_sslTrue, tlstls, get_infoALL) conn Connection(server, auto_bindTrue) conn.unbind() return {check: LDAPS, port: 636, available: True, severity: INFO} except Exception as e: return {check: LDAPS, available: False, severity: HIGH, recommendation: Enable LDAPS by installing a certificate on the domain controller}LDAPS 不可用時憑據將以明文在網絡上傳輸屬于高危風險修復方式是在域控制器上安裝證書并啟用 LDAPS。通道綁定檢查check_channel_bindingdef check_channel_binding(server_ip, domain, username, password): try: server Server(server_ip, get_infoALL) conn Connection(server, userf{domain}\\{username}, passwordpassword, authenticationNTLM, auto_bindTrue) conn.unbind() return { check: Channel binding, simple_bind_allowed: True, severity: MEDIUM, recommendation: Enable LDAP channel binding via registry: LdapEnforceChannelBinding2, } except Exception as e: return {check: Channel binding, error: str(e)}該檢查需要域賬號憑據作為輸入在run_audit中只有當domain/username/password三者齊備時才執行用于確認服務器是否仍接受未經通道綁定的簡單綁定。匿名訪問審計audit_anonymous_accessdef audit_anonymous_access(server_ip): findings [] try: server Server(server_ip, get_infoALL) conn Connection(server, auto_bindTrue) conn.search(, (objectClass*), search_scopeldap3.BASE, attributes[*]) if conn.entries: findings.append({issue: Anonymous rootDSE access, severity: MEDIUM, ...}) base_dn server.info.other.get(defaultNamingContext, [])[0] if server.info else if base_dn: conn.search(base_dn, (objectClassuser), attributes[sAMAccountName]) if conn.entries: findings.append({issue: Anonymous user enumeration, severity: CRITICAL, detail: fAnonymous bind can enumerate {len(conn.entries)} user objects}) conn.unbind() except Exception as e: findings.append({issue: Anonymous access test, error: str(e)}) return findings這段代碼先探測 rootDSE 是否泄露給未認證客戶端中危再從defaultNamingContext推斷域基址 DN隨后嘗試匿名枚舉用戶對象若成功則為 CRITICAL。它體現了從信息泄露到實際枚舉的兩級風險判定思路。運行審計并輸出報告agent.py提供命令行入口run_audit匯總所有檢查結果并打印分節報告python3 scripts/agent.py --server 10.0.0.5 python3 scripts/agent.py --server 10.0.0.5 --domain CORP --username admin --password Pssw0rd python3 scripts/agent.py --server 10.0.0.5 --domain CORP --username admin --password Pssw0rd --output report.json參數說明參數必填說明--server是目標 LDAP 服務器 IP--domain否AD 域名提供后才會執行通道綁定檢查--username否LDAP 用戶名--password否LDAP 密碼--output否將報告以 JSON 格式落盤輸出報告結構包含signing、ldaps、anonymous三大部分指定--output時通過json.dump(report, f, indent2, defaultstr)生成結構化 JSON便于后續接入 SIEM 或合規證據歸檔對應 SKILL.md 中“審計日志啟用并轉發至 SIEM”的驗證項。Windows 側加固GPO 與注冊表設置API 參考文檔給出了 LDAP 加固的權威配置項這些設置在 Windows Server / Active Directory 環境中生效設置注冊表路徑推薦值LDAP 簽名HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\LDAPServerIntegrity2Require通道綁定HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\LdapEnforceChannelBinding2Always簡單綁定GPONetwork security: LDAP client signing requirementsRequire signing各取值語義說明LDAP 簽名LDAPServerIntegrity值 2 表示強制要求 LDAP 簽名服務器將拒絕所有未簽名的 LDAP 簡單綁定與 NTLM 認證請求有效阻斷 NTLM 中繼攻擊通道綁定LdapEnforceChannelBinding值 2 表示始終執行通道綁定強制客戶端在 LDAPS 會話中綁定 TLS 通道防止攻擊者剝離 TLS 通道復用憑據LDAP 客戶端簽名要求通過組策略統一要求所有域內客戶端對 LDAP 請求簽名形成“服務器端強制 客戶端要求”的雙向約束。這三項配置的組合是消除憑據中繼、明文傳輸與匿名訪問的關鍵閉環也是 CIS Active Directory 基準的核心加固項。安全檢查與風險定級檢查項風險嚴重級別允許匿名綁定用戶/組枚舉CRITICALLDAPS 不可用明文憑據傳輸HIGH未強制 LDAP 簽名通過 LDAP 進行 NTLM 中繼HIGH通道綁定被禁用憑據中繼攻擊MEDIUM風險定級邏輯匿名綁定直接導致目錄數據泄露定為 CRITICAL明文傳輸與可中繼都允許攻擊者直接獲取或復用憑據定為 HIGH通道綁定缺失在已啟用 LDAPS 的前提下風險有所收斂定為 MEDIUM。審計腳本中的嚴重級別與推薦修復建議與上表一一對應可直接作為整改依據。框架映射與合規對齊該技能在元數據中顯式聲明了多框架映射見 skills/configuring-ldap-security-hardening/SKILL.md 的 frontmatterMITRE ATTCK覆蓋T1087.002賬戶發現域賬戶、T1110.003暴力破解密碼噴灑、T1557.001中間人LLMNR/NBT-NS 投毒與 SMB 中繼、T1040網絡嗅探、T1078.002有效賬戶域賬戶NIST CSF 2.0對齊PR.AA-01、PR.AA-02、PR.AA-05、PR.AA-06身份管理、認證與訪問控制MITRE F3 v1.1關聯T1110.003密碼噴灑、T1110暴力破解、F1006賬戶接管、T1557中間人分別落在initial-access與positioning戰術。從倉庫整體看該技能歸屬于identity-access-management子域。mappings/nist-csf/csf-alignment.md將 IAM 子域主映射到 ProtectPR與 GovernGV功能核心覆蓋PR.AA訪問限于授權用戶、服務與硬件與GV.RR網絡安全角色與職責。因此 LDAP 加固不僅是技術配置更是 NIST CSF 2.0 訪問控制支柱PR.AA的直接落地可用于生成合規就緒文檔與審計證據。驗證清單部署完成后對照 skills/configuring-ldap-security-hardening/SKILL.md 的 Verification 清單逐項確認已在非生產環境完成實現測試安全策略已配置并強制生效審計日志已啟用并轉發至 SIEM文檔與操作手冊Runbook完整已生成合規證據建議將上述清單與agent.py的 JSON 報告結合把每次審計報告作為合規證據留存并把匿名綁定CRITICAL、LDAPS 缺失HIGH等發現納入 SIEM 告警與整改工單形成“檢測 → 加固 → 復核”的閉環流程。【免費下載鏈接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0項目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考