
Epson Printer RAW Protocol Exploit Framework
Repository: https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047
PoC-Skript: poc.py
Mock-Ziel: mock_printer.py
Autor: J4ck3LSyN
Dieses Framework demonstriert die CVE-2026-39047-Sicherheitslücke – einen Remote-Pufferüberlauf in Multifunktionsdruckern von Epson (insbesondere dem Modell L14150 FL27PB) bei der Verarbeitung fehlerhafter oder überdimensionaler Nutzdaten über das RAW-TCP-Druckprotokoll (typischerweise Port 9100).
Eine erfolgreiche Ausnutzung kann zur Ausführung beliebigen Codes in der eingebetteten Umgebung des Druckers führen und ermöglicht:
Der PoC konzentriert sich auf Transport-Framing, Payload-Verschleierung, Fuzzing-Techniken und gestaffeltes Post-Exploitation-Verhalten, geeignet für Red Teaming, Sicherheitsforschung und defensive Tests.
[!WARNING]
- Dieses Tool kann (und wird) zu Remote-Codeausführung (RCE) auf verwundbaren Druckern führen.
- Unbefugte Nutzung, Scannen oder Ausnutzen von Systemen, die Sie NICHT besitzen oder für die Sie KEINE EXPLIZITE SCHRIFTLICHE ERLAUBNIS zum Testen haben, ist ILLEGAL und kann gegen Computermissbrauchsgesetze (z. B. CFAA in den USA), Datenschutzbestimmungen und Organisationsrichtlinien verstoßen.
Der Autor übernimmt KEINE HAFTUNG für Schäden, Datenverluste, Dienstunterbrechungen oder rechtliche Konsequenzen, die aus der Nutzung oder dem Missbrauch dieses Codes entstehen.- Verwenden Sie das Tool nur in isolierten Laborumgebungen mit Geräten, die Sie kontrollieren.
- Holen Sie vor jedem Test stets eine ausdrückliche Genehmigung ein.
- Der Code enthält Trockenlauf- und passive Modi, um eine sichere Analyse zu unterstützen.
Verantwortungsvolle Offenlegung und ethische Nutzung werden ausdrücklich empfohlen.- Aktualisieren Sie Ihre Geräte umgehend, sobald Hersteller-Updates verfügbar sind.
- Drucker befinden sich oft in internen Netzwerken mit hohem Vertrauensniveau und begrenzter Überwachung, was sie zu attraktiven Angriffsflächen macht.
Referenzen:
PRT2-Protokoll).mock_printer.py für sicheres lokales Testen (stürzt bei überdimensionalen Payloads ab).socket, asyncio, argparse, zlib, hashlib etc.)Repository klonen:
git clone https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047.git
cd CVE-2026-39047
Skripte ausführbar machen:
chmod +x poc.py mock_printer.py
(Optional) Test mit Mock-Drucker in einem Terminal:
./mock_printer.py
./poc.py -t <ZIEL_IP> [OPTIONEN]
Beispiele:
Basistest:
./poc.py -t 192.168.1.100
Fuzzing-Durchlauf:
./poc.py -t 192.168.1.100 --fuzz --techniques cyclic random
Gestaffelte Übernahme (nur Labor):
./poc.py -t 192.168.1.100 --hijack --objective shell --dry-run
Vollständige Kampagne mit Mock-Ziel:
# Terminal 1
./mock_printer.py
# Terminal 2
./poc.py -t 127.0.0.1 --fuzz --hijack --objective stage1
bTransportFrame() umhüllt Payloads mit PRT2-Header + Länge.lObf): zlib-Kompression → dynamische XOR-Maske (aus Seed abgeleitet) → Base64.gModernPayload() und gPostPayload() für verschiedene Muster und gestaffelte Befehle.Weitere Details finden Sie in den Inline-Docstrings und Code-Kommentaren.
PRT2-Framing-Muster.Dieser PoC wird ausschließlich zu Bildungs-, Forschungs- und autorisierten Sicherheitstestzwecken bereitgestellt. Missbrauch kann schwerwiegende Folgen haben. Der Repository-Inhaber übernimmt keine Verantwortung für entstandene Schäden.
| Option | Beschreibung |
|---|
-t, --target | IP-Adresse des Ziels (erforderlich) |
-p, --port | Port (Standard: 9100) |
--passive | Passiver Aufklärungsmodus (nur Sonden-Payloads senden) |
--fuzz | Multi-Technik-Fuzzing aktivieren |
--hijack | Post-Exploitation-Staging aktivieren |
--objective | stage1 | shell | beacon | persistence |
--callback | Optionale Callback-Kennung/-Zeichenkette |
--capability | minimal | busybox | linux (beeinflusst Befehlsverpackung) |
--dry-run | Payloads erzeugen, aber nicht senden |
--techniques | Leerzeichengetrennte Liste (z. B. cyclic format sled random) |
--delay | Verzögerung zwischen Payloads in Sekunden (Standard: 1.6) |