
Windows Privilegesを(悪)使用してOS内の権限を昇格させることを可能にするエクスプロイトパス。
このアイデアは、Windows OSの特権を以下のようなパスに「変換」することです:
特権の一覧と説明は以下にあります:https://learn.microsoft.com/en-us/windows/win32/secauthz/privilege-constants
目標を複数の方法で達成できる場合、優先順位は
自分の特権は whoami /priv で確認できます。無効な特権も有効なものと同じように扱います。重要なのは、リストに特権があるかどうかだけです。
注1: 攻撃パスがトークン作成で終わる場合は、次のステップとしてそのトークンを使用して新しいプロセスを作成し、OSを制御できると仮定します。
注2:
a. NtQuerySystemInformation()/ZwQuerySystemInformation() を直接呼び出すために必要な特権はこちらにあります。
b. NtSetSystemInformation()/ZwSetSystemInformation() に必要な特権はこちらにリストされています。
注3: OSのみに焦点を当てています。特権がADでは機能するがOS自体では機能しない場合、OSでは使用されていないと説明しています。AD向けのシナリオをさらに深く掘り下げてくれる方がいるとありがたいです。
自由に貢献したり、提示されたアイデアについて議論してください。
クレジット:
| 特権 | 影響 | ツール | 実行パス | 備考 |
|---|
SeAssignPrimaryToken | 管理者 | サードパーティ製ツール | 「ユーザーがトークンを偽装し、potato.exe、rottenpotato.exe、juicypotato.exeなどのツールを使用してNTシステムに権限昇格できるようになる」 | 更新について Aurélien Chalot 氏に感謝します。近いうちにレシピのようなものに言い換えるよう試みます。 |
SeAudit | 脅威 | サードパーティ製ツール | セキュリティイベントログにイベントを書き込み、監査を欺いたり、古いイベントを上書きする。 | 独自のイベントの書き込みは Authz Report Security Event API で可能。- PoC(@daem0nc0re 氏による)を参照 |
SeBackup | 管理者 | サードパーティ製ツール | 1. HKLM\SAM および HKLM\SYSTEM レジストリハイブをバックアップする 2. SAM データベースからローカルアカウントのハッシュを抽出する 3. ローカルの Administrators グループのメンバーとして Pass-the-Hash を実行する 代替として、機密ファイルの読み取りに使用できる。 | 詳細については、SeBackupPrivilege ファイルを参照。- PoC(@daem0nc0re 氏による)を参照 |
SeChangeNotify | なし | - | - | すべてのユーザーが保持する特権。これを無効にすると、OS(Windows Server 2019)が起動不能になる可能性がある。 |
SeCreateGlobal | ? | ? | ? | |
SeCreatePagefile | なし | 組み込みコマンド | hiberfil.sys を作成し、オフラインで読み取り、機密データを探す。 | オフラインアクセスが必要であり、これは管理者権限につながる。 - PoC(@daem0nc0re 氏による)を参照 |
SeCreatePermanent | ? | ? | ? | |
SeCreateSymbolicLink | ? | ? | ? | |
SeCreateToken | 管理者 | サードパーティ製ツール | NtCreateToken を使用して、ローカル管理者権限を含む任意のトークンを作成する。- PoC(@daem0nc0re 氏による)を参照 | |
SeDebug | 管理者 | PowerShell | lsass.exe のトークンを複製する。 | スクリプトは FuzzySecurity にあります。 - PoC(@daem0nc0re 氏による)を参照 |
SeDelegateSession-UserImpersonate | ? | ? | ? | 列幅を狭くするために特権名を分割。 |
SeEnableDelegation | なし | - | - | この特権は Windows OS では使用されない。 |
SeImpersonate | 管理者 | サードパーティ製ツール | Potato ファミリー(potato.exe、RottenPotato、RottenPotatoNG、Juicy Potato、SweetPotato、RemotePotato0)、RogueWinRM、PrintSpoofer などのツール。 | SeAssignPrimaryToken と同様に、別のユーザーのセキュリティコンテキストでプロセスを作成することを可能にする(そのユーザーのトークンハンドルを使用)。 必要なトークンを取得するために、複数のツールや手法が使用される可能性がある。 |
SeIncreaseBasePriority | 可用性 | 組み込みコマンド | start /realtime SomeCpuIntensiveApp.exe | サーバーではより興味深い可能性がある。 |
SeIncreaseQuota | 可用性 | サードパーティ製ツール | CPU、メモリ、キャッシュの制限を変更し、OS が起動不能になる値にする。 | - セーフモードではクォータはチェックされないため、修復は比較的容易。 - 同じ特権がレジストリクォータの管理にも使用される。 |
SeIncreaseWorkingSet | なし | - | - | すべてのユーザーが保持する特権。メモリ管理機能の微調整呼び出し時にチェックされる。 |
SeLoadDriver | 管理者 | サードパーティ製ツール | 1. szkg64.sys などのバグのあるカーネルドライバをロードする2. ドライバの脆弱性を悪用する 代替として、 fltMC 組み込みコマンドを使用してセキュリティ関連のドライバをアンロードするために使用できる。例:fltMC sysmondrv | 1. szkg64 の脆弱性は CVE-2018-15732 としてリストされている2. szkg64 のエクスプロイトコードは Parvez Anwar 氏によって作成された |
SeLockMemory | 可用性 | サードパーティ製ツール | ページを移動してシステムメモリパーティションを枯渇させる。 | PoC は Walied Assar (@waleedassar) 氏によって公開された |
SeMachineAccount | なし | - | - | この特権は Windows OS では使用されない。 |
SeManageVolume | 管理者 | サードパーティ製ツール | 1. トークン内で特権を有効にする 2. SYNCHRONIZE | FILE_TRAVERSE で \.\C: へのハンドルを作成する3. FSCTL_SD_GLOBAL_CHANGE を送信して S-1-5-32-544 を S-1-5-32-545 に置き換える4. utilman.exe などを上書きする | FSCTL_SD_GLOBAL_CHANGE はこのコードで実行できる。 |
SeProfileSingleProcess | なし | - | - | この特権は、Prefetch、SuperFetch、ReadyBoost のパラメータを変更する前(およびごく限られたコマンドではクエリする前)にチェックされる。実際の影響は不明であり、調整される可能性がある。 |
SeRelabel | 脅威 | サードパーティ製ツール | 正規の管理者によるシステムファイルの変更 | 参照: MIC ドキュメント 整合性ラベルは、よく知られた ACL に加えて追加の保護を提供する。主なシナリオは2つ: - ブラウザ、PDF リーダーなど悪用可能なアプリケーションを使用した攻撃からの保護 - OS ファイルの保護。 トークンに SeRelabel が存在すると、ファイルやフォルダを含むリソースへの WRITE_OWNER アクセスが可能になる。残念ながら、High 未満の IL を持つトークンでは SeRelabel が無効になり、既に管理者でないユーザーには役に立たない。詳細については、@tiraniddo 氏による優れたブログ記事を参照。 |
SeRemoteShutdown | 可用性 | 組み込みコマンド | shutdown /s /f /m \\server1 /d P:5:19 | シャットダウン/再起動要求がネットワークから来た場合に特権が確認される。127.0.0.1 シナリオは調査中。 |
SeReserveProcessor | なし | - | - | この特権はもはや使用されておらず、winnt.h のいくつかのバージョンにのみ登場したと思われる。Microsoft が公開したソースコード こちら で確認できる。 |
SeRestore | 管理者 | PowerShell | 1. SeRestore 特権が存在する状態で PowerShell/ISE を起動する。 2. Enable-SeRestorePrivilege で特権を有効にする。 3. utilman.exe を utilman.old にリネームする 4. cmd.exe を utilman.exe にリネームする 5. コンソールをロックし、Win+U を押す | 一部の AV ソフトウェアが攻撃を検出する可能性がある。 代替方法は、同じ特権を使用して "Program Files" に格納されているサービスバイナリを置き換えること。 - PoC(@daem0nc0re 氏による)を参照 |
SeSecurity | 脅威 | 組み込みコマンド | - セキュリティイベントログのクリア: wevtutil cl Security- セキュリティログを20MBに縮小してイベントをすぐにフラッシュさせる: wevtutil sl Security /ms:0- セキュリティイベントログを読み取り、システム内の他のユーザーのプロセス、アクセス、アクションに関する知識を得る。 - 何がログに記録されているかを知ることで、隠れて行動する。 - 何がログに記録されているかを知ることで、大量のイベントを生成し、古いイベントを効果的にパージし、クリーンングの明白な証拠を残さない。 - オブジェクトの SACL の表示と変更(実際には監査設定) | PoC(@daem0nc0re 氏による)を参照 |
SeShutdown | 可用性 | 組み込みコマンド | shutdown.exe /s /f /t 1 | ほとんどの NtPowerInformation() レベルを呼び出すことを許可する。調査中。NtRaiseHardError() を呼び出して即座に BSOD とメモリダンプを引き起こし、機密情報の開示につながる可能性がある - PoC(@daem0nc0re 氏による)を参照 |
SeSyncAgent | なし | - | - | この特権は Windows OS では使用されない。 |
SeSystemEnvironment | 未知 | サードパーティ製ツール | この特権は、NtSetSystemEnvironmentValue、NtModifyDriverEntry およびその他のいくつかのシステムコールを使用して UEFI 変数を操作することを許可する。 | sysprep.exe を実行するにはこの特権が必要。 さらに: |
SeSystemProfile | ? | ? | ? | |
SeSystemtime | 脅威 | 組み込みコマンド | cmd.exe /c date 01-01-01cmd.exe /c time 00:00 | この特権によりシステム時刻を変更でき、イベントが誤った日時で保存されるため、監査証跡の整合性に問題が生じる可能性がある。 - 日時の形式に注意。確信がない場合は常に安全な値を使用すること。 - 特権名が大文字の "T" で表記され、 SeSystemTime として参照されることがある。 |
SeTakeOwnership | 管理者 | 組み込みコマンド | 1. takeown.exe /f "%windir%\system32"2. icacls.exe "%windir%\system32" /grant "%username%":F3. cmd.exe を utilman.exe にリネームする 4. コンソールをロックし、Win+U を押す | 一部の AV ソフトウェアが攻撃を検出する可能性がある。 代替方法は、同じ特権を使用して "Program Files" に格納されているサービスバイナリを置き換えること。 - PoC(@daem0nc0re 氏による)を参照 |
SeTcb | 管理者 | サードパーティ製ツール | ローカル管理者権限を含むようにトークンを操作する。 | 任意のトークンを作成するサンプルコード+exe は PsBits にあります。 |
SeTimeZone | 混乱 | 組み込みコマンド | タイムゾーンを変更する。tzutil /s "Chatham Islands Standard Time" | |
SeTrustedCredManAccess | 脅威 | サードパーティ製ツール | 資格情報マネージャーから資格情報をダンプする | @tiraniddo 氏による優れたブログ記事。 - PoC(@daem0nc0re 氏による)を参照 |
SeUndock | なし | - | - | ドッキング解除時に特権が有効になるが、アクセス許可/拒否のためにチェックされているのを観察したことはない。実際には使用されておらず、昇格にはつながらない。 |
SeUnsolicitedInput | なし | - | - | この特権は Windows OS では使用されない。 |