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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/aleksamcode/preferred-network-list-sniffer
التقاط وتحليل الحزمالاستطلاعتدقيق Wi-Fiجمع المعلوماتأمن الشبكات اللاسلكيةالفريق الأحمر
GitHubaleksamcode/preferred-network-list-sniffer

Preferred-Network-List-Sniffer

أداة استطلاع لالتقاط وعرض معرفات الشبكات اللاسلكية (SSIDs) من قائمة الشبكات المفضلة للجهاز.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
1759منذ 7 أشهرتمت المراجعة من قبل Kitploit

ماسح قائمة الشبكات المفضلة - PNLS

License: MIT

ماسح قائمة الشبكات المفضلة (PNLS) هو أداة تدقيق لشبكات Wi-Fi تابعة للفريق الأحمر بواجهة ويب بسيطة قادرة على اعتراض معرفات SSID1 من قائمة الشبكات المفضلة (PNL)2 بالجهاز. يتم تحقيق ذلك عن طريق التقاط طلبات الاستقصاء في المنطقة المجاورة، ثم تحليلها لاستخراج معرف SSID ومعلومات أخرى، وأخيراً نشرها إلى واجهة الويب. الدافع الأساسي لهذا المشروع هو دراسة طلبات استقصاء 802.11 والمخاطر المتعلقة بالخصوصية المرتبطة بالبيانات التي تنقلها.

PNLS system overview

شكل 1: نظرة عامة على نظام PNLS

[!WARNING] جميع المحتويات في هذا المشروع مخصصة لأغراض البحث الأمني فقط.

[!NOTE]

  • هذا المشروع جزء من بحثي المستمر حول حماية الخصوصية في شبكات Wi-Fi.

    • عرض نطاق العمل
  • لمراقبة العمل الجاري على PNLS، راجع لوحة المشروع.

جدول المحتويات

  • ماسح قائمة الشبكات المفضلة - PNLS
    • جدول المحتويات
    • كيفية بناء PNLS
      • المتطلبات
      • المتطلبات الأساسية
    • الإعداد
      • باستخدام Docker
      • باستخدام صورة Docker الجاهزة
      • بدون Docker
    • طلبات الاستقصاء
    • تصفية معرف SSID
    • الهندسة المعمارية
      • لماذا Async Server Gateway Interface؟
      • لماذا WebSockets؟
      • نموذج النشر-الاشتراك
    • لقطات الشاشة
    • الاختصارات
    • المراجع

كيفية بناء PNLS

إليك ما ستحتاجه لنسخ ونشر هذا المشروع، بما في ذلك مكونات الأجهزة والبرامج. بمجرد تجهيز بيئة العمل الخاصة بك، انتقل إلى أقسام الإعداد.

المتطلبات

  • Raspberry Pi (RPi)
  • مصدر طاقة مناسب لـ RPi (راجع وثائق مصدر الطاقة للتفاصيل)
  • بطاقة Micro SD (راجع وثائق بطاقة SD للتفاصيل)
  • محول USB Wi-Fi (اختياري)
    • يُستخدم لتحقيق نطاق أكبر عند التقاط الحزم.
  • كابل HDMI (اختياري)
    • يُستخدم لعرض واجهة الويب من RPi بدلاً من الاتصال به عن بعد باستخدام حاسوبك.

المتطلبات الأساسية

  • نظام تشغيل Kali Linux
    • ضروري لاستخدام وضع المراقبة وأداة aircrack-ng. يمكنك تنزيل صورة Kali Linux ARM من هنا.
      • بدلاً من ذلك، يمكنك استخدام نظام تشغيل آخر، لكن ستحتاج إلى تعديل3 النواة باستخدام nexmon4 أو استخدام محول لاسلكي يدعم وضع المراقبة. هنا رابط للمحولات USB المعتمدة من Raspberry Pi.
      • ستحتاج أيضًا إلى تثبيت أداة aircrack-ng، حيث إنها تأتي مثبتة مسبقًا فقط على Kali Linux.
  • ابدأ واجهة الشبكة في وضع المراقبة باستخدام: sudo airmon-ng start wlan0 [2].

[!NOTE]

صورة Kali تستخدم نواة Re4son، والتي تتضمن برامج تشغيل لبطاقات Wi-Fi الخارجية وبرنامج Nexmon الثابت للبطاقة اللاسلكية المدمجة في RPi 3 و 4 [3].

PNLS RPi 4 device

شكل 2: PNLS يعمل على RPi 4 مع هوائي خارجي وبطارية

PNLS RPi 4 device AWUS036ACS

شكل 3: PNLS يعمل على RPi 4 مع علبة وهوائي AWUS036ACS

PNLS RPi 4 device AWUS036ACM

شكل 4: PNLS يعمل على RPi 4 مع هوائي AWUS036ACM

الإعداد

إذا كنت لا تريد استخدام Docker، فانتقل إلى الإعداد بدون Docker.

باستخدام Docker

قم بإعداد نسخة تطويرية بسرعة:

