Trusted Design

T1134 - Access Token Manipulation

概要

Adversaries may modify access tokens to operate under a different user or system security context to perform actions and bypass access controls. Windows uses access tokens to determine the ownership of a running process. A user can manipulate access tokens to make a running process appear as though it is the child of a different process or belongs to someone other than the user that started the process. When this occurs, the process also takes on the security context associated with the new token.

An adversary can use built-in Windows API functions to copy access tokens from existing processes; this is known as token stealing. These token can then be applied to an existing process (i.e. Token Impersonation/Theft) or used to spawn a new process (i.e. Create Process with Token). An adversary must already be in a privileged user context (i.e. administrator) to steal a token. However, adversaries commonly use token stealing to elevate their security context from the administrator level to the SYSTEM level. An adversary can then use a token to authenticate to a remote system as the account for that token if the account has appropriate permissions on the remote system.(Citation: Pentestlab Token Manipulation)

Any standard user can use the runas command, and the Windows API functions, to create impersonation tokens; it does not require access to an administrator account. There are also other mechanisms, such as Active Directory fields, that can be used to modify access tokens.

管理者によるコメント

MITRE ATT&CKにおいて、T1134は「Access Token Manipulation(アクセストークンの操作)」として定義されている、Windows環境における「特権昇格(Privilege Escalation)」および「防御回避(Defense Evasion)」の非常に重要なテクニックです。

Windowsの認証メカニズムである「アクセストークン(ユーザーの権限や所有グループ情報を保持したデータ構造)」を複製・偽装・生成・横取りすることで、自身のプロセスに他のユーザー(SYSTEM権限やドメイン管理者権限など)のアクセス権利を付与・無効化する手法を指します。

現在は、攻撃の具体的なアプローチに応じて以下のサブテクニック(.001〜.005)に細分化されています。

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

この手法で攻撃者は、「パスワードをクラックしたり再度再認証を行ったりすることなく、他者(上位権限者)の権限をそのまま横取りして実行すること」を実現します。

2. 攻撃の流れ

Windowsでは、プロセスが起動する際に「主トークン(Primary Token)」が割り当てられ、スレッド単位で動作する際に「なりすましトークン(Impersonation Token)」が使用されます。攻撃者はWindows APIを直接呼び出してこれを操作します。

  1. 初期侵入とローカル権限確保:
    マクロや脆弱性などを経由して端末に侵入し、一般ユーザー権限(またはローカル管理者権限)を確保します。

  2. 権限昇格に必要な特権(Privilege)の確認/有効化:
    攻撃者は SeDebugPrivilege(他プロセスのメモリを参照・操作できる特権)や SeImpersonatePrivilege / SeAssignPrimaryTokenPrivilege を有効化します。

  3. 他プロセスのトークン取得(T1134の発動):
    上位権限(例: lsass.exe や winlogon.exe)で動作しているプロセスのハンドルを取得し、Windows APIの OpenProcessToken や DuplicateTokenEx を呼び出して、ターゲットプロセスのアクセストークンをメモリ上で複製(コピー)します。

  4. トークンの割り当て・プロセス起動:
    複製した高権限トークンを使い、ImpersonateLoggedOnUser を実行するか、CreateProcessWithTokenW / CreateProcessAsUserW を呼び出して、SYSTEM権限や別ユーザー権限で新しい悪意あるプロセス(cmd.exe や Cobalt Strike Beacon 等)を起動します。

  5. 上位権限での目的達成:
    再認証(パスワード入力)を経ることなく、SYSTEM権限またはドメイン管理者権限のコンテキストで任意の操作を行います。

3. 防御・対策

アクセストークンの操作はWindowsのOS標準機能(API)の呼び出しによって行われるため、特権の厳格管理とAPI呼び出しの挙動監視が中心となります。

4. 重要ポイント

5. 関連する主なCWE

6. 関連する代表的なCVE

本手口はWindows APIの本来の仕様・機能を悪用することが多いですが、トークンの境界をバイパスして権限昇格を可能にする脆弱性も存在します。

実務上のアドバイス:
SOCやEDRの監視において、「サービスアカウント(LOCAL SERVICE や NETWORK SERVICE)として動作していたプロセス(例: IISやSQL Server)が、突如 NT AUTHORITY\SYSTEM 権限で cmd.exe や powershell.exe を子プロセスとして生成した」というログを検出した場合、ほぼ間違いなく Potato 系のツールによる T1134(アクセストークン操作)を用いた権限昇格攻撃が行われています。

該当プロセスのメモリダンプを取得して隔離するとともに、サービスアカウントの特権割り当て(特に SeImpersonatePrivilege)を速やかに見直すことが推奨されます。

分析

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

関連する CVE

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


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