חבילות Snipch באמצעות Extcap

הצגת המקור ב-GitHub

מדריך זה מסביר כיצד להגדיר extcap עבור Wireshark כדי לסרוק מנות מ רשת של פרוטוקול Thread.

כדי להשתמש ב-Pyspinel לכיסוח חבילות ללא extcap, עיינו במאמר לכידת חבילות באמצעות פיספינל.

הגדרה של סביבת sniffer

לפני שמתחילים, צריך לבצע את השלבים הבאים:

אימות

המדריך הזה אומת באמצעות Zolertia Firefly (Texas Instruments CC2538 SoC) במערכות המארח הבאות:

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Mojave 10.14.6 — Wireshark 3.0.5
  • Windows 10 בגרסת 64 ביט בגרסה 17134 — Wireshark 3.0.6

בונים והבהוב של המשבץ

הוראות הבנייה וההבהוב משתנות בהתאם לפלטפורמה.

לקבלת הוראות לבניית CC2538 והבהוב שלהן, אפשר לעיין בדוגמה של CC2538 README ב-GitHub.

הוראות כלליות לפיתוח גרסת build זמינות במאמר איך מפתחים OpenThread.

שימוש במברשת

מסך הצילום של Wireshark מוצג בעת ההפעלה הראשונה של Wireshark. הוא אמור להציג רשימה של ממשקי חומרה שמחוברים ל-sniffer של OpenThread.

צילום מממשק אחד

אם זו הפעם הראשונה שאתם משתמשים בממשק, יש ללחוץ על הלחצן אפשרויות. שמשמאל לממשק:

איסוף OTC של Sniffer Wireshark Extcap

  1. מגדירים את הערוץ לערך הרצוי.
  2. בודקים את TAP לפי IEEE 802.15.4 כדי לוודא שפרטי הערוץ כלול בפלט ה-pcap וניתן להציג אותו ב-GUI של Wireshark.
  3. מסמנים את האפשרות שמירת פרמטרים בתחילת הצילום כדי לוודא הפרמטרים נשמרים לאחר תחילת הצילום, כדי למנוע להגדיר אותה שוב בפעם הבאה שתשתמשו בממשק (אלא אם תצטרכו מחליפים את הערוץ).
  4. לוחצים על Start (הפעלה).

אפשרויות ל-Sniffer Wireshark Extcap של OT

אם הפרמטרים שלך כבר שמורים, אפשר להתחיל לסרוק על ידי בחירה של החומרה ולחיצה על הסמל Wireshark בפינה הימנית העליונה.

צילום מתוך ממשקים מרובים

בוחרים את כל ממשקי החומרה המפורטים במסך הצילום ולוחצים על סמל Wireshark בפינה הימנית העליונה.

יש להשתמש בשדות האלה כדי לזהות רוגשים ספציפיים כשמקליטים מכמה אתרים ממשקים:

  • Interface ID (frame.interface_id) – מזהה ממשק שמשמש את Wireshark לזיהוי ממשק צילום
  • שם הממשק (frame.interface_name) — שם הממשק משמש את Wireshark לזיהוי ממשק לכידה
  • ערוץ (wpan-tap.ch_num) — ערוץ לכידת IEEE 802.15.4 (טווח: 11-26)

חבילות Sniffer Wireshark Extcap של OT

פתרון בעיות

תוכנת ה-sniffer של OpenThread לא רשומה כממשק Wireshark

  1. אם מותקנים אצלכם כמה תרגוםי Python, צריך לוודא ש-Python 3 המתרגם משמש את הסקריפט extcap. Pyspinel לא תומך ב-Python 2.
  2. בדוק אם החומרה מצוינת ב-USB ואם מנהלי ההתקנים נטענים.
  3. מוודאים שהקושחה הנכונה (NCP או RCP) הותאמה אל חומרה.
  4. יש לוודא שהסקריפט Python שנמצא בנתיב extcap הוא קובץ הפעלה.
    • עבור OS X ו-Linux:
      1. צריך לוודא שיש הרשאת הפעלה בשביל extcap_ot.py file:
        ls -l extcap_ot.py
        
      2. אם הרשאת הביצוע (x) חסרה, צריך לשנות את ההרשאות:
        chmod +x extcap_ot.py
        
      3. מוודאים שהממשק מופיע ברשימה:
        extcap_ot.py --extcap-interfaces
        
    • ב-Windows:
      1. מוודאים שהממשק מופיע ברשימה:
        extcap_ot.bat --extcap-interfaces
        
      2. אם ביציאה יש שגיאת Python, צריך לוודא שגרסת Python היא 3.x:
        py -3 --version
        

Wireshark מאפשר רק למשתמש ברמה הבסיסית לתעד חבילות

במהלך התקנת Wireshark ב-Ubuntu, המשתמש מתבקש לבחור מבין האפשרויות הבאות:

  1. ליצור את קבוצת המשתמשים wireshark ולאפשר לכל החברים בה ללכידת חבילות.
  2. מתן אפשרות למשתמש root לתעד רק חבילות.

מומלץ מאוד לא להשתמש ב-Wireshark בתור משתמש root. אם בחרת באפשרות הזו, משנים את ההגדרה:

sudo dpkg-reconfigure wireshark-common

אם ב-Wireshark הוגדר להגביל את הצילום לחברים wireshark, ייתכן שצריך להוסיף את המשתמש הנכון לקבוצה:

sudo usermod -a -G wireshark user

בנוסף, צריך להוסיף את המשתמש הנכון לקבוצה dialout:

sudo usermod -a -G dialout user

סוגרים ומפעילים מחדש את Wireshark כדי להחיל את ההגדרות החדשות של קבוצת המשתמשים.

שגיאה בפורמט Wireshark במהלך צילום בממשקים מרובים של USB ב-Windows

בעיה ידועה בכמה גרסאות ישנות של Wireshark. ודא שאתה משתמש ב-Wireshark 3.0.6 או מאוחר יותר.