Script Bash: قارن MAC لجميع أجهزة الكمبيوتر على الشبكة مع كمبيوتر محدد

هنا سأتحدث عن سيناريو bash الذي صنعته لغرض محدد للغاية ، والذي أشك في أن الآخرين لديهم هذا الموقف ولكن بما أنني قمت ببرمجته ... لا يكلفني أي شيء لمشاركته 🙂

في الطابق العلوي ، ما هذا؟

يحدث أنه يوجد في مدينتي شبكة كبيرة إلى حد ما ، يتصل الكثير منا بطريقة سلكية (كبل شبكة بمحول ، مرتبط بآخر ، والعديد من المحولات) ، ولكن روابط كبيرة (لا يمكن أن تكون عن طريق الكابل) يفعلون ذلك باستخدام معدات 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 clear # Declaring variables DATE = `date + '٪ Y-٪ m-٪ d_٪ H-٪ M '`` INTERFACE =' wlo1 'WANTEDMAC =' C8: CB: B8: B1: DA: E6 'YOURIP = `ifconfig | grep "192.168" | awk '{print $ 2}' 'YOURZONE = `echo $ YOURIP | awk -F "." '{print $ 3}' '# Pulling Alive Hosts on the network (IP الخاص بك) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "تقرير عن" | awk '{print $ 5}'> hosts-ip # معرفة أي من هذه المضيفات يمكن أن يكون Nano من خلال امتلاك المنفذ 443 open rm hosts-nanos &> / dev / null لـ TMPVAR في `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null if [$؟ - واحد 1] ؛ ثم صدى "$ TMPVAR" >> تم تنفيذ hosts-nanos fi # إزالة MAC من Nanos على الشبكة rm hosts-mac &> / dev / null لـ TMPVAR في `cat hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "رد من" | awk '{print $ 5}' | قطع -d '[' -f2 | cut -d ']' -f1 >> تم إجراء hosts-mac # مقارنة أجهزة MAC المستخرجة مع البحث عن MAC في `cat hosts-mac` إذا كانت [" $ MAC "=" $ WANTEDMAC "] ؛ ثم MACLINE = `cat hosts-mac | grep -n $ MAC | cut -d ':' -f1` IPMAC = `cat hosts-nanos | 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 fi

في حالة العثور على تطابق ، سيُظهر لنا عنوان MAC الذي تم العثور عليه وكذلك عنوان IP المستخدم بواسطة تلك المعدات.

هذا (لا يزال) به ثغرات

الخادم

أعلم أن هناك أشياء يجب تحسينها ، على سبيل المثال يمكن تزوير أجهزة MAC ، ويمكن تغيير MAC إلى الكمبيوتر وهذا كل شيء ، ما زلت أبحث عن كيفية رؤية MAC الحقيقي وليس الخاطئ إذا كان هذا هو الحال.

أيضًا ، من خلال إضافة حلقة for أخرى ، يمكنني إجراء مقارنة بين العديد من أجهزة MAC في نفس الوقت وعدم المقارنة / البحث فقط عن واحدة محددة ، أي البحث عن أجهزة MAC الموجودة في قائمة ، 5 ، 10 ، مهما كانت. إنه شيء لم أفعله بعد.

ربما يكون Nano ولكنه يحتوي على المنفذ 443 محظورًا ، أعرف كيف أكون قادرًا على معرفة ما إذا كان جهاز Ubiquiti أم لا ، أي باستخدام curl (أو wget) يمكنني الحصول على نموذج تسجيل الدخول ومقارنته بأحد Ubiquiti ، هذه طريقة أكثر أمانًا من المنفذ 443. إنها تفاصيل أخرى يجب إضافتها في الإصدارات المستقبلية.

أود أيضًا (وهو أمر صعب بالفعل بالنسبة لي) إنشاء برنامج نصي صغير أو حتى APK للحصول على هذه الأداة على جهاز Android. أعلم أنني لن أتمكن من وضعه اللعب مخزن لكن…. بوه ، ليس هذا ما أريده 😀

آه ، مستخدمو iPhone ... ولا حتى لو استطعت (للمعرفة والوقت) هل يمكنني نقل هذه الأداة إلى iOS ... JUAZ JUAZ JUAZ ... Apple Store دعونا نرى ما إذا كان لديهم بالصدفة شيء مشابه ، وهو ما أشك فيه 😀

نهاية

