Bash Script: Сравнете MAC на всички компютри в мрежа с конкретен

Тук ще говоря за bash скрипт, който направих с много конкретна цел, за която се съмнявам, че другите имат тази ситуация, но тъй като я програмирах ... не ми струва нищо да я споделя share

Горе, за какво става въпрос?

Случва се, че в моя град има доста голяма мрежа, много от нас се свързват по кабелен начин (мрежов кабел към комутатор, свързан към друг и много комутатори хехе), но големи връзки (които не могат да бъдат чрез кабел) Те правите с 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 # Деклариране на променливи DATE = `date + '% Y-% m-% d_% H-% M '' ИНТЕРФЕЙС = 'wlo1' WANTEDMAC = 'C8: CB: B8: B1: DA: E6' YOURIP = `ifconfig | grep "192.168" | awk '{print $ 2}' `` YOURZONE = `echo $ YOURIP | awk -F "." '{print $ 3}' `` # Издърпване на живи хостове в мрежата (вашия IP) nmap -sn 192.168. $ YOURZONE.0 / 24 | grep "доклад за" | awk '{print $ 5}'> hosts-ip # Виждайки кой от тези хостове може да бъде Nano, като има порт 443 отворен rm hosts-nanos &> / dev / null за TMPVAR в `cat hosts-ip` do nc -zv -w 2 $ TMPVAR 443 &> / dev / null ако [$? -не 1]; след това echo "$ TMPVAR" >> hosts-nanos fi done # Премахване на MAC от Nanos в мрежата rm hosts-mac &> / dev / null за TMPVAR в `cat hosts-nanos` do arping -I $ INTERFACE -f $ TMPVAR | grep "отговор от" | awk '{print $ 5}' | cut -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Сравняване на извлечени 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. Знам, че няма да мога да го сложа Play Store но…. буе, не че искам 😀

А, потребители на iPhone ... дори ако мога (поради знания и време), не бих пренесъл този инструмент на iOS ... JUAZ JUAZ JUAZ ... погледнете във вашия App 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.    eliotime3000 каза той

      Добър съвет, въпреки че задължително изисква корен.

  2.   дарио каза той

    bash обикновено е доста нечетлив, освен ако не сте направили сценария сами. но вашите кодове са разбираеми xD

    Друго нещо, което можете да направите, е обикновен пинг към различните IP адреси, след което разглеждате таблиците на arp с командата arp -a (в някои случаи трябва да инсталирате мрежови инструменти) и Mac адресите, които са били пингирани, мисля, че е най-бързият решение.

  3.   дарио каза той

    или още по-добре
    echo "test"> /dev/tcp/www.google.com/80
    ако даде грешка, портът (80) е затворен

  4.   Mario каза той

    Здравейте, бихте ли могли да внедрите SNMP, за да можете да идентифицирате проблеми като какъв тип оборудване е, каква марка, какви възможности има, променен или виртуален MAC също може да бъде отговорът на случая; можете дори да стигнете до "управление", ако conf. snmp услугата е слаба. Само мнение, отварящо диапазона от възможности на вашия скрипт. Много добър блог, радвам се, че ги намерих, чета ги често! прегръдка.

  5.   Франк Александър каза той

    Този баш сценарий е изключително вдъхновяващ.

  6.   пожар каза той

    Сценарият е много разбираем и много добър, благодаря, даде ми добри идеи, Поздрави

  7.   pegasusonline каза той

    Би било чудесно, ако го поставите в GITHUB, така че всички ще си сътрудничим там.

    Благодаря за споделянето!
    поздрави

  8.   Лучано Лагаса каза той

    Здравейте, вашият bash скрипт е много добър, от моя страна препоръчвам, за да подобрите сигурността, можете да внедрите метод за удостоверяване, като Wisps, за да предотвратите влизането на неоторизирани или изгонени потребители. има много софтуер, който могат да използват.

  9.   dhunter каза той

    Когато подправяте mac, това, което правите, е да изпратите фалшивия mac в пакети (слой 2 OSI), не можете да откриете истинския, освен ако мрежовата карта на атакуващия не бъде нулирана.

  10.   Александър Сейджас каза той

    Интересува ме вашият скрипт ... е, търсил съм малко по-сложен или може би прост.

    Работата е там, че имам голяма мрежа от 250 машини и има Wi-Fi точки, но те купуват същия парцел ...

    Ще разберете как мога да направя mac да се сравни с ip и че той трябва предварително да бъде деклариран, така че когато има забавен човек, който променя ip, имайте предупреждение, че ip и mac не съвпадат.

    Надявам се да съм се обяснил….

    Въпреки че съм търсил навсякъде, не мога да намеря нищо за това ....

  11.   Hotmail каза той

    Благодаря, че споделихте скрипта, ще трябва да направя някои модификации по него, но основно това, което търсех, отново оценявам. Наздраве

  12.   Исидор каза той

    Точно това, което търсех, защото се нуждая от моята малина, за да открия кога телефонът ми се свързва с wifi, за да стартирам друг баш.
    много ви благодаря