
Exploit apenas de dados para CVE-2024-0582
Este exploit implementa um método de ataque Dirty Cred para obter acesso de escrita não autorizado ao /etc/passwd. Ao contrário de muitos exploits semelhantes que criam inúmeras páginas ou pulverizam agressivamente descritores de arquivos, esta abordagem segue um caminho mais direcionado para corromper as estruturas necessárias do kernel.
Definir Afinidade da CPU e Aumentar o Limite de FD
Garante desempenho estável e descritores de arquivos suficientes para a pulverização.
Inicializar io_uring
Cria uma instância io_uring e registra um buffer ring para uso de memória do kernel.
Desregistrar o Buffer Ring
Aciona a vulnerabilidade, deixando as estruturas de dados do kernel em um estado explorável.
Pulverização de Descritores de Arquivo
Abre inúmeros FDs para /etc/passwd, na esperança de corromper o objeto do kernel desejado.
Modificar Modo do Arquivo
Corrompe as flags f_mode para que /etc/passwd se torne gravável.
Escrever Entrada Backdoor
Insere evil::0:0:root:/root:/bin/bash no /etc/passwd.
io_uring vulnerável (testado em um kernel com o bug CVE-2024-0582)..rs).EXT4_FOPS_OFFSET no main.rs (o padrão é 0x122b3c0) dependendo da sua versão do Linux. Uma incompatibilidade pode fazer o exploit falhar ou se comportar incorretamente.Se o seu kernel exporta informações de símbolos e você tem as permissões adequadas (muitas vezes isso é restrito em sistemas de produção), você pode ler a partir de /proc/kallsyms:
Obtenha o endereço de _text:
grep " _text" /proc/kallsyms
Vamos chamar o endereço resultante de TEXT_ADDR.
Obtenha o endereço de ext4_file_operations:
grep ext4_file_operations /proc/kallsyms
Vamos chamar o endereço resultante de EXT4_FOPS_ADDR.
Subtraia:
EXT4_FOPS_OFFSET = EXT4_FOPS_ADDR – TEXT_ADDR