
نص برمجي متوافق مع POSIX، مؤتمت بالكامل لالتقاط PMKID ومصافحة WPA PSK، موجه لاختبار الاختراق.
Airbash هو نص برمجي متوافق مع POSIX، آلي بالكامل لالتقاط PMKID و handshake لـ WPA PSK، موجه لاختبار الاختراق. إنه متوافق مع Bash و Android Shell (تم اختباره على Kali Linux و Cyanogenmod 10.2) ويستخدم aircrack-ng لمسح العملاء المتصلين حاليًا بنقاط الوصول (AP). ثم يتم رفض المصادقة عن هؤلاء العملاء لالتقاط PMKID و/أو handshake عند محاولة إعادة الاتصال بنقطة الوصول.
يتم التحقق من البيانات الملتقطة باستخدام hcxpcaptool و hcxpcapngtool من hcxtools بواسطة ZeroBeat. إذا تم التقاط واحد أو أكثر من PMKID و/أو handshakes، يتم إدخالها في قاعدة بيانات SQLite3، بالإضافة إلى وقت الالتقاط وبيانات GPS الحالية (إذا تم تكوينها بشكل صحيح).
بعد الالتقاط، يمكن اختبار قاعدة البيانات للبحث عن نماذج أجهزة توجيه ضعيفة باستخدام crackdefault.sh. سيبحث عن الإدخالات التي تطابق الوحدات المنفذة، والتي تتضمن حاليًا خوارزميات لحساب المفاتيح الافتراضية لسلسلة Speedport 500-700 و Thomson/SpeedTouch و UPC 7 أرقام (UPC1234567) وأجهزة توجيه HOTBOX.
لمزيد من المعلومات حول هجوم PMKID، مقال New attack on WPA/WPA2 using PMKID هو قراءة جيدة.
واجهة WiFi في وضع المراقبة (على Android يمكن تحقيق ذلك باستخدام bcmon إذا كان الجهاز متوافقًا)
aircrack-ng (لـ Android يمكن استخدام الملفات الثنائية المجمعة مسبقًا من android_aircrack)
SQLite3 (Android: مثبت افتراضيًا على CyanogenMod 10.2)
openssl لتجميع الوحدات و hcxtools
hcxpcaptool و hcxpcapngtool من hcxtools لاكتشاف PMKIDs و/أو handshakes وتحويلها إلى تنسيقات hashcat
لتسجيل إحداثيات GPS لنقاط الوصول، قم بتكوين برنامج تسجيل الإحداثيات لتسجيل الدخول إلى .location/_.txt (يمكن اختيار اسم الملف حسب الرغبة). سيستخدم Airbash دائمًا ناتج cat "$path$loc"*.txt 2>/dev/null | sed '2q;d'، وهو ما يعادل قراءة جميع ملفات .txt في .loc/ واختيار السطر الثاني. سبب هذه الطريقة في التنفيذ هو وظيفة GPSLogger، الذي تم استخدامه على جهاز التطوير.
بعد التقاط PMKID جديد أو handshake، يمكن الاستعلام عن قاعدة البيانات للبحث عن نماذج أجهزة توجيه ضعيفة. إذا كانت الوحدة مناسبة، يتم حساب المفاتيح الافتراضية لهذه السلسلة من أجهزة التوجيه واستخدامها كمدخل لـ aircrack-ng لمحاولة استعادة كلمة المرور.
الوحدات الخاصة بحساب المفاتيح الافتراضية لـ Thomson/SpeedTouch و UPC1234567 (7 أرقام عشوائية) مُضمنة في src/
يعود الفضل في الكود إلى المؤلفين Kevin Devine و mailto:[email protected].
On Linux:
gcc -fomit-frame-pointer -O3 -funroll-all-loops -o modules/st modules/stkeys.c -lcrypto
gcc -O2 -o modules/upckeys modules/upc_keys.c -lcrypto
لتمكين الكشف التلقائي، يرجى نقل الملفات الثنائية إلى airbash/bin (سيتم إضافتها إلى PATH أثناء التنفيذ) أو إلى دليل موجود في PATH.
إذا كنت على Android، قد تحتاج إلى نسخ الملفات الثنائية إلى /system/xbin/ أو إلى دليل آخر يُسمح فيه بتنفيذ الملفات الثنائية.
تشغيل install.sh سينشئ قاعدة البيانات، ويُحضّر هيكل المجلدات، ويُنشئ روابط مختصرة لكلا النصين البرمجيين، ويمكن نقلها إلى دليل موجود في $PATH للسماح بالتنفيذ من أي مكان.
بعد التثبيت، قد تحتاج إلى ضبط INTERFACE يدويًا في السطر 46 من airba.sh. سيتم تحديد هذا لاحقًا تلقائيًا، ولكن في الوقت الحالي الإعداد الافتراضي هو wlan0، للسماح بالتوافق الفوري مع bcmon على Android.
./airba.sh يبدأ النص البرمجي، ويقوم بمسح ومهاجمة الأهداف غير الموجودة في قاعدة البيانات تلقائيًا.
./crackdefault.sh يحاول كسر خوارزميات المفاتيح الافتراضية المعروفة.
لعرض محتويات قاعدة البيانات، قم بتشغيل sqlite3 .db.sqlite3 "SELECT * FROM hs" في الدليل الرئيسي.
يمكن تحديث Airbash عن طريق تشغيل update.sh. سيؤدي هذا إلى استنساخ الفرع الرئيسي إلى /tmp/ والكتابة فوق الملفات المحلية.
_n: عدد نقاط الوصول التي تم العثور عليها
__c/m: يمثل رقم العميل والحد الأقصى لعدد العملاء الذين تم العثور عليهم، على التوالي
-: نقطة الوصول مدرجة في القائمة السوداء
x: نقطة الوصول موجودة بالفعل في قاعدة البيانات
?: نقطة الوصول خارج النطاق (لم تعد مرئية لـ airodump)
تحتوي قاعدة البيانات على جدول يسمى captures بسبعة أعمدة.
id: عداد متزايد لإدخالات الجدول
latitude و longitude: إحداثيات GPS لـ handshake (إذا كانت متوفرة)
bssid: عنوان MAC لنقطة الوصول
essid: معرف الاسم
pmkid: WPA PMKID، إذا تم التقاطه
psk: عبارة المرور WPA، إذا كانت معروفة
processed: علامة يتم تعيينها بواسطة crackdefault.sh لمنع الحساب المكرر للمفاتيح الافتراضية إذا تم استخدام عبارة مرور مخصصة.
حاليًا، قاعدة بيانات SQLite3 غير محمية بكلمة مرور.
نرحب بالمساهمات بشدة، خاصة الوحدات الإضافية التي تمكن من كسر المزيد من المفاتيح الافتراضية. تم تضمين قالب وحدة في modules/. يحتوي crackdefault.sh على جملة elif قالب لتضمين الوحدة الجديدة.
إذا كنت ترغب في المساهمة، تأكد من أن كودك مرخص بموجب رخصة MIT (مثل هذا المشروع). عند المساهمة بنصوص shell، يرجى التأكد من أن الكود متوافق مع POSIX. بخلاف ذلك، فقط افتح issue تصف التغييرات بإيجاز وأنشئ pull request!