root@kitploit:~
# First clone this repo.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Move to the project root folder.
cd Preferred-Network-List-Sniffer
# Build backend and frontend image.
docker compose build
# Bring up both the backend and the frontend server.
docker compose up
# Move into the sniffer folder.
cd sniffer
# Run the Sniffer service.
sudo python3 sniffer.py

باستخدام صورة Docker الجاهزة

حالياً، الصور متعددة المنصات غير متوفرة، والمشروع يدعم فقط معمارية ARM64v8. قم بتنزيل أحدث الصور الجاهزة من سجل حاويات GitHub وقم بتشغيلها محلياً.

root@kitploit:~
# First clone this repo.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Move to the project root folder.
cd Preferred-Network-List-Sniffer
# Download the prebuild images.
docker pull ghcr.io/aleksamcode/pnls-backend-ghcr:latest
docker pull ghcr.io/aleksamcode/pnls-frontend-ghcr:latest
# Bring up both the backend and the frontend server.
docker compose up
# Move into the sniffer folder.
cd sniffer
# Run the Sniffer service.
sudo python3 sniffer.py

بدون Docker

  • الخلفية: لبدء تشغيل خادمي ASGI و Redis وتشغيل الخدمات المطلوبة، راجع هذه التعليمات.

  • الواجهة الأمامية: لتشغيل خادم React، راجع هذه التعليمات.

هذه لقطة شاشة عندما تم تشغيل كل شيء "يدوياً":

  • أعلى اليسار: خادم Redis
  • أعلى اليمين: خادم ASGI
  • أسفل اليسار: خدمة Sniffer
  • أسفل اليمين: خادم React

PNLS Kali screenshot

شكل 5: لقطة شاشة PNLS

طلبات الاستقصاء

طلبات الاستقصاء هي إطارات إدارة من نوع 802.11 تُستخدم لتوصيل الأجهزة بنقاط الوصول اللاسلكية (AP) التي تم الارتباط بها سابقاً. عندما يكون الجهاز قد مكّن Wi-Fi ولكنه غير متصل بشبكة، فإنه يرسل بشكل دوري دفعة من طلبات الاستقصاء التي تحتوي على معرفات SSID من قائمته المفضلة (PNL). تُرسل هذه الإطارات غير مشفرة، ويمكن لأي شخص يراقب الترددات الراديوية (RF) التقاطها وقراءتها. تُرسل طلبات الاستقصاء إلى عنوان البث DA (ff:ff:ff:ff:ff:ff). بمجرد إرسالها، يبدأ الجهاز مؤقت الاستقصاء. في نهاية المؤقت، يقوم الجهاز بمعالجة الإجابة المستلمة. إذا لم يتلق الجهاز إجابة، فإنه ينتقل إلى القناة التالية ويكرر العملية. هناك نوعان من طلبات الاستقصاء:

  • طلبات الاستقصاء الموجهة: باستخدام معرف SSID محدد من قائمة PNL الخاصة بالجهاز

  • طلبات الاستقصاء الفارغة: باستخدام معرف SSID شامل (معرف SSID فارغ)

    • تُرسل الطلبات الفارغة للحصول على رد من جميع نقاط الوصول المتاحة في النطاق.

    • بالإضافة إلى تصفية إطارات طلبات الاستقصاء 802.11 من جميع الحزم الملتقطة، سيقوم Sniffer أيضاً بتصفية معرفات SSID الشاملة.

تصفية معرف SSID

عند التقاط طلبات الاستقصاء في الأماكن التي توجد بها شبكة محلية كبيرة مع عدد كبير من عملاء Wi-Fi، سيلتقط PNLS حتماً العديد من طلبات الاستقصاء التي تحتوي على معرف SSID لتلك الشبكة. قد يكون تصفية معرفات SSID هذه مفيداً، حيث إنها لا قيمة لنا ويمكن أن تؤدي إلى زيادة حمل المقابس. إن تصفية معرفات SSID هذه لن تقلل فقط من الحمل على اتصالات المقابس، بل ستمنع أيضاً إغراق واجهة الويب بمعرفات SSID المذكورة.

عند استخدام هذه الميزة، ستحتاج إلى إجراء تعديلات طفيفة على الكود المصدري. بالتحديد، ستحتاج إلى تحديث قائمة SSID_FILTER في ملف settings.py بالقيمة التي تريد أن يتجاهلها Sniffer. بمجرد التحديث، أعد بناء المشروع وابدأ تشغيل PNLS.

الهندسة المعمارية

يستخدم هذا المشروع هندسة تعتمد على الأحداث (EDA)، والتي تم تصميمها فوق الهندسات المعتمدة على الرسائل. بينما يستخدم هذا المشروع حلاً مركزياً (كل شيء يعمل من RPi)، ونظراً للمكونات غير المترابطة بشكل كبير نتيجة استخدام EDA، فمن الممكن إنشاء حل لا مركزي إذا لزم الأمر. يتكون PNLS من ناشر حدث (sniffer)، ومستهلك حدث (تطبيق ويب)، وقناة حدث. هنا، يتم تنفيذ قناة الحدث كوسيط موجه للرسائل (MOM).

PNLS system deployment diagram

شكل 6: مخطط نشر نظام PNLS

لماذا Async Server Gateway Interface؟

