Script Bash: השווה את MAC בין כל המחשבים ברשת למחשב ספציפי

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

למעלה, במה מדובר?

קורה שבעיר שלי יש רשת די גדולה, רבים מאיתנו מתחברים בצורה קווית (כבל רשת למתג, מקושר לאחר, ומתגים רבים hehe), אבל קישורים גדולים (שלא יכולים להיות בכבלים) הם עושים עם ציוד Wi-Fi, באופן זה יש לך רשת עם כמה אלפי משתמשים, שלמרות שאין שירות דואר והרבה פחות אינטרנט, אתה כן משחק WoW (בין היתר), אתה לומד, משתף מידע וכו '.

העובדה היא שזה היה שציוד Wi-Fi מסוים נאסר או גורש מהרשת, כיוון שבעליו מפר את כללי הרשת, או כל דבר אחר. לכן, יש צורך לבצע סריקה בכל פעם X כדי לבדוק אם מישהו חיבר מחדש את ה- MAC של המחשב שנפלט, וכאן נכנס סקריפט זה.

במילים פשוטות, מה התסריט עושה?

  1. ראשית הוא מבצע סריקה ברשת המשנה בה הוא פועל ומזהה את המארחים החיים (ה- IP הפעילים)
  2. לאחר מכן, בדוק אם אחד מאותם כתובות ה- IP הוא Ubiquiti (ציוד המשמש לקישורים). זה למעשה מגלה רק אם יציאה 443 פתוחה בכל אחת מה- IP שלעיל.
  3. זה מסיר את ה- MAC של כל מכשיר חי ועם יציאה 443 פתוחה, ובמקביל משווה כל MAC שחולץ לזה שנמצא בחיפוש.
  4. במקרה שהוא מוצא התאמה, הוא יוצר דוח.

יאללה לקוד!

תקף להבהיר כי לצורך פעולתו הוא זקוק לחבילות הבאות המותקנות: nmap ... nc ... arping

ובכן, עם nmap היא עושה את המיפוי כדי לזהות כתובות IP פעילות, עם nc ואז היא בודקת באיזו מהן יש יציאה 443 פתוחה, ולבסוף בעזרת arping היא מחלצת את ה- MAC.

כן, אני יודע שעם nmap אתה יכול לעשות את כל זה, אבל זה לקח מספר שניות (או דקות נוספות), העדפתי להשתמש בכמה כלים במקום אחד בלבד כדי שהכל יעבוד מהר יותר.

כן עכשיו…. הקוד!

#! / bin / bash # # מחייב התקנת החבילות: # nmap, arping, nc # # מחבר: KZKG ^ Gaara ברור # הצהרת משתנים DATE = 'תאריך +'% Y-% m-% d_% H-% M 'INTERFACE =' wlo1 'WANTEDMAC =' C8: CB: B8: B1: DA: E6 'YOURIP = `ifconfig | grep "192.168" | awk '{print $ 2}' 'YOURZONE = `הד $ YOURIP | awk -F "." '{print $ 3}' '# # הסרת מארחים חיים ברשת (ה- IP שלך) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "דווח על" | awk '{print $ 5}'> hosts-ip # לראות מי מאותם מארחים יכול להיות ננו על ידי יציאה 443 open rm hosts-nanos &> / dev / null עבור TMPVAR ב 'cat hosts-ip' do nc -zv -w 2 $ TMPVAR 443 &> / dev / null אם [$? -ne 1]; ואז מהדהד "$ TMPVAR" >> hosts-nanos fi done # קבלת MAC מ- Nanos ברשת rm hosts-mac &> / dev / null עבור TMPVAR ב- `host hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "תשובה מאת" | awk '{הדפס $ 5}' | חתוך -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # השוואת MACs שחולצו עם ה- MAC שחיפש ב- `hosts hosts-mac` לעשות אם [" $ MAC "=" $ WANTEDMAC "]; ואז MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `חתולי מארח-ננו | sed $ MACLINE'q; d'` echo -e "\ n \ t ALERT, MAC של מכשיר גנוב זוהה: $ MAC ... עם IP: $ IPMAC" echo -e "\ t ... יוצר דוח ... דוח "echo -e" שנוצר על ידי SpyMac \ n "> final_report_ $ YOURZONE.info echo -e" דוח רגע: $ DATE \ n ">> final_report_ $ YOURZONE.info echo -e" MAC של מכשיר גנוב זוהה: $ WANTEDMAC \ n ">> final_report_ $ YOURZONE.info echo -e" IP המשמש כרגע על ידי מחשב זה: $ IPMAC \ n ">> final_report_ $ YOURZONE.info echo -e" דוח שנוצר על ידי: $ YOURIP \ n ">> final_report_ $ YOURZONE.info הסתיים

במקרה שנמצא התאמה, הוא יראה לנו את ה- MAC שנמצא וגם את ה- IP המשמש את אותו ציוד.

לזה (עדיין) יש פערים היי

שרת

אני יודע שיש דברים שיש לשפר, למשל ניתן לזייף את ה- MAC, את ה- MAC ניתן לשנות למחשב וזהו, אני עדיין מחפש איך לראות את ה- MAC האמיתי ולא את השקר אם זה המקרה.

