
Una demo de POC sobre CVE-2023-38831
Una demostración de prueba de concepto de CVE-2023-38831
Breve descripción de la vulnerabilidad
¿Cómo funciona la vulnerabilidad?

Primera parte de la explotación
La primera mitad tendrá lugar en la máquina del atacante para que comience la explotación.

1) En primer lugar, necesitaremos crear la carpeta de explotación que contenga el archivo adjunto malicioso, el "pdf", el código Python de explotación y el script bat mediante el siguiente comando: "git clone https://github.com/HDCE-inc/CVE-2023-38831"

2) Esto es lo que contiene la carpeta antes de que se realice cualquier explotación:

3) Obtener la dirección IP de la máquina Kali mediante ifconfig:

4) Luego modificaremos el script existente en script.bat con la siguiente línea de comando (imagen superior)
"start" es para que el proceso de la línea de comandos comience, "/min" es para minimizar el símbolo del sistema en segundo plano, ncat es para iniciar la conexión con la dirección IP del atacante a través del puerto 4444, y por último -e cmd.exe es para ejecutar la línea de comandos en el símbolo del sistema.

5) Aquí se explica el siguiente código de exploit.py:
1 se refiere a la entrada del usuario para el nombre del archivo señuelo (document.pdf), el nombre del archivo script (bat.script) y el resultado que la víctima ve como el archivo RAR; en este caso lo guardaremos como getrich.rar.
2 se refiere a las comprobaciones realizadas para validar si existen archivos en la carpeta CVE-2023-38831 de la máquina Kali Linux con la convención de nomenclatura correcta; si el nombre es incorrecto o hay un archivo duplicado, se imprimirá un mensaje de error y el programa se detendrá y saldrá.
3 se refiere a la creación de un destino de archivo temporal usando os.mkdir() para almacenar el archivo recién creado antes de comprimirlo en un archivo comprimido y usarlo como espacio de trabajo.
4 se refiere a una línea de copia, shutil.copyfile, para copiar tanto el archivo señuelo como el script a sus respectivos directorios dentro de "tmp" para asegurar que todos los archivos necesarios estén correctos y en su lugar antes de continuar con el siguiente paso. El siguiente paso, shutil.make_archive, crea un archivo comprimido desde "tmp" llamado "tmp.zip" que contiene todo en la carpeta "tmp".
5 se refiere al éxito de ejecutar el código anterior y crear un archivo RAR como exploit mediante la entrada del usuario del nombre del archivo señuelo, del archivo script y del nombre del archivo de salida.

6) Después de obtener nuestra dirección IP y modificar el script bat, podemos proceder a crear el archivo ".rar" malicioso ejecutando el comando "python exploit.py".
El exploit.py requerirá que el usuario ingrese 3 campos: el nombre del archivo señuelo existente (document.pdf), el nombre del archivo script que hemos modificado anteriormente (script.bat) y un nombre de archivo RAR de salida para engañar a la víctima y que descargue y haga clic en el archivo; se necesita un nombre adecuado y, en este caso, usamos "steps-to-generate-income.rar". CVE-2023-38831 está entonces listo para explotar la máquina de la víctima.
Segunda parte de la explotación
La segunda mitad tendrá lugar tanto en la máquina Kali como en la máquina de la víctima, que es una máquina virtual Windows 11.

1) Primero crearemos un sitio web malicioso o enviaremos el archivo adjunto a la víctima.
En el lado izquierdo, ejecutaremos "python -m http.server 8080". Este comando es un proceso para capturar qué dirección IP accede a esta URL maliciosa, para así poder conocer la dirección IP de la víctima y escuchar diferentes solicitudes HTTP como "200" de una dirección IP específica. En el lado derecho, la víctima es atraída a esta dirección IP y se le engaña para que descargue el archivo "steps-to-generate-income.rar".

2) Una vez que la víctima ha sido engañada para descargar el archivo malicioso "steps-to-generate-income.rar", se mostrará qué dirección IP ha descargado el archivo junto con la franja horaria. Con esta información, podemos obtener la dirección IP de la víctima.

3) Luego configuraremos un ncat en el puerto 4444 en la máquina Kali, ya que el puerto 4444 está sincronizado con el mismo puerto escrito en script.bat para ejecutarse en la máquina de la víctima.
Una vez que la víctima hace clic en document.pdf, script.bat ejecutará la línea de comandos y se minimizará en segundo plano en un instante, lo que permite una conexión de puerta trasera para el atacante.