
Scanner e patcher automatizado baseado em SSH para vulnerabilidades LPE do kernel Linux CVE-2026-43284 e CVE-2026-43500, com descoberta de múltiplos hosts, detecção de escalonamento de privilégios e mitigação por bloqueio de módulos.
Aviso: Esta ferramenta foi projetada exclusivamente para auditorias de segurança interna legítimas. O uso sem autorização em sistemas que não são seus é uma violação. Desenvolvido por Gagaltotal666 - GhostGTR666.
Esta ferramenta identifica e mitiga duas vulnerabilidades de Escalação de Privilégio Local (LPE) no kernel Linux:
f4c50a4034e6 de 2026-05-05)/etc/modprobe.d/| Recurso | Descrição |
|---|---|
| Scanner Multi-Host | Escaneia sub-redes inteiras (CIDR) ou listas de IPs específicos em paralelo |
| Descoberta TCP Ping | Detecção automática de hosts ativos antes do SSH (pode ser ignorada com --skip-discovery) |
| Auditoria Profunda | Análise da versão do kernel, status dos módulos, patch upstream, nível de privilégio |
| Avaliação de Vulnerabilidades | Classificação automática de status: VULNERABLE, MITIGATED, LIKELY_PATCHED, POSSIBLY_SAFE, MODULE_NOT_LOADED |
| Mitigação Automatizada | Blacklist de módulos, unload e flush do page-cache com um único --patch |
| Injeção de Sudo Zero-Touch | Injeção automática de senha via sudo -S — sem necessidade de configurar NOPASSWD |
| Detecção Inteligente de Autenticação | Detecção automática de escalada de privilégio (root, sudo NOPASSWD, sudo com senha) |
| Validação de CLI | Pré-verificação de erros de digitação, validação de arquivos de chave SSH (evita known_hosts falsos) |
| Execução Paralela | Pool de threads para escaneamento e operações SSH (padrão de 20 workers) |
| Relatório JSON | Exportação de resultados completos da auditoria em formato JSON |
| Saída Formatada | Saída colorida + resumo PrettyTable (fallback automático se a biblioteca não existir) |
| Tratamento de Sinais | Desligamento gracioso via SIGINT/SIGTERM |
Python 3.8 ou superior
Bibliotecas: paramiko, colorama, prettytable
python3 -m venv .venv
source .venv/bin/activate
# Clonar repositório
git clone https://github.com/gagaltotal/dirtyfrag-scanner.git
cd dirtyfrag-scanner
# Instalar dependências
pip install -r requirements.txt
# ou
pip install paramiko colorama prettytable

