Trusted Design

T1178 - SID-History Injection

概要

The Windows security identifier (SID) is a unique value that identifies a user or group account. SIDs are used by Windows security in both security descriptors and access tokens. (Citation: Microsoft SID) An account can hold additional SIDs in the SID-History Active Directory attribute (Citation: Microsoft SID-History Attribute), allowing inter-operable account migration between domains (e.g., all values in SID-History are included in access tokens).

Adversaries may use this mechanism for privilege escalation. With Domain Administrator (or equivalent) rights, harvested or well-known SID values (Citation: Microsoft Well Known SIDs Jun 2017) may be inserted into SID-History to enable impersonation of arbitrary users/groups such as Enterprise Administrators. This manipulation may result in elevated access to local resources and/or access to otherwise inaccessible domains via lateral movement techniques such as Remote Services, Windows Admin Shares, or Windows Remote Management.

管理者によるコメント

T1178は「SID-History Injection(SIDヒストリーインジェクション)」として定義されていた、WindowsのActive Directory(AD)環境を標的にした非常に強力かつ致命的な「特権昇格(Privilege Escalation)」および「永続化(Persistence)」のテクニックです。

Active Directory環境において、ユーザーアカウントが持つ「SIDHistory(SIDヒストリー)」という特殊な属性に、別ドメインやドメイン管理者の識別子(SID)を不正に注入(インジェクション)することで、一般ユーザーであるにもかかわらず、ドメイン管理者(Domain Admins)と同等の絶対的なアクセス権限をネットワーク全体で横取りする手法です。

1. 概要(攻撃者は何を実現できるのか?)

この手法で攻撃者は、「ドメイン管理者(Domain Admins)などのグループに自分のアカウントを所属させる(=目立つ)ことなく、裏側でドメイン全体の完全な支配権を永続的に握り続けること」を実現します。

2. SIDHistoryの本来の仕様と攻撃の仕組み

本来「SIDHistory」は、企業の組織改編などでユーザーを新しいドメインに移行(引っ越し)させる際、移行前の古いファイルサーバーへのアクセス権を失わないように、古いユーザーSIDを新しいユーザーの「履歴(History)」として保持するためにMicrosoftが用意した正規の互換機能です。

Windowsはユーザーがログインした際、現在のSIDだけでなく、この「SIDHistory」に書かれている古いSIDもすべて読み込んで、1つの「アクセスルール(認可トークン)」を合成します。

攻撃者はこれを利用し、現在のドメイン管理者グループのSID(末尾が -512 のものなど)を、一般ユーザーのSIDHistory属性の中に直接書き込みます。すると、OSは「このユーザーは過去にドメイン管理者だった歴史がある」と誤認し、管理者専用の共有フォルダやドメインコントローラーへのフルアクセスを許可してしまいます。

3. 攻撃の流れ

この手法は、Active Directoryのデータベース(ntds.dit)やオブジェクトの属性を直接操作する必要があるため、通常は一時的にドメイン管理者権限(あるいはそれに準ずる特権)を確保した後の「永続化の足場固め」として実行されます。

  1. 初期侵入とドメインの掌握:
    攻撃者はハッキングを進め、ドメインコントローラー(DC)に侵入するか、ドメイン管理者権限を一時的に奪取します。

  2. ツールの準備:
    攻撃者は、Active Directoryの属性を直接編集できるハッキングツール(定番の Mimikatz や PowerShellスクリプトの PowerView など)を起動します。

  3. SIDHistoryの注入(トリガー):
    ターゲットとする一般ユーザーアカウント(例: guest_backdoor)に対して、ドメイン管理者のSIDをインジェクションします。

    • Mimikatzでの実行例:
      sid::patch
      sid::add /sam:guest_backdoor /new:S-1-5-21-XXXXX-XXXXX-XXXXX-512
      (※末尾の -512 は、Active Directoryにおいて「Domain Admins(ドメイン管理者グループ)」を一意に識別する固有の番号(RID)です)
  4. 管理権限の放棄(擬態):
    攻撃者は最初に盗んだ本物のドメイン管理者アカウントからログアウトし、痕跡を消します。

  5. 裏口からの永続的なアクセス(目的達成):
    以降、攻撃者は仕込んだ一般アカウント guest_backdoor を使ってネットワークにアクセスします。セキュリティソフトがアカウント一覧を見ても単なる一般ユーザーにしか見えませんが、実際にはドメイン内のあらゆるサーバーのデータを自由に閲覧・破壊(ランサムウェアの実行など)できます。

4. 防御・対策

「ドメイン間の通信制御」と「属性変更のイベントログ監視」が最大の防御壁となります。

5. 関連する主なCWE

6. 関連する代表的な事例・CVE

T1178(SID-History Injection)は、Active Directoryという認証インフラの「仕様(機能)」を悪用するポストエクスプロイト技術であるため、これ単体にCVE番号があるわけではありません。しかし、国家系の高度なサイバースパイ(APT)や、巨大なランサムウェア組織が、ドメインを完全陥落させた後の「究極のバックドア」として好んで使用します。

実務上のアドバイス

AD環境のインシデント調査において、「ドメイン管理者のパスワードをすべて変更し、Domain Adminsグループのメンバーも全員確認して怪しいアカウントを削除した。それなのに、なぜか数日後に再びドメインコントローラーが不正操作された」という奇妙なループに陥った場合、本手法(T1178)によって一般アカウントの皮をかぶった特権ユーザーが潜伏している可能性が極めて高いです。

ADのデータベースから各アカウントの SIDHistory 属性を抽出し、身に覚えのない特権SID(末尾-512など)が埋め込まれたアカウントがいないかをチェックすることが、ネットワークの平穏を取り戻すための最終決戦の鍵となります。

分析

この攻撃手法を利用する脅威アクター

関連する CVE

攻撃手法 – 脅威アクター Graph


← Technique一覧に戻る ← Tactics一覧に戻る