
نص برمجي وطقم عتاد لإلغاء مصادقة عملاء 802.11 تلقائياً بشكل جماعي. يلتقط الحزم لأغراض خبيثة لاحقة.
نص برمجي لإلغاء مصادقة عملاء 802.11 تلقائياً بأعداد كبيرة. يلتقط الحزم لأعمال لاحقة. بداية ممتازة للمحادثة في مقهاك المحلي.
صُمم هذا النص البرمجي للتشغيل على Raspberry Pi 3 أو أعلى. سيعمل أيضاً على أجهزة مشابهة بنفس الإمكانيات أو أعلى، بالطبع.
يلزم قدر لا بأس به من المعدات الإضافية لتشغيل النص البرمجي بفعالية. ستحتاج أيضاً:
لتحقيق أقصى فعالية، يجب أن يكون لديك أيضاً:
أنا شخصياً أستخدم ConnectBot مع Hacker's Keyboard على هاتفي الخلوي للتحكم بمثل هذه المجموعات عبر SSH. إنه يجذب أقل قدر من الانتباه ويناسب جيبك.
أقترح تكوين الجهاز للاتصال تلقائياً بشبكة VPN تستضيفها، لتجنب أي مشاكل توجيه/ترجمة عناوين الشبكة (NAT). إعداد OpenVPN على خادم سحابي هو أسهل طريقة لتحقيق ذلك. تأكد من استخدام توجيه التكوين client-to-client لخادم OpenVPN، أو تكوين التوجيه بطريقة أخرى.
ستحتاج إلى وسيلة أخرى غير الواي فاي لتوصيل الجهاز بالإنترنت، بالطبع. الاتصال الخلوي هو أبسط الخيارات. ما لم ترغب في سحب الحزم الملتقطة عن بعد، فإن عرض النطاق المطلوب ضئيل جداً (أقل من 100 كيلوبت/ثانية). يمكنك استخدام خطة بيانات "غير محدودة" رخيصة تحد من سرعتك بعد استخدام مقدار معين من البيانات.
واجهت مشكلات في MTU عند تشغيل OpenVPN عبر الاتصال الخلوي. أسهل علاج هو ضبط MTU الخاص بك إلى 1200 باستخدام الأمر ip link set dev tunX mtu 1200، حيث tunX هو جهاز tun الخاص بك. قد تضطر إلى استخدام MTU مختلف حسب شبكتك.
اعتماداً على تكوينك المحدد، قد تسحب أجهزة USB المتصلة طاقة أكثر مما يستطيع Raspberry Pi توفيره عبر وسائله المعتادة. استخدام موزع USB مزود بالطاقة مثل المذكور أعلاه سيسمح لك بتزويد الراديوهات بالطاقة عبر منفذ USB آخر على البطارية. بعض موزعات USB الرخيصة ستُغذي الموزع على Raspberry Pi بطاقة عكسية. هذا مناسب طالما كنت تستخدم بطارية جيدة النوعية، بل ومفيد أيضاً.
حل آخر هو توفير طاقة إضافية لموزع USB باستخدام مقسم مثل هذا. إنه يعمل، لكنني لا أوصي به. إنه شيء إضافي قد ينفصل بالخطأ، ومن الصعب تنظيمه بخلاف ذلك.
إذا كنت توفر تحكماً عن بُعد عبر هاتف خلوي مربوط، يجب التأكد من أن البطارية مشحونة بالكامل عند بدء تشغيل المجموعة، إذا أمكن. بعض الأجهزة الرخيصة قد لا تسحب تياراً كافياً لمواكبة الطاقة التي يستهلكها اتصال بيانات مستمر.
مزيج الراديوهات المتعددة وRaspberry Pi والمودم الخلوي سيصبح ساخناً جداً. راديوهات Panda PAU06 تسخن بشكل خاص. إذا لم تمانع الحرارة، سينتهي بك الأمر براديوهات ذائبة أو أسوأ. قم بتجربة تشغيل مع حقيبتك/غطائك المختار في درجة حرارة الغرفة مسبقاً، للتأكد من أنها توفر تبديداً حرارياً مناسباً. إذا كان عليك استخدام المجموعة في بيئة حارة، مثل داخل مركبة في يوم دافئ، اتخذ خطوات إضافية لمنع السخونة الزائدة. في حالة المركبة، ضبط أدوات التحكم في المناخ على التكييف وتشغيل المركبة عن بُعد بشكل متقطع سيكون كافياً.
بعض الهواتف الخلوية الرخيصة عرضة للسخونة الزائدة بسبب مزيج المعدات الإضافية والحاجة إلى إرسال البيانات بانتظام. قد تنطفئ تحت هذه الظروف، مما يمنع التحكم عن بُعد. وضع الهاتف في حجرة منفصلة عن بقية المجموعة سيساعد، لكن من الأفضل استخدام جهاز مختلف.
إذا كنت تنوي تشغيل المجموعة بشكل سري، ضع في اعتبارك أن الحرارة قد تجذب الانتباه بطرق غير متوقعة. إذا تُركت على لوحة القيادة في مركبة خلال يوم ثلجي، فإنها ستذيب الثلج والجليد. سيكون هناك بقعة دائرية نظيفة على الزجاج الأمامي، centering the kit in full view، حيث كل شيء آخر مغطى بالثلج!
تعليمات تثبيت Wisp مفصلة في rpi-install.md. الخطوات يجب أن تكون مشابهة للأنظمة غير الراسبيانية. يعتمد Wisp على aireplay-ng من aircrack-ng لإرسال إطارات deauth. من الجدير بالذكر أنك ستحتاج إلى بناء Python-3.7.1 للجهاز، وهو موصوف أيضاً في ملف rpi-install.md.
يعتمد Wisp على برنامج C صغير آخر يُدعى dream. المصدر مُضمَّن كـ dream.c. يعتمد Dream على libpcap.
قم بتجميع dream لجهازك باستخدام الأمر gcc -O3 dream.c -lpcap.
Dream هو أداة لمراقبة حركة مرور 802.11 بمخرجات قابلة للبحث عبر grep. يحفظ أيضاً حركة المرور الملتقطة في ملفات بتنسيق pcap القياسي. يستدعي Wisp dream لكل راديو مراقبة ويحلل المخرجات لحركة مرور العملاء. إليك وسائطه:
--a: الإبلاغ فقط عن حركة المرور من العملاء المرتبطين. (لا تزال جميع الحزم تُسجل على القرص إذا تم تفعيل --d).--d (ملف): تفريغ الحزم إلى الملف المحدد.-[b][c][d][f][s][t]: يحدد الحقول المراد إخراجها لكل سطر، وتحديداً:
b: BSSc: رقم القناة.d: اسم الجهاز الذي استقبل الحزمة.f: التردد.s: المحطة (STA).t: الطابع الزمني لـ pcap.تُطبع هذه الحقول دائماً بنفس الترتيب، بغض النظر عن الترتيب المحدد. (أي أن -bcst يعادل -sctb.)
يقرأ Wisp ملفاً بتنسيق JSON باسم wisp.json للتهيئة. إليك وصف المفاتيح:
monitors: يحتوي على قائمة الأجهزة التي سيتم تهيئتها كمراقبات. يحتوي كل جهاز على مفاتيح فرعية تصف تكوينه المحدد:
channel: القناة التي سيراقبها الجهاز.injector: الجهاز الذي سيتم تهيئته لحقن إطارات deauth.timing: يسرد عدة معاملات توقيت، جميعها معطاة بالميلي ثانية:
delay: التأخير بين إرسال حزم deauth، لكل عميل.jitter: يعدل زمن التأخير بمقدار عشوائي، ضمن النطاق المعطى.stale: المدة الزمنية التي لا يتم فيها رؤية العميل قبل إزالته من قائمة التأخير. له تأثير عملي ضئيل ما لم يكن قريباً من الفاصل الزمني للتأخير.تُحمَّل جميع المعاملات من wisp.json، لذلك يُستدعى Wisp ببساطة: python3 ./wisp.py
سيقوم Wisp تلقائياً بتهيئة الراديوهات كما هو موصوف في wisp.json. سيعطل أيضاً rfkill ويقتل أي عمليات متداخلة، مشابهاً لسلوك airmon-ng.
يُعيد Wisp تسمية الأجهزة المحددة إلى الصيغة wispX حيث X هو الرقم المرتبط بـ phy. سيعيد تسمية الأجهزة إلى أسمائها الأصلية عند الخروج.
يُخرج Wisp رمز . لكل deauth يتم إرساله. هذه طريقة بسيطة وفعالة لضمان أنه يعمل كما هو متوقع.
سيُخرج Wisp (عبر dream) ملفات pcap مسبوقة باسم الراديو (phy) الذي التقط الحزم، مع سلسلة سداسية عشرية عشوائية، وتنتهي بـ .cap. على سبيل المثال، شيء مثل phy0-8cf9ec5ca146943f.cap. يمكنك بعد ذلك فحصها وتحليلها ومعالجتها باستخدام أي أدوات عادية لملفات pcap.