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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
bcm4360-wpa3 — وظيفة wpa3 لرقاقة wifi في macbook pro 2014 | Kitploit
أدوات/GitHubGitHub/unsignedchad/bcm4360-wpa3
تدقيق Wi-Fiالهندسة العكسيةأمن الشبكات اللاسلكيةأمن الأجهزةتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubunsignedchad/bcm4360-wpa3

bcm4360-wpa3

وظيفة wpa3 لرقاقة wifi في macbook pro 2014

عرض المستودع
5115منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

WPA3-SAE + 802.11w على Broadcom BCM4360 (كتلة wl المغلقة)

لم تقدم Apple/Broadcom مطلقًا BCM4360 (14e4:43a0) مع دعم WPA3. برنامج التشغيل الوحيد له على لينكس هو الكتلة المغلقة broadcom-sta (wl)؛ لا يمكن لـ brcmfmac تشغيله. يضيف هذا العمل WPA3-SAE + دعم كامل لـ 802.11w PMF إلى تلك الكتلة المغلقة – بالكامل من برنامج المضيف، بدون مصدر البرامج الثابتة (firmware).

تم اختباره على الهواء مقابل نقطة وصول تعمل بـ WPA3 فقط وتتطلب MFP: مصادقة SAE → ارتباط → 4-way → بيانات CCMP، مستقرة، ومقاومة لهجمات deauth-flood وهجمات SA-Query teardown.

كيف يعمل

الكتلة عبارة عن ملف كائن ELF .o غير مجرد، قابل للنقل (وليس صورة برامج ثابتة نهائية) – وهذا هو السبب الكامل الذي يجعل هذا يعمل. لا نعيد كتابتها؛ بل نربط كود C جديد ضدها ونعيد توجيه بعض مواقع الاستدعاء:

  • يقوم wpa_supplicant بتشغيل SAE + 4-way (التشفير في الكتلة هو SHA-1 فقط؛ يحتاج SAE إلى SHA-256).
  • غلاف صغير cfg80211 (wl_cfg80211_hybrid.c، wl_linux.c) يربط بين المصادقة/الارتباط/المفاتيح.
  • ثلاث خطوات بناء تجعل الكتلة قابلة للربط:
    1. تصحيح بايت P1 – فك تثبيت auth iovar ليقبل SAE (alg=3).
    2. objcopy --globalize-symbol – جعل حوالي 10 دوال داخلية في الكتلة قابلة للاستدعاء من كود C الخاص بنا.
    3. wl_reloc.py – إعادة كتابة .rela.text بحيث تقع استدعاءات الكتلة إلى wlc_recv/wlc_sendauth/wlc_authresp_client في خطافات __wrap_* الخاصة بنا.

هذا كافٍ لدفع إطارات SAE عبر الهواء، وحقن RSN IE الخاص بـ wpa_supplicant في طلب الارتباط، وتثبيت مفاتيح مشتقة من مساحة المستخدم، وإضافة PMF برمجي (إسقاط deauth غير المحمي؛ SW-CCMP للرد على SA-Queries).

الهندسة العكسية

الأدوات: Ghidra (بدون واجهة رسومية)، nm، objdump، strings، جهاز استشعار في وضع المراقبة (iw + tcpdump).

root@kitploit:~
# 1. يتم شحن الكتلة داخل broadcom-sta وهي غير مجردة (~4091 رمزاً) -> Ghidra يستعيد الأسماء.
GHIDRA=/opt/ghidra
$GHIDRA/support/analyzeHeadless ./proj wl -import wlc_hybrid.o_amd64 \
    -analysisTimeoutPerFile 3600          # تحليل تلقائي، ثم تفكيك في واجهة المستخدم الرسومية

# 2. تصنيف ما هو موجود قبل اختيار إستراتيجية (التشفير الغائب يجب نقله إلى جانب المضيف):
nm wlc_hybrid.o_amd64 | grep -iE 'sha256|sae|bip|igtk|mmie'          # -> فارغ هنا
nm wlc_hybrid.o_amd64 | grep -iE 'wpa|akm|sup|sendauth|key_insert'

