【Windows Token・UAC編】Windows特権の中枢を握る|CTF思考フレームワーク P04

Windows Token と UAC って、なんか聞いたことあるけど…?

Windows の特権の中枢。アクセストークン(Access Token)はユーザーの権限情報を保持し、UAC(User Account Control)は管理者権限の昇格確認。SeImpersonatePrivilege・SeDebugPrivilege を持つトークンを盗めば、SYSTEM 化が現実的です。
Windows Token と UAC は、権限管理の核心。SeImpersonatePrivilege(他人のトークンを使える)を持つサービスアカウントは、Potato 系攻撃(Hot/Rotten/Juicy/Rogue/Sweet Potato)で SYSTEM へ昇格可能。UAC bypass は ICMLuaUtil・Eventvwr・Fodhelper など数十の経路があります。
広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

Potato 攻撃って名前が可愛いけど、強力なんだ…
この記事は、CTF思考フレームワーク Privesc編 P04。Windows Token・UAC bypass の代表的手口(Potato シリーズ・UAC bypass テクニック)と、企業の検知・防御策(PAW・PsLockdownPolicy)を整理します。
Windows PrivEscの中核は「アクセストークン」。Linuxの uid/gid に相当しますが、もっと精緻で、もっと攻撃可能。Token Impersonation、UAC Bypass、Named Pipe…プロセス間でトークンを奪い合う独特の世界を整理します🪪
WindowsはトークンOSです。トークンを支配する者がシステムを支配します。
先に意味を押さえておくと読みやすい用語です。
- CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
- 権限昇格: 一般ユーザーから管理者権限など、より強い権限を得ることです。
- 横展開: 侵入後に別の端末やサーバーへ移動して被害範囲を広げる動きです。
- Kerberos: Windowsの社内ネットワークなどで使われる認証の仕組みです。
- UAC: Windowsで管理者権限が必要な操作を確認する保護機能です。
難易度:★★★(上級) / この枝ルートの記事は、必要な回だけ選んで読めます。
👀 観察フェーズ:まず何を見る?
プロセスの「Token + Integrity + Privileges」の三点で何ができるかが決まります。これを軸に攻撃面を考えます。
🤔 仮説フェーズ:攻撃者は何を考える?
攻撃者はまず whoami /priv で自分の特権セットを確認し、SeImpersonatePrivilege や SeAssignPrimaryTokenPrivilege が有効なら Potato 系で SYSTEM が取れると判断します。これらが無くても、Medium Integrity の管理者プロセスが稼働していれば fodhelper や ICMLuaUtil 経由の UAC Bypass で High Integrity に昇格できる可能性を疑います。さらに lsass のメモリにアクセスできれば、他ユーザーのトークンや TGT を引き抜いて成り済ますルートも検討します。つまり「現在の権限で触れるトークンと、自分が借用できる特権」を地図化することが、Windows 権限昇格の起点になります。
Windows PrivEscの上位パターンは、ほぼすべてトークンの操作に行き着きます。
🔬 検証フェーズ:どうやって確かめる?
最初に whoami /all と whoami /priv で現在のトークンに含まれる SID・グループ・特権を列挙し、Disabled 状態でも保持している特権を見落とさないようにします。次に Process Explorer や Get-Process | Select Name,Id,SessionId でセッション 0 のサービスプロセスを観察し、SeImpersonatePrivilege を持つ IIS/MSSQL/WinRM などのアカウントへ到達できるかを確認します。UAC の状態は reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System で ConsentPromptBehaviorAdmin と EnableLUA を読み、AutoElevate される実行ファイル一覧と突き合わせます。最後に PrintSpoofer や RoguePotato を検証用 VM で実行し、想定どおり SYSTEM のシェルが返るかを観察します。
⚔️ 攻撃フェーズ:実際の手口
典型例は、Web シェル経由で IIS の AppPool 権限を得たケースです。AppPool アカウントは SeImpersonatePrivilege を保持しているため、PrintSpoofer64.exe -i -c cmd を実行すれば SYSTEM 権限のシェルが即座に返ります。SYSTEM になった後は、reg save で SAM/SYSTEM/SECURITY を退避してオフラインで NT ハッシュを抽出し、Mimikatz の sekurlsa::logonpasswords で他ユーザーの平文・チケットも回収します。管理者アカウントだけがある環境では、fodhelper のレジストリ書き換えで AutoElevate を悪用し、UAC プロンプトなしに High Integrity プロセスを起動するのが定番ルートです。最終的に Domain Admin の TGT を抜き出し、横展開や Golden Ticket の準備に繋げます。
CTF{token_is_the_real_identity_in_windows}
Windowsの権限はファイルパーミッションよりも「トークン管理」に重みがあります。ここを掴むと深く読めるようになります。
🛡️ 防御フェーズ:どう守る?
まず SeImpersonatePrivilege を持つサービスアカウントを最小化し、IIS や MSSQL を Virtual Account や gMSA に切り替えて対話ログオンを禁止します。UAC は ConsentPromptBehaviorAdmin=2 の「常に確認」に変更し、Secure Desktop を有効化することで fodhelper 系のレジストリ Bypass を無効化できます。LSASS は RunAsPPL=1 で Protected Process Light として保護し、Credential Guard も併用してメモリからのトークン窃取を遮断します。検知面では Sysmon Event ID 1/10/11 と Defender for Endpoint の Behavioral Blocking を組み合わせ、PrintSpoofer の名前付きパイプ作成や fodhelper.exe の異常な親子プロセス関係をアラート化するのが効果的です。
🧪 検証用のLinuxラボを用意
権限昇格やエクスプロイトの練習は、許可を得た自分の検証環境で行うのがルール。💻 ConoHa VPSならUbuntuやCentOSをワンクリックで立てて、スナップショットも取れるので安心して試せます。
※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。
⚠️ よくある落とし穴
Windows 権限昇格の対策で頻出する失敗は、UAC を「最高」ではなく既定の通知レベルで放置することと、サービスアカウントを管理者グループに入れたまま運用することの 2 点に集約されます。前者は AutoElevate 可能な署名済みバイナリを悪用した Bypass を許し、後者は Web アプリから取れた小さな穴がそのまま SYSTEM への一本道になります。さらに Sysmon を未導入のまま EDR 単体に頼ると、Named Pipe の作成や CreateRemoteThread によるトークン操作の痕跡が残らず、事後調査で攻撃経路を再構築できなくなります。LAPS 未導入でローカル管理者パスワードが共通という構成は、1 台陥落が即ドメイン全体陥落に直結する典型的な悪手です。
- UACを「Notify me only when apps try to make changes」のデフォルトにしておく(Bypass技の温床)。
- SeImpersonateを持つサービスアカウントをユーザー兼用にする。
- EDR/Sysmonを未設定で運用し、トークン窃取の痕跡が残らない。
- LSA Protection(RunAsPPL)を有効化していない。
- Local Administrator Password を全PC共通にし、Pass-the-Hashで容易に横展開される。
- PowerShell実行ポリシーやWDACをBypassしやすい設定で運用。
🧰 ツール早見表
Windows トークンと UAC を扱う際に押さえておきたいのは、観察用と攻撃検証用、防御用の三系統です。観察では Sysinternals の Process Explorer と Process Hacker でトークン・整合性レベル・特権を可視化し、accesschk.exe でサービスの ACL を点検します。攻撃検証では PrintSpoofer・GodPotato・SweetPotato といった Potato 系ツールと、UACME のレジストリ Bypass モジュールが教材として有名です。防御側は Sysmon と Microsoft Defender for Endpoint で挙動を取り、PowerShell の Constrained Language Mode や WDAC で実行可能ファイルを制限します。下表は学習用途を想定した代表的な組み合わせです。
| ツール | 用途 | ひと言 |
|---|---|---|
| Process Hacker | プロセス・トークン詳細 | GUIで見ると理解が早い |
| Sysinternals (Process Explorer) | 標準ツール | トークン・スレッド観察 |
| Potato系(Print/Rogue/Sweet/God) | SYSTEM昇格 | 環境に応じて選定 |
| UACME | UAC Bypass技集 | 学習用、検出されやすい |
| Incognito (Meterpreter) | トークン操作 | 古典だが分かりやすい |
🎓 本気で学びたい人へ
Linuxとサーバ・セキュリティを仕事レベルで学びたい方へ。🎓 ササエルはインフラエンジニア向けスクールで、システム設計から防御設計まで広くカバーしています。
📚 もっと深く学びたい人へ
体系的に学ぶなら『ホワイトハッカー入門』、手を動かして覚えるなら『TryHackMeを使って身体で覚える攻撃手法と脆弱性』が定番。両方持っておくと、知識と実践の両輪で伸びます📚
📚 次に読みたい
- 【AD・Kerberos編】ドメイン全体を狙う攻防とBloodHoundで読む経路|CTF思考フレームワーク P05
- 【資格情報窃取編】LSASS・SAM・DPAPIから鍵を抜く流れと守り方|CTF思考フレームワーク #36
- 【DNS編】サブドメイン列挙とCT logが暴く組織の地図|CTF思考フレームワーク R01
✍️ 学んだことを発信する
学んだことをブログにまとめるなら、高速で安価なConoHa WINGが使いやすいです。



