Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
mikrotrick-poc — # مختبر إثبات المفهوم (PoC) لتجاوز المصادقة بالمفتاح العام SSH في RouterOS CVE-2026-67276 | Kitploit
أدوات/GitHubGitHub/dinosn/mikrotrick-poc
تحليل الثغرات الأمنيةالاستغلالأمن الشبكاتاختبار الاختراقالمصادقة
GitHubdinosn/mikrotrick-poc

mikrotrick-poc

# مختبر إثبات المفهوم (PoC) لتجاوز المصادقة بالمفتاح العام SSH في RouterOS CVE-2026-67276

عرض المستودع
52منذ 12س 30دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

MikroTrick مختبر PoC — CVE-2026-67276 (تجاوز مصادقة المفتاح العام SSH في RouterOS)

للاستخدام المخبري فقط. قم بالتشغيل حصريًا ضد نسخ RouterOS التي تمتلكها. مهاجمة الأجهزة التي لا تمتلكها جريمة (CFAA، المادة 267 البولندية، وما يعادلها).

الخلفية

كشف CERT PL (2025-09-05) عن ست ثغرات في RouterOS، تم استغلالها بنشاط في البرية كسلسلة "MikroTrick" (استيلاء كامل على الجهاز دون مصادقة عندما يكون SSH قابلًا للوصول عبر الإنترنت). تم إصلاحها بواسطة MikroTik في 2025-09-03 في 7.25beta3 / 7.24.2 / 7.23.4 / 6.49.21.

CVEالنوعالعيب الأساسي
2026-67276CWE-347 (هذا PoC)فحوصات مطابقة مفاتيح مصادقة SSH (نوع المفتاح، المعامل) لكنها تتجاهل الأس؛ التحقق من التوقيع يستخدم المفتاح المقدم من العميل ⇒ تزوير e=1
2026-86060CWE-88حقن وسائط عبر اسم مستخدم يبدأ بحرف محظور (-2 شوهد في سجلات الهجوم) ⇒ تغيير قناع السياسة ⇒ تصعيد الامتيازات
2026-67279CWE-841يدخل SSH بروتوكول الاتصال بعد إعادة مفتاح يطلبها العميل دون إكمال مصادقة المستخدم ⇒ تنفيذ غير مصادق في مساحة الملفات
2026-67277CWE-306حالة ما قبل المصادقة لاختبار النطاق الترددي + كشف مخزن مؤقت غير مهيأ + تجاوز سفلي للحجم ⇒ تسرب ذاكرة النواة / إعادة تشغيل
2026-67278CWE-347X.509 يقبل توقيعات RSA/PKCS#1v1.5 مشوهة؛ مرساة ثقة e=3 ⇒ تزوير وسيط موثوق
2026-67281CWE-824مؤشر رئيسي قديم غير مهيأ في WebFig /jsproxy + هروب مسار ⇒ قراءة ملفات الجذر

النطاقات المعرضة (جميعها ستة): [7.24, 7.24.2)، [7.0.0, 7.23.4)، [6.0.0, 6.49.21).

آلية CVE-2026-67276

  1. يطابق RouterOS كتلة المفتاح العام SSH المقدمة مع مفتاح المستخدم المصرح به بواسطة (نوع المفتاح، المعامل) — لا تتم مقارنة الأس.
  2. يستخدم التحقق من التوقيع المفتاح المقدم من العميل، أي الأس من كتلة المهاجم.
  3. تقديم {ssh-rsa, e=1, n=الضحية} يجعل sig^1 mod n == sig، لذا فإن "التوقيع" الصحيح هو ببساطة EMSA-PKCS1-v1_5(hash, authdata) — قابل للحساب من قبل أي شخص يعرف معامل الضحية العام. لا حاجة لمفتاح خاص.
  4. النتيجة: قناة أوامر SSH كمستخدم الهدف.

الشروط المسبقة (الحد الأدنى من الإفصاح نفسه): اسم مستخدم الهدف + معامل RSA العام المصرح به لذلك المستخدم.

الحد الأدنى من المعلومات المطلوبة لإعادة الإنتاج

  1. الهدف: أي RouterOS في النطاقات المعرضة، SSH قابل للوصول (مخبريًا: صورة CHR في QEMU مع KVM؛ أجهزة حقيقية مكافئة).
  2. اسم المستخدم لحساب بمفتاح RSA مصرح به.
  3. معامل RSA n لذلك المفتاح المصرح به (من .pub مسرب/ملتقط، سجلات توفير، أو --modulus-hex). هذا هو المدخل الوحيد شبه السري؛ المفتاح الخاص غير مطلوب أبدًا.
  4. سلوك الخادم المؤكد من الإفصاح (العيب نفسه، من CERT PL): المطابقة = (النوع، n)، التحقق من الأس = المقدم من العميل.
  5. عميل يمكنه تقديم كتلة مفاتيح عشوائية وبايتات توقيع عشوائية (paramiko + خطاف ForgeKey — OpenSSH القياسي لا يمكنه).
  6. خوارزمية التوقيع التي يقبلها الخادم (ssh-rsa على 6.x، rsa-sha2-256 أيضًا على 7.x).

