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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
wiremax — مفكك لاحق (postdissector) قائم على Lua لبرنامج Wireshark، يقوم بفك تشفير وتحليل عناصر معلومات البائع (vendor IEs) الخاصة بأجهزة Ubiquiti AirMAX/RouterBoard بمعيار 802.11 إلى حقول قابلة للتصفية. | Kitploit
أدوات/GitHubGitHub/infobyte/wiremax
أدوات عامةالهندسة العكسيةالتحقيق الجنائي الرقميأمن الشبكاتأمن الشبكات اللاسلكية
GitHubinfobyte/wiremax

wiremax

مفكك لاحق (postdissector) قائم على Lua لبرنامج Wireshark، يقوم بفك تشفير وتحليل عناصر معلومات البائع (vendor IEs) الخاصة بأجهزة Ubiquiti AirMAX/RouterBoard بمعيار 802.11 إلى حقول قابلة للتصفية.

عرض المستودع
2منذ 19 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

wiremax

محلل (dissector) لحزم Wireshark/tshark لعناصر معلومات المورّد الخاصة بـ Ubiquiti AirMAX (AC + M) و Mikrotik / RouterBoard المرافقة، مكتوب بلغة Lua.

هو النظير المباشر على الهواء لـ pyrmax: فمنطق فك الترميز يطابق حزمة بايثون تلك حقلًا بحقل. تمت هندسة تنسيق حزم AC عكسيًا من الثنائي الخاص ببرنامج AirMAX AC الثابت؛ بينما جاءت تخطيطات M وRouterBoard من ملاحظات منشورة سابقة حول عنصر المورّد AirMAX-M الأقدم.

يركب AirMAX داخل عناصر معلومات خاصة بالمورّد في 802.11 (العلامة 221). يحلل Wireshark إطار 802.11 ويُظهر عنصر المورّد ككتلة غير شفافة؛ wiremax يأخذ تلك الكتلة، ويفك تشفيرها (AES-128-ECB، بمفتاح مشتق من عناوين MAC للإطار) ويعرض شجرة فرعية محللة وقابلة للتصفية.

root@kitploit:~
Tag: Vendor Specific: Ubiquiti Inc  (built-in 802.11 dissector)
AirMAX AC (Vendor Specific IE)       ← added by wiremax
    Flags: 0x02 ( .... ..1. = Encrypted: True )
    Message Type: Beacon (1)
    Encrypted Length: 48
    [Decrypted payload (AES-128-ECB)]
        [AES Key …: 1f162a13…  (dst=broadcast)]
        Version: 9
        Source MAC: 24:5a:4c:44:57:fd
        Radio MAC (mac_0c): 24:5a:4c:44:57:fd
        Capability Flags: 0x0000003e
        Mixed Mode: 0
        Radioname: LB1
        SSID: labalUBI2
        TLV: Radioname (1), len 3
        TLV: SSID (2), len 9
        TLV: Padding (0)

يعتمد التخطيط بعد فك التشفير على Message Type: تحمل إطارات المنارة (beacons) mac_0c / cap_flags / mixed_mode + عناصر TLV للاسم (أعلاه)؛ وتحمل طلبات/ردود الارتباط (assoc req/resp) chainmasks وcap_flags وحقولًا ذيلية خاضعة لإصدار البروتوكول (field_9c وrssi وfwname وtxpower)؛ وطلب الاستقصاء (probe req) يحتوي على الترويسة فقط؛ ويحمل إطار deauth قيمة nonce من نوع jiffies ورمز توثيق غير شفاف (وعنوان MAC المصدر فيه مُقنّع بـ XOR، وهو ما يزيل wiremax قناعه).

الحالة

الطرازالتغطية
AirMAX ACالترويسة الخارجية + الرأس المشترك بعد فك التشفير (version + src_mac) + الجسم الخاضع لنوع الرسالة وإصدار البروتوكول (beacon, assoc req/resp, probe req, deauth) + عناصر TLV للاسم
AirMAX Mالهيكل الخارجي + 9 بايتات موثقة بعد فك التشفير (version, msg_type, src_mac, enable) + الباقي الخام
RouterBoard (Mikrotik)OUI/النوع + عناصر فرعية IE + اسم الجهاز (نص صريح)

تُعرض مناطق البايت غير الموثقة بشكل خام (Unknown [n:len]) ولا تُختلق أبدًا — بنفس نهج pyrmax وقاعدة المعرفة ac/.

كيف يعمل

