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を読み込もうとしている必要があります。
この場合の問題は、おそらくそれらのプロセスはすでに実行中であることです。サービスが不足している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は次のものでした:
タスクスケジューラ (Schedule)
WptsExtensions.dll
C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule
診断ポリシーサービス (DPS)
Unknown.DLL
C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork -p -s DPS
???
SharedRes.dll
C:\Windows\system32\svchost.exe -k UnistackSvcGroup
これを見つけた後、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)