Detecta vulnerabilidades sem alterar nada no servidor de destino.
# Usando Senha
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user ghostgtr666 --password 'server@02!'
# Usando Chave SSH
python3 dirtyfrag_scanner.py --subnet 10.134.205.0/24 --user root --key ~/.ssh/id_rsa
# Usando ambos (fallback de senha se a chave falhar)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --key ~/.ssh/id_rsa
# Escanear IPs Específicos (sem discovery)
python3 dirtyfrag_scanner.py --hosts 192.168.1.10,192.168.1.20 --user admin --password 'pass'
Executa a auditoria e aplica imediatamente a mitigação nos servidores vulneráveis.
# Patch usando Senha (INJEÇÃO AUTOMÁTICA DE SUDO, SEM PRECISAR DE NOPASSWD)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user ghostgtr666 --password 'server@02!' --patch
# Patch usando Login Root
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --patch
# Patch com workers personalizados (escaneamento mais rápido)
python3 dirtyfrag_scanner.py --subnet 192.168.0.0/16 --user admin --password 'pass' --patch --workers 50
--subnet CIDR Escanear sub-rede CIDR (ex.: 192.168.1.0/24)
--hosts IP[,IP,...] Escanear IPs específicos (separados por vírgula, sem espaços)
--user USERNAME Nome de usuário SSH (obrigatório)
--password PASSWORD Senha SSH (use aspas se houver caracteres especiais)
--key PATH Caminho para a chave privada SSH (ex.: ~/.ssh/id_rsa, não known_hosts!)
--port PORT Porta SSH personalizada (padrão: 22)
--timeout SECONDS Timeout de conexão SSH (padrão: 10, máximo: 300)
--skip-discovery Ignorar descoberta TCP ping, conectar SSH diretamente a todos os IPs
--workers NUM Número de workers SSH paralelos (padrão: 20, mínimo: 1, máximo: 100)
--patch Aplicar mitigação em hosts vulneráveis
--output FILE Salvar resultados da auditoria em arquivo JSON
Esta ferramenta foi projetada para funcionar em diversos ambientes de servidor SSH sem precisar modificar o sudoers:
Root Direto (recomendado)
--user root --key ~/.ssh/id_rsa --patch
Sudo NOPASSWD
--user ubuntu --key ~/.ssh/id_rsa --patch
/etc/sudoers já configurado com NOPASSWDsudo -nSudo com Injeção de Senha (Zero-Touch) ⭐
--user ubuntu --password 'mypass' --patch
/etc/sudoers padrão: ALL=(ALL) ALLsudo -S -p ''Híbrido (Chave + Senha)
--user ubuntu --key ~/.ssh/id_rsa --password 'mypass' --patch
Quando a flag --patch é usada, a ferramenta executa as seguintes etapas em sequência:
/etc/modprobe.d/dirtyfrag.conf antigo (se existir)/etc/modprobe.d/dirtyfrag.conf:
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
chmod 644 no arquivo de configuraçãormmod esp4 (ignorar se não estiver carregado)rmmod esp6 (ignorar se não estiver carregado)rmmod rxrpc (ignorar se não estiver carregado)echo 3 > /proc/sys/vm/drop_cachesObservação: Se o módulo ainda estiver carregado após rmmod, o usuário será informado de que uma reinicialização pode ser necessária.
──────────────────────────────────────────────────────────
Host 1/2: 10.134.205.163 (ubuntu-web-01)
──────────────────────────────────────────────────────────
OS : Ubuntu 22.04.4 LTS
Kernel : 6.8.0-111-generic
Priv : user
CVE-2026-43284 (xfrm-ESP) [POSSIBLY_SAFE]
esp4 carregado : não
esp6 carregado : não
Mitigação : NÃO aplicada
Patch upstream : NÃO incluído (<6.15)
CVE-2026-43500 (RxRPC) [VULNERABLE]
rxrpc carregado : SIM
Mitigação : NÃO aplicada
Observação: Não existe patch upstream ainda — a mitigação é a ÚNICA correção
[✓] Mitigação aplicada com sucesso!
[Verificação de privilégio] OK (usando: sudo (senha automática))
[Limpar caminho de destino] OK
[Escrever configuração do modprobe] OK
[Verificar configuração escrita] OK (3 entradas)
[Definir permissões do arquivo] OK
[Descarregar módulo esp4] Ignorado (não carregado ou já removido)
[Descarregar módulo esp6] Ignorado (não carregado ou já removido)
[Descarregar módulo rxrpc] Descarregado
[Limpar page cache] OK
[Verificação final] Arquivo de configuração válido
[Verificação final] Todos os módulos vulneráveis descarregados
[Resultado] Mitigação aplicada com sucesso
════ RESUMO ════
+----------------+-------------------+------+------------+------------+----------+
| Host | SO/Kernel | Priv | CVE-43284 | CVE-43500 | Patch? |
+----------------+-------------------+------+------------+------------+----------+
| 10.134.205.163 | Ubuntu 22.04.4 | user | POSSIBLY_S | VULNERABLE | SIM ✓ |
| 10.134.205.164 | Ubuntu 22.04.4 | user | VULNERABLE| VULNERABLE | FALHOU ✗ |
| 10.134.205.165 | Debian 12 | root | MITIGATED | MITIGATED | — |
+----------------+-------------------+------+------------+------------+----------+
════ ESTATÍSTICAS ════
Hosts escaneados : 3
Erros : 0
Vulneráveis 43284 : 1
Vulneráveis 43500 : 2
Mitigações OK : 1
Mitigações FALHAS : 1
└─ 1 falhou devido a privilégios insuficientes
Duração : 12.4s
Use a flag --output para salvar os resultados completos da auditoria:
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --output report.json
{
"scan_time": "2026-05-12 14:23:45",
"tool": "DirtyFrag Scanner v1.0",
"cves": ["CVE-2026-43284", "CVE-2026-43500"],
"total_hosts": 3,
"results": [
{
"host": "10.134.205.163",
"hostname": "ubuntu-web-01",
"os": "Ubuntu 22.04.4 LTS",
"kernel": "6.8.0-111-generic",
"kernel_v": [6, 8, 0],
"is_root": false,
"cve_43284": {
"status": "POSSIBLY_SAFE",
"esp4_loaded": false,
"esp6_loaded": false,
"mitigation_applied": false,
"upstream_patched": false
},
"cve_43500": {
"status": "VULNERABLE",
"rxrpc_loaded": true,
"mitigation_applied": false
},
"patch_applied": true,
"patch_msg": "...",
"error": null
}
]
}
# ERRADO
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa.pub
# CORRETO (use a chave privada, não .pub)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
O arquivo fornecido não é uma chave privada. Verifique:
.pub (chave pública)known_hosts-----BEGIN PRIVATE KEY----- ou -----BEGIN RSA PRIVATE KEY-----# ERRADO
python3 dirtyfrag_scanner.py --user ghostgtr666--password 'pass' --subnet 192.168.1.0/24
# CORRETO
python3 dirtyfrag_scanner.py --user ghostgtr666 --password 'pass' --subnet 192.168.1.0/24
O usuário não tem acesso sudo, ou a senha não foi fornecida quando necessária:
# Opção 1: Use root diretamente
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --patch
# Opção 2: Forneça a senha para injeção automática de sudo
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --patch
# Opção 3: Configure NOPASSWD em /etc/sudoers
echo 'admin ALL=(ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers
Aumente o --timeout:
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --timeout 30
Algumas distribuições pré-compilam o kernel sem os módulos esp4/esp6/rxrpc. Verifique manualmente:
# No host de destino
cat /proc/cmdline | grep -i module
lsmod | grep -E 'esp4|esp6|rxrpc'
python3 dirtyfrag_scanner.py \
--subnet 192.168.100.0/24 \
--user monitoring \
--password 'monitoring123' \
--workers 30 \
--output full-audit.json
python3 dirtyfrag_scanner.py \
--subnet 10.0.0.0/16 \
--user root \
--key ~/.ssh/prod_rsa \
--patch \
--workers 50 \
--output emergency-patch.json
python3 dirtyfrag_scanner.py \
--hosts 192.168.1.10,192.168.1.20,192.168.1.30 \
--user ubuntu \
--key ~/.ssh/dev_rsa \
--output critical-servers.json
python3 dirtyfrag_scanner.py \
--subnet 192.168.50.0/24 \
--user deploy \
--key ~/.ssh/deploy_ed25519 \
--password 'deploy@backup' \
--patch \
--output deploy-scan.json
Desenvolvido por Gagaltotal666 - GhostGTR666
GitHub: github.com/gagaltotal
Aviso: Esta ferramenta é apenas para auditorias de segurança legítimas e autorizadas. O usuário é responsável pelo uso desta ferramenta.