# 3. تحقق من أي إزاحة قبل تصحيحها (.text vaddr V == إزاحة الملف V+0x40 في هذه الكتلة):
objdump -d --start-address=0x47d40 --stop-address=0x47d60 wlc_hybrid.o_amd64

الإستراتيجية: ابدأ من نقاط دخول cfg80211 في الغلاف المفتوح (wl_cfg80211_connect، wl_set_auth_type) واتبع iovars (auth، wpa_auth، wsec) داخل الكتلة. فك ما تصل إليه: بوابة AKM (bcmwpa_akm2WPAauth)، آلة الحالة للانضمام/المصادقة (wlc_join_BSS + متقدم المصادقة→الارتباط عند 0x5b79d)، إرسال RX (wlc_recv)، ومسار PMK/المفتاح (wlc_sup_set_pmk، wlc_key_insert). تحقق من كل عنوان مع objdump.

النقل إلى شريحة أخرى

  1. تأكد من أن الكتلة هي ملف كائن .o غير مجرد وقابل للنقل (file، nm). صورة برامج ثابتة مجردة لن تعمل بهذه الطريقة.
  2. في Ghidra ابحث عن: مشبك خوارزمية المصادقة، آلة الحالة الانضمام→المصادقة→الارتباط + متقدمها "المصادقة ناجحة"، إرسال RX، وset_pmk/إدخال المفتاح.
  3. ضع عناوينها في build.sh (--add-symbol re_auth_advance=...، قائمة globalize) وpatches/wl_reloc.py (أهداف __wrap_*).
  4. أصلح إزاحات الهياكل في wl_linux.c (wlc+0x6a8 txq، bsscfg+0x320 assoc، scb+0x18 bss) – هذه تخطيط وتختلف حسب إصدار الكتلة.
  5. كرر على الهواء مع جهاز استشعار؛ أخطاء البرامج الثابتة هي حالات ذعر للنواة – التقط عبر الشبكة (انظر الصعوبات).

الصعوبات → الحلول

  • تجميد النواة أثناء SAE، بدون تتبع. كان عنوان --add-symbol غير صحيح برقم سداسي عشري واحد (0x15b79d مقابل 0x5b79d)، مما وضعه في منتصف تعليمة → call <قمامة> → خطأ NX.
    العلامة هي تحذير البناء objtool: ... can't find starting instruction؛ تحقق من أن كل رمز اصطناعي هو بداية دالة حقيقية.
  • لا يمكن التقاط الذعر. efi-pstore معطل على Apple EFI؛ لا يمكن لـ netconsole الإرسال عبر بطاقة USB-Ethernet. قم ببث dmesg --follow عبر SSH إلى جهاز ثانٍ – يفرغ oops قبل إعادة التشغيل.
  • ترفض نقطة الوصول الارتباط (الحالة 31، سياسة MFP). تقوم الكتلة ببناء RSN IE الخاص بها مع PSK/بدون MFP.
    التقط sme->ie الخاص بـ wpa_supplicant في .connect ووجه مخزن IE الخاص بطلب الارتباط للكتلة (*(bsscfg+0x320)+0x30) إليه – يلبي أيضًا فحص RSN-IE في 4-way.
  • فشل تثبيت المفتاح -22 – فقط IGTK (BIP، idx 4)؛ محرك المفاتيح في العتاد ليس به فتحة BIP.

البناء

يتطلب رؤوس النواة، gcc، binutils، python3. الكتلة ليست في هذا المستودع (ملكية خاصة).

root@kitploit:~
# 1. احصل على الكتلة الأصلية من broadcom-sta 6.30.223.271:
#    hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz  ->  lib/wlc_hybrid.o_amd64
cp /path/to/wlc_hybrid.o_amd64 wl-src/lib/wlc_hybrid.o_amd64.orig

