Sauron: 高速な Active Directory ツールが、資格情報の権限とネストされたグループを数秒でマッピング

Image

Sauron

新たに取得した Active Directory 資格情報に対する高速なコンテキスト列挙ツール。

なぜ Sauron なのか?

新しい資格情報(パスワードスプレー、フィッシング、ハッシュリプレイなど)を取得したとき、まず必要なのはコンテキストです。このアカウントの正体は何か?どのグループ(直接およびネスト)に属しているのか?どの OU に存在するのか?説明文から、その役割や紐づくアプリケーションは分かるか?Sauron はこれらを、1 回の実行で数秒のうちに回答します。

主な目的:孤立した 1 つの資格情報を、AD 内および企業グループや説明を再利用するサードパーティ製ソフトウェア/サービスにおける潜在的な能力のメンタルマップへと素早く変換すること。

主な機能

  • sAMAccountName、識別名 (Distinguished Name)、SID によるオブジェクト種別(ユーザー、コンピューター、MSA/gMSA、FSP)の自動判別
  • LDAP ルール 1.2.840.113556.1.4.1941 を用いたネストグループ解決 + SID によるプライマリグループ解決
  • オブジェクトからドメインルートまでの組織階層(OU/コンテナ)の抽出
  • メタデータ抽出:説明、メモ、役職、部署、マネージャー、adminCount など
  • リンクされた OU に対する GPO 列挙と、適用強制状態の解釈
  • 接続フォールバック:LDAPS → 非セキュア LDAPS → strongAuthRequired 検出付き LDAP
  • LDAP リクエスト数と詳細ログを出力するデバッグモード
  • オブジェクト詳細、グループメンバーシップ、組織単位、ポリシー継承の構造化出力

典型的なポストスプレーのワークフロー

  1. 有効な資格情報を取得する(たとえば SpearSpray を使うなど)
  2. 取得したアカウントに対して Sauron を実行する(機微なグループに属しているものはあるか?)
  3. 説明文やグループ名から暗黙的なロールを抽出する
  4. 次のステップを決定する:権限昇格、ラテラルムーブメント、アプリケーションへのピボット、報告など

Sauron の出力の読み解き方

オブジェクト属性

属性 意味 セキュリティコンテキスト
sAMAccountName アカウントのログイン名 認証のための主な識別子
DisplayName 人間が読むためのフルネーム ユーザー名と異なる場合、役割/機能が分かることが多い
DN 識別名 (Distinguished Name) 正確な AD 上の位置と組織構造を示す
Description 自由記述の説明 重要:アクセスの詳細、アプリケーション参照、機能的な役割が記載されていることが多い
Notes (info) 追加の自由記述情報 重要:特定の権限、アクセス範囲、運用上の詳細が含まれる場合がある
Title 役職 組織内での権限レベルを示す
Department 部署/事業部 潜在的なアクセス範囲や利用システムの範囲を示す
Email メールアドレス 連絡先情報および外部からのアクセスベクターとなり得る
UPN ユーザー プリンシパル名 代替ログイン形式(user@domain)
userAccountControl アカウント状態フラグ 重要:アカウント状態(無効化、ロック、パスワードポリシー、委任信頼など)を示す
Last Logon 直近の認証日時 アカウントの活動レベルを示す(古いアカウント = 潜在的な標的)
Password Last Set パスワード変更タイムスタンプ パスワードの経過日数を示す
Manager 直属の上長の DN ソーシャルエンジニアリングやエスカレーションパスの候補
adminCount 保護対象オブジェクトフラグ 1 = 高権限アカウント(Domain Admins など)
primaryGroupID デフォルトグループ RID 通常は Domain Users (513)、Computers (515)、Controllers (516)
objectSid セキュリティ識別子 アクセス制御判断のための一意な ID

グループ情報

フィールド 意味 セキュリティコンテキスト
Description グループの目的 重要:サードパーティアプリ(AWS、Jenkins、VMware など)へのアクセスが分かる場合がある
Notes (info) 追加の詳細 特定の権限やアクセス範囲が記載されていることが多い
managedBy グループ管理者の DN 管理連絡先であり、必ずしも編集権限を持つとは限らない
DN グループの位置 組織的なスコープ(ドメイン全体か OU 固有か)を示す

OU/コンテナ情報

フィールド 意味 セキュリティコンテキスト
Name (Type) OU/コンテナの表示名 組織種別(OU/Container)付きの人間が読みやすい名称
DN 完全な識別名 AD 階層内の完全なパス
Description OU の目的 環境(本番/開発)や機能を示す場合がある
Managed By OU 管理者の DN 組織単位の管理連絡先
gPOptions グループポリシー継承設定 ポリシーが階層下にどのように流れるかを制御する
GPO Links 適用されているポリシー 継承されるセキュリティ設定や制限を示す

GPO の詳細

フィールド 意味 セキュリティコンテキスト
displayName ポリシーの分かりやすい名前 目的(セキュリティ、ソフトウェア配布など)が示されていることが多い
Description ポリシーの詳細 適用される制限やソフトウェアが分かる場合がある
SYSVOL Path ファイルシステム上の場所 ポリシーの保存場所とバージョン管理を示す
versionNumber ポリシーバージョン 数値が大きいほど最近変更されたことを示す
Created ポリシー作成日 ポリシーが最初に実装された時期を示す
Last Modified ポリシー変更日 重要:最近の変更は、積極的に管理されていることを示す場合がある
DN ポリシーの識別名 AD のポリシーコンテナ内での位置
gPLink flags リンクの強制状態 下記の GPO リンクオプションを参照

GPO リンクオプション(フラグ)

フラグ 状態 強制 説明
0 有効 非強制 標準的なポリシー適用。継承によりブロックされる可能性がある
1 無効 非強制 ポリシーは無効で、適用されない
2 有効 強制 ポリシーは強制され、継承によってブロックできない
3 無効 強制 ポリシーは無効だが、強制としてマークされている

インストール & 使い方

翻訳元: https://meterpreter.org/sauron-fast-active-directory-tool-maps-credential-privileges-and-nested-groups-in-seconds/

ソース: meterpreter.org