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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
rdpscan-BlueKeep — ماسح سريع لثغرة CVE-2019-0708 "BlueKeep". | Kitploit
أدوات/GitHubGitHub/gh0st0ne/rdpscan-bluekeep
الاستطلاعماسحات الثغرات الأمنيةالاستغلالجمع المعلوماتأمن الشبكاتاختبار الاختراق
GitHubgh0st0ne/rdpscan-bluekeep

rdpscan-BlueKeep

ماسح سريع لثغرة CVE-2019-0708 "BlueKeep".

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Windows download macOS download Linux download Follow

rdpscan لثغرة CVE-2019-0708 bluekeep

هذه أداة فحص سريعة وبسيطة لثغرة CVE-2019-0708 في سطح المكتب البعيد من مايكروسوفت. حاليًا، هناك حوالي 900,000 جهاز على الإنترنت العام معرّض لهذه الثغرة، لذا يتوقع الكثيرون ظهور دودة قريبًا مثل WannaCry وnotPetya. لذلك، افحص شبكاتك وطبّق التصحيحات (أو على الأقل فعّل NLA) على الأنظمة المعرّضة للخطر.

هذه أداة تعمل عبر سطر الأوامر. يمكنك تنزيل الكود المصدري وتجميعه بنفسك، أو تنزيل أحد الملفات الثنائية المجمّعة مسبقًا لنظامي Windows أو macOS من الرابط أعلاه.

تعتمد هذه الأداة كليًا على تصحيح rdesktop من https://github.com/zerosum0x0/CVE-2019-0708. لقد قمت ببساطة باقتطاع الكود بحيث يمكنني تجميعه بسهولة على macOS وWindows، بالإضافة إلى إضافة إمكانية فحص أهداف متعددة.

الحالة

