Writable Sys Path +Dll Hijacking Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
もしあなたがシステムパスフォルダーに書き込むことができることを発見した場合(ユーザーパスフォルダーに書き込むことができる場合は機能しないことに注意)、システム内で特権を昇格させることができる可能性があります。
そのためには、Dll Hijackingを悪用することができ、あなたよりもより多くの特権を持つサービスやプロセスによって読み込まれるライブラリをハイジャックします。そして、そのサービスがおそらくシステム全体に存在しないDllを読み込もうとしているため、書き込むことができるシステムパスからそれを読み込もうとします。
Dll Hijackingとは何かについての詳細は、以下を確認してください:
Dll Hijacking最初に必要なのは、あなたよりも多くの特権を持つプロセスを特定することで、そのプロセスがあなたが書き込むことができるシステムパスからDllを読み込もうとしていることです。
この場合の問題は、おそらくそれらのプロセスはすでに実行中であることです。サービスが不足しているDllを見つけるために、プロセスが読み込まれる前にできるだけ早くprocmonを起動する必要があります。したがって、不足している.dllを見つけるために、次のことを行います:
フォルダーC:\privesc_hijacking
を作成し、パスC:\privesc_hijacking
をシステムパス環境変数に追加します。これを手動またはPSで行うことができます:
procmon
を起動し、Options
--> Enable boot logging
に移動し、プロンプトで OK
を押します。
その後、再起動します。コンピュータが再起動すると、procmon
はすぐにイベントの 記録 を開始します。
Windows が 起動したら procmon
を再度実行します。実行中であることを知らせ、イベントをファイルに保存するかどうかを 尋ねます。はい と答え、イベントをファイルに保存します。
ファイル が 生成されたら、開いている procmon
ウィンドウを 閉じ、イベントファイル を 開きます。
これらの フィルター を追加すると、書き込み可能なシステムパスフォルダーから プロセスが読み込もうとした すべてのDllが見つかります:
無料の 仮想(vmware)Windows 11マシン でこれを実行したところ、以下の結果が得られました:
この場合、.exe は無駄なので無視してください。見逃したDLLは以下のものでした:
サービス | Dll | CMDライン |
---|---|---|
タスクスケジューラ (Schedule) | WptsExtensions.dll |
|
診断ポリシーサービス (DPS) | Unknown.DLL |
|
??? | SharedRes.dll |
|
これを見つけた後、WptsExtensions.dllを利用して特権昇格する方法を説明している興味深いブログ記事を見つけました。これが今から 行うこと です。
したがって、特権を昇格させるために、ライブラリ WptsExtensions.dll をハイジャックします。パス と 名前 が分かれば、悪意のあるdllを生成するだけです。
これらの例のいずれかを使用してみることができます。リバースシェルを取得したり、ユーザーを追加したり、ビーコンを実行したりするペイロードを実行できます...
すべてのサービスが NT AUTHORITY\SYSTEM
で実行されているわけではなく、一部は NT AUTHORITY\LOCAL SERVICE
で実行されており、権限が少ないため、新しいユーザーを作成することはできません。
ただし、そのユーザーには seImpersonate
権限があるため、ポテトスイートを使用して特権を昇格させることができます。したがって、この場合、リバースシェルはユーザーを作成しようとするよりも良い選択です。
執筆時点で タスクスケジューラ サービスは Nt AUTHORITY\SYSTEM で実行されています。
悪意のあるDllを生成した後(私の場合はx64リバースシェルを使用し、シェルを取得しましたが、msfvenomからのものであるためDefenderに殺されました)、書き込み可能なシステムパスに WptsExtensions.dll という名前で保存し、コンピュータを再起動します(またはサービスを再起動するか、影響を受けたサービス/プログラムを再実行するために必要なことを行います)。
サービスが再起動されると、dllが読み込まれ実行されるはずです(procmon トリックを再利用して、**ライブラリが期待通りに読み込まれたかどうかを確認できます)。
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)