الملفات

  • forge_67276.py — بدائي: تحليل مفاتيح OpenSSH العامة، مشفر EMSA RFC 8017، بناة كتل/توقيعات مزورة، مدقق مرجعي RFC 8017.
  • selftest.py — إثبات محلي، بدون موجه: المشفر مطابق بايتًا لبايت لـ OpenSSL (عبر انعكاس التوقيع الحقيقي)، التوقيع المزور يتحقق عند e=1 وليس عند 65537، محاكاة كاملة لشكل الأسلاك RFC 4252 §7. جميع الفحوصات الـ 15 ناجحة PASS.
  • poc_67276.py — عميل paramiko ينفذ التجاوز (تثبيت الخوارزمية لكل اتصال؛ --lab-i-own-this-target مطلوب).
  • console_setup.py — إعداد CHR لمرة واحدة عبر qemu serial telnet (جلب مفتاح الضحية عبر 10.0.2.2، استيراد للمشرف، تمكين ssh).
  • sanity_real_key.py — تحكم: مصادقة المفتاح العام العادية يجب أن تنجح أولًا.
  • victim_rsa / victim.pub — زوج مفاتيح "ضحية" 2048-بت قابل للرمي؛ مستبعد عمدًا من Git.

الإعداد المحلي

root@kitploit:~
python3 -m venv .venv
./.venv/bin/python -m pip install -r requirements.txt
ssh-keygen -q -t rsa -b 2048 -N '' -C victim-key -f victim_rsa

المختبر (مجهز على [email protected])

  • Kali x86_64، QEMU 11.0.1 + KVM، /root/mikrotrick-lab/، جسر المضيف br0 (192.168.100.1/24) مع taps tap0-tap3؛ dnsmasq على br0 مع عقود إيجار لكل MAC.
VMالصورةIP الضيفMACنفق جانب Mac
chr-6.49.206.x معرض192.168.100.1152:54:00:aa:00:11127.0.0.1:2222
chr-6.49.216.x مصحح192.168.100.1252:54:00:aa:00:12127.0.0.1:2223
chr-7.23.37.x معرض192.168.100.1352:54:00:aa:00:13127.0.0.1:2224
chr-7.23.47.x مصحح192.168.100.1452:54:00:aa:00:14127.0.0.1:2225
  • الحالة المقصودة للضيف: بطاقة شبكة e1000، عنوان IP ثابت للضيف، كلمة مرور المشرف labpass123، ومفتاح الضحية مستورد للمشرف. تم دفع تغييرات كلمة المرور الإجبارية عند أول تسجيل دخول عبر SSH (bootstrap_password.py يقرأ الحوار) أو مراقب QEMU sendkey (mon_type.py) — وحدة التحكم التسلسلية لـ CHR معطلة افتراضيًا؛ وحدة تحكم VGA قابلة للقراءة فقط عبر مراقب screendump.
  • النفق من Mac: ssh -N -L 2222:192.168.100.11:22 -L 2223:192.168.100.12:22 -L 2224:192.168.100.13:22 -L 2225:192.168.100.14:22 [email protected]

إعادة التشغيل (مثال، VM3):

root@kitploit:~
qemu-system-x86_64 -enable-kvm -m 512 -smp 2 -name chr-7.23.3 \
  -drive file=/root/mikrotrick-lab/chr-7.23.3.img,format=raw,if=virtio \
  -netdev tap,id=n2,ifname=tap2,script=no,downscript=no \
  -device e1000,netdev=n2,mac=52:54:00:aa:00:13 \
  -display none -monitor unix:/root/mikrotrick-lab/mon3.sock,server,nowait &
root@kitploit:~
./.venv/bin/python import_key.py 127.0.0.1 admin labpass123 victim.pub 2224
./.venv/bin/python sanity_real_key.py 127.0.0.1 2224 victim_rsa admin   # خط الأساس
./.venv/bin/python poc_67276.py --host 127.0.0.1 --port 2224 \
    --username admin --pubkey victim.pub --algos rsa-sha2-256,ssh-rsa \
    --exp-enc aligned --exec '/system resource print' --lab-i-own-this-target

النتائج المرصودة (إعادة تحقق مستقلة 2026-09-06)

الهدفمفتاح خاص حقيقي (خط الأساس)مفتاح e=1 مزور (PoC)
7.23.3مصادقة OKمصادقة OK + تنفيذ /system resource print — CVE مؤكد
7.23.4 (مصحح)مصادقة OKمرفوض
6.49.20مصادقة OKمرفوض (انظر الفارق الدقيق)
6.49.21 (مصحح)خط أساس غير صالحغير قابل للتفسير؛ الضيف قبل مصادقة SSH none