هذه الأداة عمرها بضعة أيام فقط وهي تجريبية. ومع ذلك، أقوم باختبارها عبر فحص الإنترنت بالكامل (بمساعدة masscan، لذلك أعمل على حل الكثير من المشكلات بسرعة كبيرة. يمكنك محاولة التواصل معي على تويتر (@erratarob) للحصول على المساعدة/التعليقات.

  • 2019-05-38 - تحسين أوصاف نتائج المخرجات، بالإضافة إلى توثيق معناها (انظر أدناه).
  • 2019-05-27 - إصدار ملفات ثنائية لنظامي Windows وmacOS (انقر على الشارات أعلاه).
  • 2019-05-26 - إصلاح مشكلات الشبكة في Windows
  • 2019-05-25 - يعمل Linux وmacOS بشكل جيد، بينما يعاني Windows من بعض أخطاء الشبكة
  • 2019-05-24 - يعمل على Linux وmacOS، ويوجد في Windows بعض أخطاء التجميع
  • 2019-05-23 - أعمل حاليًا على macOS داخل XCode

الاستخدام الأساسي

لفحص شبكة، قم بتشغيله كما يلي:

root@kitploit:~
rdpscan 192.168.1.1-192.168.1.255

ينتج عن ذلك واحدة من 3 نتائج لكل عنوان:

  • SAFE - إذا تبيّن أن الهدف مُصحَّح أو على الأقل يتطلب CredSSP/NLA
  • VULNERABLE - إذا تم تأكيد أن الهدف معرّض للثغرة
  • UNKNOWN - إذا لم يستجب الهدف أو حدث خطأ بروتوكولي

عندما لا يوجد شيء على عنوان IP هدف، كانت الإصدارات الأقدم تطبع الرسالة "UNKNOWN - connection timed out". عند فحص الشبكات الكبيرة، ينتج عن ذلك فيض من المعلومات عن أنظمة لا تهمك. لذلك، لا يُنتج الإصدار الجديد هذه المعلومات افتراضيًا إلا إذا أضفت -v (للإسهاب) في سطر الأوامر.

يمكنك زيادة سرعة فحص الشبكات الكبيرة بزيادة عدد العمال:

root@kitploit:~
rdpscan --workers 10000 10.0.0.0/8

ومع ذلك، على جهازي، ينتج حوالي 1500 عامل فقط، بسبب قيود النظام، بغض النظر عن مدى ارتفاع هذه المعلمة.

يمكنك زيادة السرعة أكثر باستخدام هذا بالتزامن مع masscan، كما هو موضح في القسم أدناه.

تفسير النتائج

هناك ثلاثة استجابات عامة:

  • SAFE - وتعني أن الهدف غالبًا مُصحَّح أو غير معرّض للثغرة.
  • VULNERABLE: وتعني أننا أكدنا أن الهدف معرّض لهذه الثغرة، وأنه عند وصول الدودة، سيُصاب على الأرجح.
  • UNKNOWN: وتعني أننا لا نستطيع التأكيد بأي اتجاه، عادةً لأن الهدف لا يستجيب أو لا يشغّل RDP، وهو ما يمثل الغالبية العظمى من الاستجابات. أيضًا، عندما تكون الأهداف منهكة الموارد أو تواجه مشكلات في الشبكة، سنحصل على الكثير من هذه النتائج. أخيرًا، أخطاء البروتوكول مسؤولة عن جزء كبير منها. في حين أن الاستجابات الرئيسية الثلاث هي SAFE وVULNERABLE وUNKNOWN، فإنها تحتوي على نص إضافي يشرح التشخيص. يصف هذا القسم السلاسل النصية المختلفة التي ستراها.

SAFE

هناك ثلاثة أسباب رئيسية تجعلنا نعتقد أن الهدف آمن:

  • SAFE - Target appears patched يحدث هذا عندما لا يستجيب الهدف للطلب المُطلق. وهذا يعني أنه نظام Windows تم تصحيحه، أو نظام لم يكن معرّضًا للثغرة من الأساس، مثل Windows 10 أو Unix.
  • SAFE - CredSSP/NLA required يعني ذلك أن الهدف يتطلب أولاً مصادقة مستوى الشبكة (Network Level Authentication) قبل أن يمكن إنشاء اتصال RDP. لا يمكن للأداة تجاوز هذه النقطة بدون بيانات اعتماد شرعية، وبالتالي لا يمكنها تحديد ما إذا كان الهدف قد تم تصحيحه. ومع ذلك، لا يمكن للمهاجمين أيضًا تجاوز هذه النقطة لاستغلال الأنظمة المعرّضة للخطر، لذا فمن المرجح أنك "آمن". لكن عند ظهور أدوات الاستغلال، سيتمكن المخترقون الداخليون الذين لديهم أسماء مستخدمين/كلمات مرور صالحة من استغلال النظام إذا لم يكن مُصحَّحًا.
  • SAFE - not RDP يعني هذا أن النظام لا يستخدم RDP، لكن لديه خدمة أخرى تستخدم نفس المنفذ، وتنتج استجابة ليست RDP بوضوح. الأمثلة الشائعة هي HTTP وSSH. لاحظ مع ذلك أنه بدلاً من بروتوكول قابل للتحديد، قد يستجيب الخادم بحزمة RST أو FIN. تُعرَّف هذه الحالات بأنها UNKNOWN بدلاً من SAFE/

VULNERABLE

هذا يعني أننا أكدنا أن النظام معرّض لهذه الثغرة.

  • VULNERABLE - got appid هناك استجابة واحدة فقط عندما يكون النظام معرّضًا للثغرة، وهي هذه.

UNKNOWN

هناك عدد لا يُحصى من الاختلافات لحالة UNKNOWN:

  • UNKNOWN - no connection - timeout هذه هي الاستجابة الأكثر شيوعًا بفارق كبير، وتحدث عندما لا يصدر عن عنوان IP الهدف أي استجابة على الإطلاق. في الواقع، إنها شائعة جدًا لدرجة أنه عند فحص نطاقات كبيرة من العناوين، يتم عادةً حذفها. يجب عليك إضافة العلم -v (verbose) لتفعيلها.
  • UNKNOWN - no connection - refused (RST) هذه هي ثاني أكثر الاستجابات شيوعًا بفارق كبير، وتحدث عندما يكون الهدف موجودًا ويستجيب لحركة مرور الشبكة، لكنه لا يشغّل RDP، لذلك يرفض الاتصال بحزمة TCP RST.
  • UNKNOWN - RDP protocol error - receive timeout هذه هي ثالث أكثر الاستجابات شيوعًا، وتحدث عندما ننجح في إنشاء اتصال RDP، لكن الخادم يتوقف بعد ذلك عن الاستجابة لنا. يعود ذلك إلى أخطاء الشبكة أو عندما يكون النظام الهدف محمّلًا بشكل زائد لسبب ما. كما يمكن أن يكون بسبب أخطاء شبكة من طرفنا، مثل عندما تكون خلف NAT وتحمّله بعدد كبير جدًا من الاتصالات.
  • UNKNOWN - no connection - connection closed يعني هذا أننا أنشأنا اتصالًا (TCP SYN-ACK)، لكن الاتصال يُغلق بعد ذلك فورًا (بواسطة RST أو FIN). هناك أسباب عديدة لحدوث ذلك، لا يمكننا التمييز بينها:
    • النظام يشغّل RDP، لكنه يغلق الاتصال لسبب ما، ربما بسبب نفاد الموارد.
    • النظام لا يشغّل RDP، ولا يستسيغ طلب RDP الذي نرسله إليه، فبدلاً من إرسال رسالة خطأ لطيفة (والتي كانت ستؤدي إلى SAFE - not RDP)، يغلق الاتصال فجأة.
    • بعض الأجهزة الوسيطة، مثل IPS أو جدار حماية أو NAT، أغلقت الاتصال لأنها اعتبرته عدائيًا، أو نفدت مواردها.
    • سبب آخر لم أحدده بعد؛ هناك الكثير من الأشياء الغريبة التي تحدث عندما أفحص الإنترنت.
  • UNKNOWN - no connection - host unreachable (ICMP error) الشبكة البعيدة تبلغ أن المضيف لا يمكن الوصول إليه أو أنه لا يعمل. حاول مرة أخرى لاحقًا إذا كنت تعتقد أن هذا المضيف يجب أن يكون نشطًا.
  • UNKNOWN - no connection - network unreachable (ICMP error) هناك خطأ شبكة (مؤقت) في الطرف البعيد، حاول مرة أخرى لاحقًا إذا كنت تعتقد أن تلك الشبكة يجب أن تعمل.
  • UNKNOWN - RDP protocol error يعني هذا أن بعض الفساد حدث في بروتوكول RDP، إما لأن الطرف البعيد يطبّقه بشكل خاطئ (وليس نظام Windows)، أو لأنه يتعامل مع خطأ شبكة مؤقت بشكل سيئ، أو لسبب آخر.
  • UNKNOWN - SSL protocol error منذ Windows Vista، يستخدم RDP بروتوكول STARTTLS للعمل عبر SSL. هذه الطبقة لها مشاكلها الخاصة كما هو مذكور أعلاه، وتشمل التعامل السيئ مع أخطاء الشبكة الأساسية، أو محاولة التواصل مع أنظمة لديها نوع من عدم التوافق. إذا حصلت على رسالة خطأ طويلة جدًا هنا (مثل SSL3_GET_RECORD:wrong version)، فذلك لأن الطرف الآخر لديه خلل في SSL، أو أن مكتبة SSL الخاصة بك التي تستخدمها بها خلل.

الاستخدام مع masscan

أداة rdpscan هذه بطيئة إلى حد ما، إذ تفحص فقط بضع مئات من الأهداف في الثانية. يمكنك بدلاً من ذلك استخدام masscan لتسريع الأمور. أداة masscan أسرع بنحو 1000 مرة، لكنها تعطي معلومات محدودة فقط عن الهدف.

الخطوات هي:

  • أولاً، افحص نطاقات العناوين باستخدام masscan للعثور بسرعة على المضيفين الذين يستجيبون على المنفذ 3389 (أو أي منفذ تستخدمه).
  • ثانيًا، مرّر مخرجات masscan إلى rdpscan، بحيث يفحص فقط الأهداف التي نعرف أنها نشطة.

الطريقة البسيطة لتشغيل ذلك هي ببساطة دمجها في سطر الأوامر:

root@kitploit:~
masscan 10.0.0.0/8 -p3389 | rdpscan --file -

الطريقة التي أفعلها بها هي في خطوتين:

root@kitploit:~
masscan 10.0.0.0/8 -p3389 > ips.txt
rdpscan --file ips.txt --workers 10000 >results.txt

البناء

الجزء الصعب هو تثبيت مكتبات OpenSSL دون تعارض مع الإصدارات الأخرى الموجودة على النظام. على Debian Linux، أفعل:

root@kitploit:~
$ sudo apt install libssl-dev

بمجرد حل هذه المشكلة، ما عليك سوى تجميع جميع ملفات .c معًا كما يلي:

root@kitploit:~
$ gcc *.c -lssl -lcrypto -o rdpscan

لقد وضعت ملف Makefile في الدليل للقيام بذلك، لذا يمكنك غالبًا فعل ما يلي فقط:

root@kitploit:~
$ make

الكود مكتوب بلغة C، لذلك يتطلب وجود مترجم C مثبتًا، مثل القيام بما يلي:

root@kitploit:~
$ sudo apt install build-essential

أخطاء البناء الشائعة

يصف هذا القسم أخطاء البناء الأكثر وضوحًا.

root@kitploit:~
ssl.h:24:25: fatal error: openssl/rc4.h: No such file or directory

هذا يعني إما أن ملفات الرؤوس الخاصة بـ OpensSSL غير مثبتة لديك، أو أنها ليست في مسار ما. تذكر أنه حتى إذا كانت لديك ملفات OpenSSL الثنائية مثبتة، فهذا لا يعني أن لديك أدوات التطوير مثبتة. تحتاج إلى تثبيت كل من ملفات الرؤوس والمكتبات.

لتثبيت هذه الأشياء على Debian، قم بما يلي:

root@kitploit:~
$ sudo apt install libssl-dev

لإصلاح مشكلة المسار، أضف خيار الترجمة -I/usr/local/include أو شيئًا مشابهًا.

مثال على مشكلة الربط (linker) هو التالي:

root@kitploit:~
Undefined symbols for architecture x86_64:
"_OPENSSL_init_ssl", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_RSA_get0_key", referenced from:
    _rdssl_rkey_get_exp_mod in ssl-d5fdf5.o
"_SSL_CTX_set_options", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_X509_get_X509_PUBKEY", referenced from:
    _rdssl_cert_to_rkey in ssl-d5fdf5.o

أحصل على هذا على macOS بسبب وجود إصدارات متعددة من OpenSSL. أقوم بإصلاح ذلك بتحديد المسارات يدويًا (hard-coding):

root@kitploit:~
$ gcc *.c -lssl -lcrypto -I/usr/local/include -L/usr/local/lib -o rdpscan

وفقًا لتعليقات الآخرين، فإن سطر الأوامر التالي قد يعمل على macOS إذا كنت قد استخدمت Homebrew لتثبيت الأشياء. ومع ذلك، ما زلت أحصل على أخطاء الربط أعلاه، لأنني قمت بتثبيت مكونات OpenSSL أخرى متعارضة.

root@kitploit:~
gcc $(brew --prefix)/opt/openssl/lib/libssl.a $(brew --prefix)/opt/openssl/lib/libcrypto.a -o rdpscan *.c

التشغيل

يقدم القسم أعلاه نصائح البدء السريع لتشغيل البرنامج. يقدم هذا القسم مساعدة أكثر تعمقًا.

لفحص هدف واحد، مرّر عنوان الهدف فقط:

root@kitploit:~
./rdpscan 192.168.10.101

يمكنك إدخال عناوين IPv6 وأسماء DNS. يمكنك إدخال أهداف متعددة. مثال على ذلك:

root@kitploit:~
./rdpscan 192.168.10.101 exchange.example.com 2001:0db8:85a3::1

يمكنك أيضًا فحص نطاقات من العناوين، باستخدام عناوين IPv4 من البداية إلى النهاية، أو مواصفات CIDR الخاصة بـ IPv4. نطاقات IPv6 غير مدعومة لأنها كبيرة جدًا.

root@kitploit:~
./rdpscan 10.0.0.1-10.0.0.25 192.168.0.0/16

افتراضيًا، يفحص 100 هدف فقط في المرة الواحدة. يمكنك زيادة هذا الرقم باستخدام المعلمة --workers. ومع ذلك، بغض النظر عن مدى ارتفاع هذه المعلمة، ستحصل عمليًا على حد أقصى يتراوح بين 500 و1500 عامل يعملون في وقت واحد، اعتمادًا على نظامك.

root@kitploit:~
./rdpscan --workers 1000 10.0.0.0/24

بدلاً من تحديد الأهداف في سطر الأوامر، يمكنك تحميلها من ملف بدلاً من ذلك، باستخدام المعلمة --file المسمّاة بشكل مناسب:

root@kitploit:~
./rdpscan --file ips.txt

تنسيق الملف هو عنوان واحد أو اسم أو نطاق في كل سطر. يمكنه أيضًا استهلاك النص الناتج عن masscan. تتم إزالة المسافات الزائدة، وتُتجاهل الأسطر الفارغة، وتُتجاهل أي أسطر تعليقات. التعليق هو سطر يبدأ بالحرف # أو بالحرفين //.

يُرسل الإخراج إلى stdout مع إعطاء حالة VULNERABLE أو SAFE أو UNKNOWN. قد تكون هناك أسباب إضافية لكل حالة. هذه الأسباب موصوفة أعلاه.

root@kitploit:~
211.101.37.250 - SAFE - CredSSP/NLA required
185.11.124.79 - SAFE - not RDP - SSH response seen
125.121.137.42 - UNKNOWN - no connection - refused (RST)
40.117.191.215 - SAFE - CredSSP/NLA required
121.204.186.182 - SAFE - CredSSP/NLA required
99.8.11.148 - SAFE - CredSSP/NLA required
121.204.186.114 - SAFE - CredSSP/NLA required
49.50.145.236 - SAFE - CredSSP/NLA required
106.12.74.155 - VULNERABLE - got appid
222.84.253.26 - SAFE - CredSSP/NLA required
144.35.133.109 - UNKNOWN - RDP protocol error - receive timeout
199.212.226.196 - UNKNOWN - RDP protocol error - receive timeout
183.134.58.152 - UNKNOWN - no connection - refused (RST)
83.162.246.149 - VULNERABLE - got appid

يمكنك معالجة هذا باستخدام أوامر Unix إضافية مثل grep وcut. للحصول على قائمة بالأجهزة المعرّضة فقط:

root@kitploit:~
./rdpscan 10.0.0.0/8 | grep 'VULN' | cut -f1 -d'-'

المعلمة -dddd تعني معلومات تشخيصية، وكلما زدت عدد حروف d، زادت التفاصيل المطبوعة. تُرسل هذه المعلومات إلى stderr بدلاً من stdout حتى تتمكن من فصل التدفقات. باستخدام bash، يتم ذلك كما يلي:

root@kitploit:~
./rdpscan --file myips.txt -ddd 2> diag.txt 1> results.txt

معلومات التشخيص

إضافة المعلمة -d تُفرغ معلومات تشخيصية حول الاتصالات إلى stderr.

root@kitploit:~
./rdpscan 62.15.34.157 -d

[+] [62.15.34.157]:3389 - connecting...
[+] [62.15.34.157]:3389 - connected from [10.1.10.133]:49211
[+] [62.15.34.157]:3389 - SSL connection
[+] [62.15.34.157]:3389 - version = v4.8
[+] [62.15.34.157]:3389 - Sending MS_T120 check packet
[-] [62.15.34.157]:3389 - Max sends reached, waiting...
62.15.34.157    - SAFE - Target appears patched

على macOS/Linux، يمكنك إعادة توجيه stdout وstderr بشكل منفصل إلى ملفات مختلفة بالطريقة المعتادة:

root@kitploit:~
./rdpscan --file ips.txt 2> diag.txt 1> results.txt

SOCKS5 وTor للمتعة

إذن، يتضمن دعمًا لـ SOCKS5:

root@kitploit:~
./rdpscan --file ips.txt --socks5 localhost --socks5port 9050

إنه يجعل مشاكل الاتصال أسوأ، لذا ستحصل على الكثير من نتائج "UNKNOWN".

تنزيل الأداة