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 # Объявление переменных 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}' | вырезать -d '[' -f2 | cut -d ']' -f1 >> hosts-mac done # Сравнение извлеченных MAC с искомым MAC в `cat hosts-mac` do if [" $ MAC "=" $ WANTEDMAC "]; затем MACLINE = `cat hosts-mac | grep -n $ MAC | вырезать -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 Маркет но…. бух, это не то, что я хочу 😀

Ах, пользователи 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.    элиотайм3000 сказал

      Хороший совет, хотя рут нужен обязательно.

  2.   дарио сказал

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

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

  3.   дарио сказал

    или еще лучше
    echo "test"> /dev/tcp/www.google.com/80
    если выдает ошибку, порт (80) закрыт

  4.   Марио сказал

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

  5.   Фрэнк Александр сказал

    Этот сценарий bash очень вдохновляет.

  6.   холодный огонь сказал

    Сценарий очень понятный и очень хороший, спасибо, он дал мне хорошие идеи, Приветствую

  7.   pegasusonline сказал

    Было бы здорово, если бы вы поместили его в GITHUB, чтобы мы все работали там.

    Спасибо, что поделился!
    привет

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

    Здравствуйте, ваш сценарий bash очень хорош, со своей стороны я рекомендую, чтобы для повышения безопасности вы могли реализовать метод аутентификации, такой как wisps, чтобы предотвратить вход неавторизованных или исключенных пользователей. есть много программного обеспечения, которое они могут использовать.

  9.   Данхантер сказал

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

  10.   Александр Сейяс сказал

    Мне интересен ваш сценарий ... ну, я искал более сложный или простой ...

    дело в том, что у меня большая сеть из 250 машин и есть точки Wi-Fi, но они покупают тот же участок ...

    Вы знаете, как я могу сравнить Mac с IP-адресом и что он должен быть предварительно объявлен, поэтому, когда есть забавный человек, который меняет IP-адрес, получайте предупреждение о том, что IP-адрес и Mac не совпадают.

    Надеюсь, я объяснил….

    Хотя я везде искал, я ничего не нашел об этом ...

  11.   Hotmail сказал

    Спасибо за то, что поделились сценарием, мне придется внести в него некоторые изменения, но в основном это то, что я искал, снова оценил. С уважением

  12.   Исидоро сказал

    Именно то, что я искал, потому что мне нужна моя малина, чтобы определять, когда мой телефон подключается к Wi-Fi, чтобы запустить другой bash.
    Большое спасибо