الخير هو كل شيء. أكرر ، أعتقد أن النص المحدد قد لا يكون مفيدًا للكثيرين (إنه لحالة محددة تمامًا) ، ولكن ربما أجزاء من الكود نعم ، آمل وكذلك


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   انجيل بليد قال

    باستخدام nmap ، يمكنك الحصول على عنوان MAC دون الحاجة إلى القيام برسم خرائط IPS وهذا التحقق باستخدام nc وهذا الاستخدام لـ arping

    الخيار هو -PR

    شيء من هذا القبيل
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{print $ 3}

    1.    إليوتيمي 3000 قال

      نصيحة جيدة ، على الرغم من أنها تتطلب الجذر بالضرورة.

  2.   داريو قال

    لا يمكن قراءة bash بشكل عام إلا إذا قمت بعمل النص بنفسك. لكن رموزك مفهومة xD

    شيء آخر يمكنك القيام به هو اختبار ping بسيط لعناوين IP المختلفة ، ثم تنظر إلى جداول arp باستخدام الأمر arp -a (في بعض الحالات عليك تثبيت أدوات net) وعناوين mac التي تم اختبارها على ما أعتقد الحل الأسرع.

  3.   داريو قال

    أو الأفضل من ذلك
    صدى "اختبار"> /dev/tcp/www.google.com/80
    إذا أعطى خطأ ، يتم إغلاق المنفذ (80)

  4.   ماريو قال

    مرحبًا ، هل يمكنك تنفيذ SNMP لتكون قادرًا على تحديد مشكلات مثل نوع المعدات والعلامة التجارية والإمكانيات التي تمتلكها ، ويمكن أن تكون أيضًا الإجابة على حالة MAC الافتراضية أو المتغيرة ؛ يمكنك حتى الحصول على "إدارة" إذا أسيوط. خدمة snmp ضعيفة. مجرد رأي ، يفتح المجال لإمكانيات السيناريو الخاص بك. مدونة جيدة جدًا ، أنا سعيد لأنني عثرت عليها ، قرأتها كثيرًا! عناق.

  5.   فرانك الكسندر قال

    هذا السيناريو باش ملهم للغاية.

  6.   ناري قال

    النص مفهومة وجيدة جدًا ، شكرًا لك ، لقد أعطاني أفكارًا جيدة ، تحياتي

  7.   بيغاسوسونلاين قال

    سيكون من الرائع أن تضعه على GITHUB ، لذلك نتعاون جميعًا هناك.

    شكرا للمشاركة!
    تحياتي

  8.   لوسيانو لاغاسا قال

    مرحبًا ، جيد جدًا برنامج bash الخاص بك ، من جانبي أوصي أنه لتحسين الأمان ، يمكنك تنفيذ طريقة مصادقة ، مثل wps ، لمنع المستخدمين غير المصرح لهم أو المطرودين من الدخول. هناك الكثير من البرامج التي يمكنهم استخدامها.

  9.   صائد قال

    عند انتحال جهاز Mac ، فإن ما تفعله هو إرسال حزمة mac المزيفة في حزم (layer 2 OSI) ، لا يمكنك اكتشاف الحزمة الحقيقية ما لم تتم إعادة تعيين بطاقة شبكة المهاجم.

  10.   الكسندر سيجاس قال

    أنا مهتم بالسيناريو الخاص بك ... حسنًا ، لقد كنت أبحث عن نص أكثر تعقيدًا أو ربما بسيطًا ...

    الشيء هو أنني أمتلك شبكة كبيرة من 250 جهازًا وهناك نقاط Wi-Fi لكنهم يشترون نفس قطعة الأرض ...

    ستعرف كيف يمكنني مقارنة جهاز mac مع IP وأنه يجب الإعلان عنه مسبقًا ، لذلك عندما يكون هناك شخص مضحك يغير عنوان IP ، احصل على تنبيه بأن IP و mac لا يتطابقان.

    آمل أن أكون قد شرحت نفسي….

    على الرغم من أنني بحثت في كل مكان لا أجد أي شيء عن ذلك ...

  11.   هوتميل قال

    شكرًا لمشاركة البرنامج النصي ، سأضطر إلى إجراء بعض التعديلات عليه ، لكن هذا ما كنت أبحث عنه في الأساس ، وقد أقدر ذلك مرة أخرى. في صحتك

  12.   إيزيدورو قال

    فقط ما كنت أبحث عنه ، لأنني بحاجة إلى توت العليق لاكتشاف متى يتصل هاتفي بشبكة wifi لتشغيل باش آخر.
    شكرا جزيلا