Writable Sys Path +Dll Hijacking Privesc

htARTE(HackTricks AWS Red Team Expert) を使って、ゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

はじめに

システムパスフォルダに書き込みできることがわかった場合(ユーザーパスフォルダに書き込める場合は機能しません)、システム内で特権昇格が可能かもしれません。

そのためには、特権を持つサービスまたはプロセスロードしようとしているライブラリをハイジャックする Dll Hijacking を悪用することができます。そして、そのサービスが存在しない可能性が高いDllをロードしようとするため、システムパスからロードしようとすることができます。

Dll Hijacking とは何かの詳細については、以下を参照してください:

pageDll Hijacking

Dll Hijacking による特権昇格

不足しているDllの検出

最初に必要なのは、あなたよりも特権のあるプロセス書き込み可能なシステムパスからDllをロードしようとしているプロセスを特定することです。

この場合の問題は、おそらくこれらのプロセスがすでに実行されていることです。必要なDllを見つけるには、プロセスがロードされる前にできるだけ早く procmon を起動する必要があります。したがって、不足している.dll を見つけるには:

  • C:\privesc_hijacking フォルダを作成し、そのパス C:\privesc_hijackingシステムパス環境変数に追加します。これは手動で行うか、PS を使用して行うことができます:

# Set the folder path to create and check events for
$folderPath = "C:\privesc_hijacking"

# Create the folder if it does not exist
if (!(Test-Path $folderPath -PathType Container)) {
New-Item -ItemType Directory -Path $folderPath | Out-Null
}

# Set the folder path in the System environment variable PATH
$envPath = [Environment]::GetEnvironmentVariable("PATH", "Machine")
if ($envPath -notlike "*$folderPath*") {
$newPath = "$envPath;$folderPath"
[Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
}
  • procmon を起動し、Options --> Enable boot logging に移動して、プロンプトで OK を押します。

  • 次に、再起動します。コンピュータが再起動されると、procmon ができるだけ早くイベントの記録を開始します。

  • 一度 Windows起動したら procmon を実行し、実行中であることを通知され、イベントをファイルに保存するかどうかを尋ねられます。はいを選択し、イベントをファイルに保存します。

  • ファイル生成されたら、開いている procmon ウィンドウを閉じ、イベントファイルを開きます

  • 以下の フィルター を追加すると、書き込み可能なシステムパスフォルダから読み込もうとしたすべての Dll を見つけることができます:

不足している Dlls

無料の 仮想 (vmware) Windows 11 マシン でこれを実行した結果は次のとおりです:

この場合、.exe は無用なので無視し、不足している DLL は次のとおりです:

サービスDllCMD line

タスク スケジューラ (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 権限があるため、potato suite を使用して権限を昇格することができます。したがって、この場合、リバースシェルはユーザーを作成しようとするよりも良い選択肢です。

執筆時点では、タスク スケジューラ サービスは Nt AUTHORITY\SYSTEM で実行されています。

悪意のある Dll を生成した後(私の場合は x64 リバースシェルを使用し、シェルを取得しましたが、msfvenom からだったためディフェンダーによって殺されました)、それを書き込み可能なシステムパスに WptsExtensions.dll という名前で保存し、コンピュータを再起動します(またはサービスを再起動するか、影響を受けるサービス/プログラムを再実行するために必要な操作を実行します)。

サービスが再起動されると、dll が読み込まれ実行されるはずです(ライブラリが期待どおりに読み込まれたかどうかを確認するために procmon のトリックを再利用できます)。

**htARTE (HackTricks AWS Red Team Expert)** で**ゼロからヒーローまでのAWSハッキング**を学びましょう!

HackTricks をサポートする他の方法:HackTricks で企業を宣伝したり、PDF で HackTricks をダウンロードしたりするには、SUBSCRIPTION PLANS をチェックしてください!公式 PEASS & HackTricks スワッグを手に入れる独占的な NFTs コレクションである The PEASS Family を発見する💬 Discord グループ に参加するか、telegram グループ に参加するか、Twitter 🐦 @carlospolopm をフォローするHackTricks と HackTricks Cloud の github リポジトリに PR を提出して、あなたのハッキングトリックを共有する

Last updated