يعمل كـ محلل لاحق (postdissector) (لا يستبدل محلل 802.11 المدمج، بل يعمل بعده). لكل إطار يقوم بـ:

  1. قراءة كل wlan.tag.oui بالإضافة إلى wlan.sa / wlan.da عبر أدوات استخراج Field؛
  2. مطابقة OUI الخاصة بـ AirMAX AC (00:27:22) أو M (00:15:6d) أو RouterBoard (00:0c:42) — بالنسبة لـ AC/M يتطلب أيضًا نوع OUI FF FF FF، لأن 00:15:6d مشترك مع Mikrotik ومع عنصر Ubiquiti آخر يظهر في نفس الإطار؛
  3. تحديد موقع بايتات IE في الإطار، وبالنسبة لـ AC/M فك تشفير الحمولة باستخدام AES-128-ECB، بمفتاح = HMAC-SHA1(dst_mac, src_mac)[:16]، محاولًا الوجهة 802.11 الملتقطة أولًا ثم الرجوع إلى البث (إطارات الهوية تستخدم مفتاح البث حتى عند الإرسال الأحادي) — والفائز هو من تتطابق عناوين MAC المصدر المضمّنة في حمولته المفكوكة مع مصدر 802.11؛
  4. بناء الشجرة الفرعية، وكشف البايتات المفكوكة كمصدر بيانات خاص بها بحيث يبرز تحديد الحقل تلك البايتات.

التشفير (SHA-1, HMAC-SHA1, فك تشفير AES-128) هو Lua خالص ومكتفٍ ذاتيًا — لا يعرض Wireshark أي واجهة برمجية للتشفير إلى Lua. الحمولات عبارة عن بضعة كتل من 16 بايت، لذا فالأداء غير مهم. المفتاح مشتق من عناوين MAC عامة، لذا فهذا إخفاء وليس أمانًا.

التثبيت / التشغيل

للاستخدام مرة واحدة (بدون تثبيت):

root@kitploit:~
tshark   -X lua_script:airmax.lua -r capture.pcap -V
wireshark -X lua_script:airmax.lua capture.pcap

للتثبيت الدائم (واجهة Wireshark + tshark): ضع مجلد wiremax/ بالكامل في دليل إضافات Lua الشخصي. يظهر المسار الدقيق في Wireshark تحت Help ▸ About Wireshark ▸ Folders ▸ Personal Lua Plugins؛ والمسارات الافتراضية هي:

نظام التشغيلمسار إضافات Lua الشخصي الافتراضي
Linux~/.local/lib/wireshark/plugins/
macOS~/.local/lib/wireshark/plugins/ (أو ~/.config/wireshark/plugins/)
Windows%APPDATA%\Wireshark\plugins\

يعد الارتباط الرمزي (symlink) مثاليًا أثناء التكرار — تُلتقط التعديلات عند إعادة التحميل (Ctrl+Shift+L) دون خطوة نسخ:

root@kitploit:~
ln -s "$PWD" ~/.local/lib/wireshark/plugins/wiremax

يقوم Wireshark بتحميل كل ملف .lua بشكل متكرر داخل مجلد الإضافات؛ الوحدات الفرعية ضمن wsairmax/ هي وحدات عادية (غير ضارة إذا حُملت بشكل مستقل)، وtest/selftest.lua لا تؤدي أي عملية داخل Wireshark.

الحقول (فلاتر العرض)

أمثلة:

root@kitploit:~
tshark -r cap.pcap -Y 'airmax.ac.ssid'                 -T fields -e wlan.sa -e airmax.ac.ssid
tshark -r cap.pcap -Y 'airmax.m.msg_type == 1'         -T fields -e airmax.m.src_mac
tshark -r cap.pcap -Y 'airmax.rb.device_name'          -T fields -e airmax.rb.device_name

يجب أن تكون التسجيلات في وضع مراقبة 802.11 (radiotap)؛ فإطارات الإدارة التي تحمل عناصر IE (beacon / probe response / assoc) غير مشفرة على طبقة 802.11 — فقط حمولة AirMAX داخل IE هي المغلفة بـ AES، وwiremax يفك غلافها.

الاختبارات

test/selftest.lua يشغّل التشفير وأجهزة فك الترميز تحت مترجم Lua 5.4 المستقل (بدون Wireshark)، مع التحقق من متجهات مرجعية بالإضافة إلى متجهات SHA-1 / RFC-2202 HMAC القياسية:

root@kitploit:~
lua test/selftest.lua        # from this directory