# 2. البناء:
./build.sh                 # -> wl-src/wl.ko   (أو قم بتنزيله من Releases)

التثبيت

اختبار سريع

root@kitploit:~
sudo rmmod b43 brcmfmac bcma ssb wl 2>/dev/null   # تحرير البطاقة
sudo insmod wl-src/wl.ko                          # تظهر wlan0

يدير NetworkManager WPA3-SAE عبر هذا المشغل – فقط استخدم واجهة wifi الرسومية: اختر شبكتك، أدخل كلمة المرور، انتهى. يحفظها NM ويعيد الاتصال تلقائيًا بعد كل إقلاع. المعادل عبر سطر الأوامر:

root@kitploit:~
nmcli con add type wifi ifname wlan0 con-name w ssid "YOUR_SSID"
nmcli con modify w wifi-sec.key-mgmt sae wifi-sec.psk "YOUR_PASS" 802-11-wireless-security.pmf 3
nmcli con up w        # يقوم NM بـ SAE + 4-way + DHCP

(بديل مستقل: sudo ./examples/connect.sh wlan0 examples/wpa3-sae.conf.example.)

دائم (يبقى بعد إعادة التشغيل + تحديثات النواة)

root@kitploit:~
sudo dkms/install.sh

يسجل المشغل مع DKMS (يعيد البناء تلقائيًا عند ترقية النواة)، ويقوم بإدراج المشغلات المتضاربة المدمجة في النواة + wl الأصلي في القائمة السوداء، ويحمل مشغلنا عند الإقلاع قبل NetworkManager. ثم اتصل من واجهة wifi الرسومية. التفاصيل وملاحظة واحدة عن DKMS: dkms/README.md. لإعادة بناء يدوية مرة واحدة بدلاً من ذلك، قم بتشغيل ./build.sh ← wl-src/wl.ko.

تسجيل التصحيح

يقوم المشغل بطباعة تصحيح WPA3/PMF المطول افتراضيًا. يمكن إسكاته في وقت التشغيل (أو بشكل دائم):

root@kitploit:~
echo 0 | sudo tee /sys/module/wl/parameters/re_verbose          # هذا الإقلاع
echo 'options wl re_verbose=0' | sudo tee /etc/modprobe.d/wl-quiet.conf   # دائم

تحذيرات

  • نقاط الوصول المختلطة WPA2/WPA3 (وضع الانتقال) غير موثوقة – SAE المدارة من المضيف لا تفوز دائمًا بالمفاوضة. استخدم وضعًا واحدًا: اضبط نقطة الوصول على WPA3 فقط (أو WPA2 فقط)، أو ثبت الأمان في اتصال NetworkManager (WPA3 Personal / SAE، أو WPA2). شبكة WPA3 النقية تتصل في كل مرة.
  • الكتلة (wlc_hybrid.o_amd64) هي ملكية Broadcom – احصل عليها من broadcom-sta بنفسك. ملف wl.ko في Releases يضمها (نفس وضع broadcom-sta-dkms في Debian).
  • الإزاحات خاصة بـ broadcom-sta 6.30.223.271 / BCM4360.
  • تم اختباره على Linux 6.12 (Debian 13)، Intel MacBookPro11,3.
  • كود بحثي. الترخيص: GPL-2.0 (هذا الغلاف) + ترخيص Broadcom (الكتلة).
تنزيل الأداة
dmesg

اقبل IGTK في البرنامج؛ PTK/GTK يتم تثبيتها بشكل جيد وتتدفق البيانات.
  • لا تقوم الكتلة أبدًا بفك تشفير إطارات الإدارة، لذلك تصل SA-Queries في 802.11w كنص مشفر.
    التقط PTK وقم بعمل AES-CCM في البرنامج (kernel ccm(aes)) لقراءة الاستعلام وإصدار رد مشفر.