يوفر Async Server Gateway Interface (ASGI) واجهة موحدة بين خوادم الويب Python القادرة على العمل غير المتزامن والخدمات [4]. تم اختيار ASGI بسبب حاجة المشروع لاتصال WebSocket طويل الأمد لتسهيل الاتصالات غير المتزامنة بين العملاء المختلفين. بالإضافة إلى ذلك، يسمح أيضاً باستخدام الروتينات الخلفية أثناء استدعاءات API. يستخدم PNLS تطبيق uvicorn لـ Python لاستخدام خادم ويب ASGI.

لماذا WebSockets؟

من خلال استخدام بروتوكول اتصال WebSocket، نتمكن من تسهيل الاتصال ثنائي الاتجاه الكامل. بينما لا يحتاج هذا المشروع إلى اتصال ثنائي الاتجاه، إلا أنه يحتاج إلى تفاعل فوري بين مكونات النظام. بهذه الطريقة، ستكون البيانات الملتقطة متاحة للمستخدم النهائي بمجرد التقاطها.

نموذج النشر-الاشتراك

يتم تحقيق MOM للمشروع من خلال وسيط الرسائل باستخدام Redis. في نموذج النشر-الاشتراك (pub-sub)، يكون Sniffer مسؤولاً عن إنتاج الرسائل، بينما يسجل تطبيق الويب (المشترك) في الموضوع المحدد (قناة Redis). عندما يرسل Sniffer رسالة إلى موضوع، يتم توزيعها على جميع المستهلكين المشتركين، مما يسمح بالاتصال غير المتزامن والقابل للتوسع. يستخدم PNLS بروتوكول الرسائل الخفيف Redis Pub/Sub لبث الرسائل لنشر الرسائل قصيرة العمر بزمن انتقال منخفض وإنتاجية كبيرة [5][6]. بهذه الطريقة، تم تجنب الأعباء المرتبطة بتشفير هياكل البيانات بشكل يمكن كتابته على القرص. وبذلك، سيكون لهذا الحل أداء أفضل محتمل [7]. يوضح الشكل أدناه نشاط النظام المبسط من خلال سير العمل المعتمد على الأحداث.

pub-sub sequence diagram

شكل 7: مخطط تسلسل نموذج النشر-الاشتراك PNLS

[!NOTE] لا يوفر MOM المنفذ تخزيناً دائماً أو قائمة انتظار رسائل لتراكم البيانات، مما يعني فقدان الرسائل إذا تم نشرها في موضوع بدون مشتركين.

لقطات الشاشة

أدناه مثال على واجهة ويب تعرض معرفات SSID اختبارية منشورة.

PNLS web - example with test SSIDs

شكل 8: واجهة ويب PNLS - مثال مع معرفات SSID اختبارية

الاختصارات

المراجع

  1. مستودع Nexmon على GitHub
  2. توثيق Aircrack-ng
  3. توثيق Kali على ARM
  4. توثيق ASGI
  5. برنامج قائمة انتظار الرسائل والوسيط منخفض الزمن
  6. Redis - تعريف النشر-الاشتراك
  7. Stephen M. Rumble, Ankita Kejriwal, and John K. Ousterhout, “Log-Structured Memory for DRAM-Based Storage,” at 12th USENIX Conference on File and Storage Technologies (FAST)
  8. تمكين وضع المراقبة وحقن الحزم على Raspberry Pi

Footnotes

  1. معرف مجموعة الخدمات (SSID) هو معرف 802.11 يُستخدم لتسمية شبكة Wi-Fi يتكون من 32 حرفًا كحد أقصى يمكن أن يحتوي على أحرف حساسة لحالة الأحرف وأرقام ورموز خاصة لا يزيد طولها عن 32 حرفًا. ↩

  2. قائمة الشبكات المفضلة هي مجموعة من معرفات SSID المحفوظة مع إعدادات إضافية قمت بإنشائها في المرة الأولى التي قمت فيها بتوصيل جهازك بتلك الشبكات. ↩

  3. لم تدعم Broadcom رسمياً وضع المراقبة، مما حد من فائدة البطاقات اللاسلكية في أجهزة Raspberry Pi [8]. مشروع Nexmon هو تعديل برنامج ثابت لرقاقات Broadcom المستخدمة في أجهزة RPi [1]. سيتيح لك هذا التعديل استخدام وضع المراقبة على جهاز RPi الخاص بك. ↩

  4. إطار عمل تعديل البرنامج الثابت القائم على C لرقاقات Wi-Fi من Broadcom/Cypress والذي يتيح وضع المراقبة، وحقن الإطارات، وأكثر من ذلك بكثير. ↩

تنزيل الأداة
PNLقائمة الشبكات المفضلة
PNLSماسح قائمة الشبكات المفضلة
SSIDمعرف مجموعة الخدمات
UIواجهة المستخدم
RPiRaspberry Pi
OSنظام التشغيل
APنقاط الوصول
RFالترددات الراديوية
EDAالهندسة المعتمدة على الأحداث
MOMالوسيط الموجه للرسائل
ASGIواجهة بوابة الخادم غير المتزامنة
pub-subنشر-اشتراك