Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Active Directoryハッキング

Active Directoryハッキング

長年にわたり、ペンテストやRed Teamの案件において、Active Directory環境でよく見られる脆弱性とその対策をまとめた資料です。

Ruslan Sayfiev

February 23, 2025
Tweet

More Decks by Ruslan Sayfiev

Other Decks in Technology

Transcript

  1. Whoami #> Ruslan Sayfiev (ルスラン サイフィエフ) (https://twitter.com/cryptopeg) Red Team/Pentestリーダー&執行役員 @

    GMO サイバーセキュリティ by イエラエ - 主な知見:Web・NW診断、Cloud、OSINT、Pentest(TLPT)、Red Team、ツール開発、IoT診断など - 資格:OSWP、OSCP、OSCE3、OSTH、OSDA、OSEE、GXPN、CRTO、CRTL、CRTE、CRTMなど - HackTheBox (Guru): Offshore、Zephyr、RastaLabs、APTLabs、FullHouse - Microsoft researcher (MVR): 2023 Annual – 61位 - 多数のCVE保持
  2. 目次 ・攻撃者モデル ・企業インフラにおけるActive Directoryの役割 ・Active Directoryでよく見る脆弱性 - パスワード関連 - SMBシェア関連

    - 不適切な権限の設定 - SMB/LDAP署名・NTLMリレー - ADCS関連 - クライアント端末・サーバの既知や0Day脆弱性 ・まとめ
  3. パスワード関連 - Joeアカウント - 環境が古ければ古いほど存在する可能性が高まる(例:backup/backup) - 脆弱なパスワード - 推測しやすいパスワードの使用(例:会社名、デフォルトパスワード、P@ssw0rd) -

    ドメインユーザアカウントにSPNが設定されている(Kerberoast攻撃)かつ短期間 でクラック可能なパスワードの使用(※多くの場合ドメイン管理者が設定されている) - 共通パスワード - 複数アカウントのパスワードが共通(例:一般と管理者、サービスアカウント) - ローカル管理者のパスワードが共通(場合によってドメイン管理者と共通) - 認証情報のハードコーディング(平文または復号が可能な状態) 主に使用されているツール: ・Kerberoast(Windows:Rubeus・PowerShell系、Linux:Impacket系) ・パスワードスプレー(Windows:複数にある、Linux:NetExecなど)
  4. パスワード関連「推奨される対策」 対策: - 脆弱なパスワードの使用 - ドメインアカウント(特に管理者アカウント)に SPN を登録しないようにして、gMSAを使用するか、どうしても 登録が必要な場合、パスワードを強固な文字列(英数記号混在の25桁以上)に設定することで、現実的な時間 での解析を困難にする

    - デフォルトのパスワードをランダムパスワードにして、ドメインユーザアカウントのパスワードポリシーも強化する - 共通パスワードの使用 - ローカル管理者のパスワードをLAPSで管理する - 環境・アカウントごとに強固な異なるパスワードを設定する - その他 - 認証情報をハードコーディングをせず、同様なことを平文認証情報の使用に頼らない仕組みにする - ドメイン管理者系アカウントにおいてSmartCard認証、ログイン先サーバの制限及びMFAを設定する 監視: - SIEMを活用して、ログイン (成功・失敗) イベントをリアルタイムに監視し、管理者アカ ウント利用時には即時アラートを通知(例:Slack, Microsoft Teams)
  5. SMBシェア関連 主に使用されているツール: ・自動: SharpShares - https://github.com/mitchmoser/SharpShares - LDAPクエリによって端末一覧を取得し、マルチスレッドでアクセス可能なシェアを探索する (読み込み・書き込みの確認も可能) ・手動:

    BloodHound結果から1〜2ヶ月以内にパスワード更新したサーバ・端末の一覧を作成し、 CMD・PowerShellまたは「NetShareEnum」Windows APIを使用して探索する ※環境によってデフォルトである1ヶ月ごとにパスワードを更新しないサーバも存在する可能 性があることに注意! ※サーバのバックアップイメージが数100GBの場合でも、 ダウンロードせずに容易に取得が可能
  6. SMBシェア関連「推奨される対策」 対策: - 資産管理及び定期的に不明なシェアがないかを確認する - GPOやIntuneなどでシェア一覧及び権限を取得するスクリプトの実行 ※管理シェア(C$など)を停止する(管理者権限によってファイルダウンロード・アップロードに使われる可能性がある) ※NAS・LinuxサーバやAD未参加の端末において要注意 - アカウントごとに最小権限の原則に基づいて、適切なアクセス権限を設定する

    - 平文や暗号化されている認証情報が含まれるファイルをファイルサーバに保管しない - 場合によって重要なアカウントのパスワード一覧から辞書を作り、ファイルサーバのローカルから探索することも推奨 ※重要アカウントにおいて、なるべくセキュリティキーによるMFAなどがあるパスワードマネージャーを使用 - AD環境のバックアップを同AD内のサーバに保管しない - 別ドメインやドメイン未参加サーバなどに保管する 監視: - SMB通信における、大量ファイルへのアクセス及び大量データのダウンロードを監視する - 管理シェア(C$など)におけるアクセス(ダウンロード・アップロード)を監視する ※一部の製品がデフォルトでできている
  7. 不適切な権限の設定、事例 + ・「Domain Users」グループなどの低権限オブジェクトにマシンアカウントへ の書き込み可能な「GenericWrite」権限が付いている また、ほとんどの環境にマシン10台までデフォルトポリシーが設定されている ※マシンアカウントの追加なしでも悪用が可能! 参考リンク:https://www.tiraniddo.dev/2022/05/exploiting-rbcd-using-normal-user.html https://gmo-cybersecurity.com/blog/htb-ctf-2024-bulwark-writeup/ ・「Domain

    Users」グループなどの低権限オブジェクトに他オブジェクト (OU、グループ、ユーザアカウントなど)に「GenericAll、GenericWrite、 DCSync」などの権限が付いている ・「Domain Users」グループなどの低権限オブジェクトにマシンアカウントに 対して「CanRDP、AdminTo」などの権限が付いている ※RBCD (Resource-Based Constrained Delegation)
  8. 不適切な権限の設定「推奨される対策」 対策: - ms-DS-MachineAccountQuota属性の設定を0台にする - 攻撃者より早くBloodHoundを使用して全ての悪用可能な経路を潰そう! - 運用・設計上で直すことが困難な場合、攻撃想定で監視を高める 監視: -

    ドメインコントローラーのイベントログやIDSなどにおいて、デフォルトな状態で実行さ れるBloodHoundのLDAPクエリなどに基づいて検知する 参考リンク:https://medium.com/securonix-tech-blog/detecting-ldap-enumeration-and- bloodhound-s-sharphound-collector-using-active-directory-decoys-dfc840f2f644 - ADExplorerによる大量のLDAP通信やSOAPHoundによるイベントログも監視する 参考リンク: https://www.mdsec.co.uk/2024/02/active-directory-enumeration-for-red-teams/
  9. SMB/LDAP署名・NTLMリレー「推奨される対策」 対策: - ドメインコントローラー、サーバやクライアント端末においてSMB署名を強制する - ドメインコントローラーやドメインデフォルトポリシーのGPOにおいて「LmCompatibilityLevel」を 5に設定し、LM・NTLMv1の受付・送信を拒否する(NTLMv2のみの使用になる) ※レガシーOSやLinuxなどのマシンに注意して実施! - LDAP署名・LDAPSチャンネルバインディングを有効化する

    ※Radiusサーバ、プリンターなどに注意して実施! - クライアント端末間通信・サーバ(DC含む)からクライアント端末への通信を制限するようにマイクロ セグメンテーションを実装する - LLMNR/NBNS/mDNSプロトコルやIPv6の使用をGPOにおいて無効化する 監視: - ローカル権限昇格のLDAP署名を悪用する際、Shadow CredentialsまたはRBCD攻撃の実施が 必要なため、イベントログを監視する - リレーが成功した場合、リレー先のサーバにおいて何らかのコマンドの実行されるため、各サーバのイ ベントログを監視する
  10. ADCS関連「推奨される対策」 対策: - 全てのテンプレートの確認・整理(設定不備など) - NTLMリレーを防ぐため、認証の拡張保護 (EPA) を有効にする - 証明書発行の際、マネージャー承認ステップを導入する

    - ADCSの設計を再検討し、RootCAサーバをオフラインの状態で管理して、 IssuingCAにおいてHSMの使用及びイベントログ(証明書バックアップ・発行な ど)の強化な監視を行う - クライアント端末に発行される証明書を必須的にTPMに保管する ※ネタバラシ:TPMキーの構成証明も検討!(3〜4月に記事を楽しみに!) - VPNにおいて、同時接続可能なセッション数を最小(例:1)に限定する 監視: - ADCSサーバにおいて証明書発行のイベントログを監視する
  11. 発見した脆弱性(一部) CVE番号 対象製品 脆弱性種類 分類 CVE-2021-22159 Proofpoint ITM (旧ObserveIT) 権限昇格

    リスク管理 CVE-2022-25294 Proofpoint ITM (旧ObserveIT) 権限昇格 CVE-2022-1038 HP Jumpstart 権限昇格 ベンダー CVE-2022-22814 ASUS System Diagnosis 権限昇格 CVE-2024-2208 HP Sound Research audio 権限昇格 CVE-2021-29644 Hitachi JP1 リモートコード実行 資産管理 CVE-2021-29645 Hitachi JP1 権限昇格 CVE-2022-27773 Ivanti Endpoint Manager (旧LANDesk) 権限昇格/リモートコード実行 CVE-2022-28719 ハンモックAssetView リモートコード実行 CVE-2023-22335 IT資産管理ツールSS1 組み合わせで、リモートコード実行 CVE-2023-22336 IT資産管理ツールSS1 CVE-2023-22344 IT資産管理ツールSS1 CVE-2024-24964 SkySea Client View 権限昇格 CVE-2024-41139 SkySea Client View 権限昇格 CVE-2024-41143 SkySea Client View 権限昇格 CVE-2024-41726 SkySea Client View リモートコード実行 CVE-2022-44669 Microsoft Windows 権限昇格 OS/Office CVE-2023-21726 Microsoft Windows 権限昇格 CVE-2023-33148 Microsoft Office 権限昇格 CVE取得数:17 申請中:15
  12. まとめ - Active Directoryに関して、年々を通して見てきた脆弱性は多くの場合は0Day脆 弱性でもなく、設計・運用不備が主な原因であり、これらを修正することで大部分の 脆弱性は防止可能 - 主な脆弱性として、単なるパスワードに関する問題やファイルシェアの問題、権限設 定の不備ではあるものの、環境の設計・運用によって修正するには最も時間がかか る脆弱性でもある

    - Active Directoryは昔からある管理システムですが、Entra IDなどのフルクラウ ド環境に徐々に移行しつつある。しかし、大企業(特に歴史が長い企業)は、レガシー システムの互換性や移行コストの観点から、引き続きAD環境を使用し続けると考え られる - 設定や運用面の脆弱性を修正し、ゼロトラストアーキテクチャ(マイクロセグメンテー ション)、ビジネスプロセスや設計による脆弱性を環境全般的に把握した上で適切な 監視を行いましょう!