Bash Script: Порівняйте 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 # Оголошення змінних 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}' `` # Витягування живих хостів у мережі (ваш 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}' | | вирізати -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Порівнюючи витягнуті MAC з пошуковим MAC в `cat hosts-mac`, виконайте, якщо [" $ MAC "=" $ WANTEDMAC "]; тоді MACLINE = `cat hosts-mac | grep -n $ MAC | вирізати -d ':' -f1` IPMAC = `кішки-хости-нано | sed $ MACLINE'q; d'` echo -e "\ n \ t ПОВІДОМЛЕННЯ, виявлено 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 Маркет але ... ну, це не те, що я хочу 😀

Ах, користувачі iPhone ... навіть якщо б я міг (для знань та часу), я б не переніс цей інструмент на iOS ... JUAZ JUAZ JUAZ ... загляньте у ваш App Store Подивимось, чи випадково у них є щось подібне, в чому я сумніваюся 😀

кінець

Гарне - це все. Повторюю, я думаю, що конкретний сценарій може бути не корисним для багатьох (це для цілком конкретної ситуації), але, можливо, частини коду так, сподіваюся, і це так like


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   ангельський клинок - сказав він

    За допомогою nmap ви можете отримати МАС-АДРЕСУ, не вимагаючи робити цього відображення ips та перевірки за допомогою nc та використання arping

    опція -PR

    щось таке
    sudo nmap -sn IpAddress / netmask -PR | grep MAC | awk '{друк $ 3}

    1.    eliotime3000 - сказав він

      Хороша порада, хоча для цього обов’язково потрібен корінь.

  2.   дарйо - сказав він

    bash зазвичай є досить нечитабельним, якщо ви не зробили сценарій самостійно. але ваші коди зрозумілі xD

    Інша річ, яку ви можете зробити, - це простий пінг на різні IP-адреси, тоді ви дивитесь на таблиці arp за допомогою команди arp -a (у деяких випадках вам потрібно встановити мережеві інструменти) та адреси mac, які були проінговані, я думаю, що це так найшвидше рішення.

  3.   дарйо - сказав він

    або ще краще
    echo "test"> /dev/tcp/www.google.com/80
    якщо видає помилку, порт (80) закритий

  4.   Маріо - сказав він

    Здрастуйте, ви можете застосувати SNMP, щоб мати можливість виявити такі проблеми, як тип обладнання, марка, які можливості він має, це також може бути відповіддю на випадок зміненого або віртуального MAC; ви навіть можете дістатися до "управління", якщо конф. 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.   Ісидора - сказав він

    Саме те, що я шукав, тому що мені потрібна моя малина, щоб виявити, коли мій телефон підключається до Wi-Fi, щоб запустити ще один Bash.
    Велике спасибі