トークン偽装
権限を悪用します
「トークン偽装」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。
Windowsアクセス トークン
すべてのプロセスは、ユーザー、グループ、権限を記述するアクセス トークンを保持しています。Windowsは偽装をサポートしており、プロセスは別のユーザーのトークンで動作できます。これを悪用すると、サービスアカウントをSYSTEMに昇格できます。
偽装権限
権限昇格に非常に有効なトークン権限が2つあります。SeImpersonatePrivilegeとSeAssignPrimaryTokenPrivilegeです。サービスアカウント(IIS、MSSQLなど)は通常SeImpersonateを持っており、「Potato」系のエクスプロイトがこれを悪用します。
whoami /priv
# SeImpersonatePrivilege EnabledPotatoファミリー
Potato系のエクスプロイトは、SYSTEMプロセスをだまして悪意あるローカルリスナーに認証させ、そのトークンを盗んで偽装します。亜種にはJuicyPotato、RoguePotato、PrintSpoofer、GodPotatoがあり、それぞれ適したWindowsのバージョンが異なります。
PrintSpoofer
PrintSpooferはPrint Spoolerの名前付きパイプを悪用してSYSTEMの認証を強制し、そのトークンを偽装してSYSTEMとしてコマンドを実行します。JuicyPotatoにパッチが適用された最新のWindows 10/Server 2019で動作します。
PrintSpoofer.exe -i -c cmd
# spawns a SYSTEM shell when you hold SeImpersonateJuicyPotato
JuicyPotatoはDCOM/BITSを悪用し、SYSTEMの認証をローカルリスナーに中継します。古いWindows(1809より前 / Server 2016)では安定して動作しますが、新しいビルドでは対策されたため、RoguePotatoやPrintSpooferが登場しました。
JuicyPotato.exe -l 1337 -p cmd.exe -t * -c {CLSID}中継の仕組み
概念的には、サービスアカウントであるあなたが、特権を持つWindowsコンポーネントに悪意のあるエンドポイントへの認証を行わせます。その認証を取得し、SeImpersonateを利用して新しいプロセスにSYSTEMトークンを付与します — これで即座にSYSTEMシェルを取得できます。
RottenPotato/RoguePotato
RottenPotatoが元祖であり、RoguePotatoはOXIDリゾルバーのリダイレクトを使って1809以降のDCOM修正を回避できるように改良されたものです。適切なPotatoを選ぶには、systeminfoで正確なビルド番号を確認する必要があります。
その他の危険な特権
なりすまし以外にも、SeBackupPrivilege/SeRestorePrivilege(任意のファイルの読み書き — SAMのダンプ)、SeDebugPrivilege(SYSTEMプロセスへのインジェクション)、SeTakeOwnershipに注意してください。それぞれが独立した権限昇格の経路になります。
Meterpreterによるトークン窃取
侵害後のフレームワークを使うと、トークンの悪用が容易になります。Meterpreterのincognitoは利用可能なトークンを一覧表示し、なりすますことができます。メモリ上にSYSTEMまたは管理者のトークンが存在すれば、直接窃取できます。
meterpreter > load incognito
meterpreter > list_tokens -u
meterpreter > impersonate_token "NT AUTHORITY\\SYSTEM"エクスプロイトとビルドの対応付け
Potato系の手法はバージョンに依存します。OSのビルドを確認してから、JuicyPotato(古いバージョン)、RoguePotato/PrintSpoofer(1809以降)、GodPotato(現行バージョンを幅広くサポート)を選択してください。適切なツールなら確実にSYSTEMを取得できますが、誤ったツールは単に失敗します。
防御と倫理
防御側は、SeImpersonateを付与するアカウントを制限し、速やかにパッチを適用し、不要な場合はPrint Spoolerを無効化し、不審なトークンの使用を監視します。これらの手法は、認可された業務の範囲内でのみ使用してください。
確認テスト
トークンなりすましに関する知識を確認しましょう。
まとめ
トークンのなりすましについて学びました。
- アクセストークンはアイデンティティを定義し、なりすましは悪用される可能性があります
- SeImpersonatePrivilegeによりPotato系エクスプロイトが可能になります
- 現行のWindowsではPrintSpoofer/RoguePotato、古いWindowsではJuicyPotatoを使用します
- その他の危険な特権には、SeBackup、SeDebug、SeTakeOwnershipがあります
次は、認証情報の収集です。
よくある質問
「トークン偽装」レッスンは無料ですか?
はい。「トークン偽装」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。
「トークン偽装」で何を学びますか?
権限を悪用します ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ethical Hacking Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「トークン偽装」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このEthical Hacking Academyレッスンでコードを書いて実行できますか?
はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。