بالنسبة لزوج 7.x، ينجح خط الأساس بالمفتاح الحقيقي على كلا البنائين، مصادقة SSH none مرفوضة، تزوير بمعامل خاطئ مرفوض بواسطة 7.23.3، وتزوير بالمعامل الصحيح ينجح فقط على 7.23.3. هذه مقارنة صحيحة بين معرض ومصحح.

لم يتم تجهيز ضيف 6.49.21 كما هو موثق أثناء إعادة التحقق المستقلة: بقي admin منتهي الصلاحية، /user ssh-keys print detail كان فارغًا، وطلب SSH none بدون بيانات اعتماد نفذ أوامر. مفاتيح RSA حقيقية غير ذات صلة ومفاتيح e=1 بمعامل خاطئ بدت أيضًا ناجحة. أعد تجهيز هذا الضيف وتحقق من رفض none ومفتاح غير ذي صلة قبل استخدامه كعنصر تحكم مصحح.

فارق النسخة الدقيق: على 6.49.20 ترفض مطابقة جانب الخادم كتلة e=1 (/log ssh,debug: can't find matching key for user: admin) — إغفال الأس المكشوف لم يكن قابلاً للملاحظة في مطابق 6.x على الرغم من أن النطاق الشامل لـ CERT يسرد [6.0.0, 6.49.21). مؤكد معرض: 7.23.3. مؤكد مصحح: 7.23.4. حالة مختبر 6.49.21 الحالية لا تثبت أي نتيجة. نشاط MikroTrick في البرية استهدف أيضًا أجهزة 7.x.

اكتشاف تنسيق الأسلاك (RFC 8332): سلسلة النوع الداخلية للكتلة تبقى ssh-rsa حتى لخوارزميات توقيع rsa-sha2-256/512؛ خوارزمية التوقيع تذهب فقط في حقل الخوارزمية الخارجي. تجاهل هذا يجعل الخادم يفصل في منتصف مصادقة المستخدم (خطأ تحليل الكتلة) — لوحظ على كل من 6.x و 7.x. يتعامل ForgeKey الخاص بـ PoC مع هذا، و --exp-enc aligned|canonical يبدل عرض mpint لـ e=1 (1 مقابل 3 بايتات). على 7.23.3 كلا العرضين يصادقان — المطابق يحلل الأس ويتجاهل قيمته حقًا. على 6.49.20 لا شيء يصادق (can't find matching key) — انظر فارق النسخة أعلاه. /system logging add topics=ssh,debug + /log print على جانب الخادم مع hexdumps الحزم كشف كل هذا.

قيم SHA-256 لأرشيف الصور المصدرية المستخدمة في هذا المختبر:

root@kitploit:~
a954ab0002a83de5e4c02110f560d0bf622e7d21916088aaacda6baaba88cf4a  chr-6.49.20.img.zip
6dcfb8674fa7964bf92ce849fbb0ba8147a5cf3d7a1ba595e24ce3e615569188  chr-6.49.21.img.zip
646764fb0a53e9b5a056cb9cf7420eb1629031096c7268c99fb9216c07f8e98c  chr-7.23.3.img.zip
0d32a8da0950dee71e751281c39063f2bebee4b542291aedecc9dbfbe5d60c9d  chr-7.23.4.img.zip

ملاحظات دفاعية (CERT PL)

  • صحيح فورًا: 7.25beta3 / 7.24.2 / 7.23.4 / 6.49.21.
  • مؤقتًا: قيد SSH/WWW/اختبار النطاق الترددي لشبكات الإدارة الموثوقة؛ تجنب SSH/TLS المبدوء من RouterOS من الأجهزة غير المصححة.
  • مؤشرات الاختراق IOCs: سطور السجل login failure for user -2 via ssh، user <name> added by ssh:-2@<ip>؛ مستخدم غير معروف بصلاحيات عالية ops؛ علامة /system/device-mode/print "Flagged" (تشير إلى الاختراق، غيابها لا يثبت شيئًا). عناوين IP المرصودة للمهاجمين: 82.192.72.4، 103.102.31.18.

المصادر

  • استشارة CERT PL: https://cert.pl/en/posts/2026/09/vulnerabilities-in-mikrotik-routeros-actively-exploited/
  • صفحة CVE لـ CERT PL: https://cert.pl/en/posts/2026/09/mikrotik-routeros-cve/
  • نشرة MikroTik (2026-09-03): https://mikrotik.com/supportsec/september-2026-vulnerability/
  • آلية "Flagged": https://manual.mikrotik.com/docs/system-information-and-utilities/device-mode#flagged-status
تنزيل الأداة