اختبار شامل من البداية إلى النهاية ضد تسجيل حقيقي (يوفّر pyrmax ملفات pcap نموذجية ضمن tests/samples/):

root@kitploit:~
tshark -X lua_script:airmax.lua -r airmax_ac_beacon.pcap -V
tshark -X lua_script:airmax.lua -r airmax_m_probe_response.pcap -V

البنية

root@kitploit:~
wiremax/
├── airmax.lua            # Wireshark entry: ProtoFields + postdissector + tree
├── wsairmax/             # pure-Lua modules (no Wireshark dependency)
│   ├── util.lua          # hex / MAC helpers
│   ├── sha1.lua          # SHA-1 + HMAC-SHA1
│   ├── aes.lua           # AES-128 ECB decrypt
│   ├── crypto.lua        # key derivation + decrypt (mirrors pyrmax/_crypto.py)
│   ├── ac.lua            # AirMAX AC decoder (outer ksy: airmax_ac; payload hand-written per 09b)
│   ├── m.lua             # AirMAX M decoder       (ksy: airmax_m[_payload])
│   └── routerboard.lua   # RouterBoard decoder    (ksy: routerboard)
├── test/selftest.lua     # standalone-Lua test harness
└── README.md

تحفظات

  • M msg_type يضع تسمية 1 = Beacon وفقًا لملاحظات AirMAX-M الأقدم، لكن القيمة 1 تُلاحَظ أيضًا على استجابات probe — فمساحة أنواع رسائل M غير موثّقة بالكامل، لذا اعتمد على الرقم الخام.
  • طول نص AC الصريح هو enc_len، وهو u16 big-endian (09b §3)؛ كانت قراءة البايت الواحد القديمة صحيحة بالصدفة فقط للحمولات الأصغر من 256.
  • تخطيطات AC assoc-req / assoc-resp / deauth مفكوكة مباشرة من المواصفات، لكن مجموعة التسجيلات لا تحتوي بعد على عينات AC حقيقية لها — فقط beacon وprobe-req تم التحقق منها عبر الشبكة. وأجهزة فك ترميز version < 9 غير موثقة بالمثل (يُصدر TX القيمة 9 فقط). انظر المتجهات الاصطناعية في test/selftest.lua.
  • يعتمد فك التشفير على وجود عنوان MAC المصدر لإطار 802.11 في التسجيل. إذا تعذّر فك تشفير إطار ما، تظل الترويسة الخارجية الصريحة معروضة مع ملاحظة خبير.

الحفاظ على التزامن مع pyrmax

عند إضافة أو إعادة تسمية حقل في pyrmax (src/pyrmax/ac.py أو مخططات ksy/*.ksy الخاصة به)، عكسه في وحدة فك الترميز المقابلة wsairmax/*.lua، وإذا كان الحقل ظاهرًا للمستخدم، أضف ProtoField في airmax.lua. تأتي المتجهات المرجعية في test/selftest.lua من ملفات pcap النموذجية لـ pyrmax، لذا سيظهر أي اختلاف هناك.

تنزيل الأداة
الفلترالمعنى
airmax.ac.msg_typeنوع الرسالة: 1 Beacon، 2 Assoc Req، 3 Assoc Resp، 4 Probe Req، 0xC Deauth
airmax.ac.flags.encryptedبت التشفير (0x02)
airmax.ac.versionإصدار التنسيق بعد فك التشفير (البوابة؛ يُصدر TX القيمة 9)
airmax.ac.src_macعنوان MAC المصدر من الرأس المفكوك (يزيل deauth قناعه)
airmax.ac.mac_0cعنوان MAC الراديوي للمنارة (BSSID)
airmax.ac.cap_flags + airmax.ac.cap_flags.chanbw/.high_density/.auth_deauth/.compat_11axحقل بتات القدرات (§11)
airmax.ac.radioname, airmax.ac.ssid, airmax.ac.fwnameسلاسل اسم AC / البرنامج الثابت
airmax.ac.jiffies_nonce, airmax.ac.enc_tokennonce الخاص بـ deauth + رمز توثيق غير شفاف
airmax.ac.tlv.tag / .len / .dataمسح TLV الخام
airmax.m.version, airmax.m.msg_type, airmax.m.src_mac, airmax.m.enableالحقول الموثقة لـ M
airmax.m.unknown_restذيل M غير الموثق
airmax.rb.device_nameاسم جهاز RouterBoard
airmax.ac.key / airmax.m.keyمفتاح AES المشتق (مولّد، للتحقق)