כמו כן, על ידי הוספת עוד לולאה, אוכל לגרום להשוואה של מספר מקש במקביל ולא להשוות / לחפש רק אחר ספציפי אחד, כלומר לחפש את מקש ה- MAC שנמצא ברשימה, 5, 10, מה שלא יהיה. זה משהו שעוד לא עשיתי.

אולי זה ננו אבל יש לו יציאה 443 חסומה, אני יודע לדעת באבטחה מוחלטת אם זה מכשיר Ubiquiti או לא, כלומר עם תלתל (או wget) אני יכול לקבל את טופס הכניסה ולהשוות אותו עם אחד מ- Ubiquiti, זו שיטה מאובטחת יותר מאשר ביציאה 443. זהו פרט נוסף להוסיף בגרסאות עתידיות.

אני גם רוצה (שכבר יהיה קשה לי) ליצור סקריפט קטן או אפילו APK כדי שהכלי הזה יהיה אנדרואיד שלי. אני יודע שלא אוכל להכניס אותו ל בחנות Play אבל…. בואה, זה לא שאני רוצה 😀

אה, משתמשי אייפון ... אפילו לא אם אוכל (לידע וזמן) הייתי מעביר את הכלי הזה ל- iOS ... JUAZ JUAZ JUAZ ... תסתכלו שלך חנות App בואו נראה אם ​​במקרה יש להם משהו דומה, שאני בספק 😀

סוף

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   אנג'לבלייד דיג'ו

    באמצעות nmap תוכלו לקבל את כתובת ה- MAC מבלי שתצטרכו לבצע את מיפוי ה- ips ואת האימות באמצעות nc ושימוש ב- arping.

    האופציה היא -PR

    משהו כזה
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{הדפס $ 3}

    1.    אליוטיים 3000 דיג'ו

      טיפ טוב, אם כי הוא דורש שורש בהכרח.

  2.   דריו דיג'ו

    bash בדרך כלל די קריא אלא אם כן עשית את התסריט בעצמך. אבל הקודים שלך מובנים xD

    דבר נוסף שתוכלו לעשות הוא פינג פשוט לכתובות ה- IP השונות ואז תסתכלו על טבלאות ה- arp עם הפקודה arp -a (בחלק מהמקרים עליכם להתקין כלי נטו) ואת כתובות ה- mac שהיו מועברות אני חושב שזה הפיתרון המהיר ביותר.

  3.   דריו דיג'ו

    או יותר טוב
    הד "מבחן"> /dev/tcp/www.google.com/80
    אם זה נותן שגיאה היציאה (80) סגורה

  4.   מריו דיג'ו

    שלום, האם אתה יכול ליישם SNMP כדי להיות מסוגל לזהות נושאים כגון איזה סוג של ציוד זה, איזה מותג, אילו יכולות יש לו, זה יכול להיות גם התשובה למקרה MAC שונה או וירטואלי; אתה יכול אפילו להגיע ל"ניהול "אם ה conf. שירות snmp חלש. רק דעה, פותחת את מגוון האפשרויות של התסריט שלך. בלוג טוב מאוד, אני שמח שמצאתי אותם, קראתי אותם לעיתים קרובות! לְחַבֵּק.

  5.   פרנק אלכסנדר דיג'ו

    התסריט הבאש הזה מעורר השראה אדירה.

  6.   חומת אש דיג'ו

    התסריט מאוד מובן וטוב מאוד, תודה, זה נתן לי רעיונות טובים, ברכות

  7.   פגסוסונליין דיג'ו

    זה יהיה נהדר אם תשים את זה ב- GITHUB, אז כולנו נשתף פעולה שם.

    תודה על השיתוף!
    לגבי

  8.   לוצ'יאנו לגאסה דיג'ו

    שלום, סקריפט ה- bash שלך טוב מאוד, מצידי אני ממליץ שכדי לשפר את האבטחה תוכל ליישם שיטת אימות, כגון wisps, על מנת למנוע כניסה של משתמשים לא מורשים או גורשים. יש הרבה תוכנות שהם יכולים להשתמש בהן.

  9.   מטלטל דיג'ו

    כשאתה מזויף Mac, מה שאתה עושה זה לשלוח את ה- Mac המזויף בחבילות (שכבה 2 OSI), אתה לא יכול לגלות את האמיתי אלא אם כן מאופס את כרטיס הרשת של התוקף.

  10.   אלכסנדר סייאס דיג'ו

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

    העניין הוא שיש לי רשת גדולה של 250 מכונות ויש נקודות Wi-Fi אבל הן קונות את אותה חלקה ...

    אתה תדע איך אוכל לגרום למק להשוות עם ip וכי יש להכריז עליו בעבר, לכן כאשר יש אדם מצחיק שמשנה את ה- ip, יש להתריע כי ה- ip וה- mac אינם תואמים.

    אני מקווה שהסברתי את עצמי ....

    למרות שחיפשתי בכל מקום אני לא יכול למצוא שום דבר על זה ....

  11.   Hotmail דיג'ו

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

  12.   איזידור דיג'ו

    בדיוק מה שחיפשתי, כי אני צריך את הפטל שלי כדי לזהות מתי הטלפון שלי מתחבר ל- wifi כדי להפעיל עוד bash.
    תודה רבה