
Epson Printer RAW Protocol Exploit Framework
Repositório: https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047
Script PoC: poc.py
Alvo Simulado: mock_printer.py
Autor: J4ck3LSyN
Este framework demonstra a vulnerabilidade CVE-2026-39047 - um estouro de buffer remoto em impressoras multifuncionais Epson (notavelmente a L14150 FL27PB) ao processar payloads malformados ou muito grandes sobre o protocolo de impressão TCP RAW (tipicamente porta 9100).
A exploração bem-sucedida pode levar à execução de código arbitrário no ambiente embarcado da impressora, permitindo:
O PoC foca em framing de transporte, ofuscação de payload, técnicas de fuzzing e comportamentos de pós-exploração encenada adequados para red teaming, pesquisa de vulnerabilidades e testes defensivos.
[!WARNING]
- Esta ferramenta pode (e irá) levar à execução remota de código (RCE) em impressoras vulneráveis.
- O uso, escaneamento ou exploração não autorizados de sistemas que você NÃO possui ou para os quais NÃO tem PERMISSÃO EXPLÍCITA POR ESCRITO para testar é ILEGAL e pode violar leis de fraude e abuso de computadores (ex.: CFAA nos EUA), regulamentações de proteção de dados e políticas organizacionais.
O autor NÃO ASSUME RESPONSABILIDADE por qualquer dano, perda de dados, interrupção de serviço ou consequências legais resultantes do uso ou uso indevido deste código.- Use apenas em ambientes de laboratório isolados com dispositivos que você controla.
- Sempre obtenha autorização explícita antes de qualquer teste.
- O código inclui modos dry-run e passivo para auxiliar na análise segura.
A divulgação responsável e o uso ético são fortemente incentivados.- Aplique patches em seus dispositivos prontamente quando atualizações do fornecedor estiverem disponíveis.
- Impressoras geralmente estão em redes internas com alta confiança e monitoramento limitado, tornando-as superfícies de ataque atraentes.
Referências:
PRT2).mock_printer.py para testes locais seguros (trava em payloads muito grandes).socket, asyncio, argparse, zlib, hashlib, etc.)Clone o repositório:
git clone https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047.git
cd CVE-2026-39047
Torne os scripts executáveis:
chmod +x poc.py mock_printer.py
(Opcional) Teste com a impressora simulada em um terminal:
./mock_printer.py
./poc.py -t <TARGET_IP> [OPTIONS]
Exemplos:
Teste básico de linha de base:
./poc.py -t 192.168.1.100
Execução de fuzzing:
./poc.py -t 192.168.1.100 --fuzz --techniques cyclic random
Sequestro encenado (apenas laboratório):
./poc.py -t 192.168.1.100 --hijack --objective shell --dry-run
Campanha completa com alvo simulado:
# Terminal 1
./mock_printer.py
# Terminal 2
./poc.py -t 127.0.0.1 --fuzz --hijack --objective stage1
bTransportFrame() encapsula payloads com cabeçalho PRT2 + comprimento.lObf): compressão zlib → máscara XOR dinâmica (derivada de semente) → Base64.gModernPayload() e gPostPayload() para vários padrões e comandos encenados.Consulte docstrings inline e comentários de código para detalhes mais aprofundados.
PRT2.Este PoC é fornecido estritamente para fins educacionais, de pesquisa e de teste de segurança autorizados. O uso indevido pode resultar em consequências graves. O proprietário do repositório não se responsabiliza por qualquer dano causado.
| Opção | Descrição |
|---|
-t, --target | Endereço IP do alvo (obrigatório) |
-p, --port | Porta (padrão: 9100) |
--passive | Modo de reconhecimento passivo (envia apenas payloads de sonda) |
--fuzz | Ativar fuzzing com múltiplas técnicas |
--hijack | Ativar encenação de pós-exploração |
--objective | stage1 | shell | beacon | persistence |
--callback | Identificador/string de callback opcional |
--capability | minimal | busybox | linux (afeta o encapsulamento de comandos) |
--dry-run | Gera payloads mas não envia |
--techniques | Lista separada por espaços (ex.: cyclic format sled random) |
--delay | Atraso entre payloads em segundos (padrão: 1.6) |