Получить MAC-адрес подключенного, немеченого, ненастроенного, ненастраиваемого устройства Ethernet?

Предположим, у вас есть какая-то встроенная плата с Ethernet, подключенная к порту Ethernet на вашем ноутбуке. Вы ничего не знаете о его конфигурации сети (пока). Вы знаете, что он загружается, но он безголовый и имеет только порт Ethernet. У него нет IP-адреса (пока).

Как вы узнаете MAC-адрес устройства?

Я посмотрел на arp, arping, arp-scan, arpwatch. Единственное, что я обнаружил, - это использование tshark и прочесывание изверга вручную.

2 ответа

Бег равнины tshark или же tcpdump производит грязный вывод, потому что весь трафик, исходящий с вашей машины, тоже регистрируется.

Пытаться

tcpdump -i eth0 -lenq 'ether src not <your_mac>'
  • -e захватывает кадр Ethernet
  • -l мгновенно очищает буфер stdout
  • -n не разрешать имена хостов
  • -q будь тише.
  • замещать <your_mac> по MAC-адресу вашего локального интерфейса, например: ip addr show,
  • очевидно заменить eth0 с правильным интерфейсом. Если вы используете Windows, используйте tshark -D перечислить все интерфейсы.
  • (Изменить) В Linux вы можете использовать tcpdump вместо установки tshark который требует установки целого wireshark пакет. tcpdump должен быть предварительно установлен на Ubuntu (он находится в метапакете ubuntu-standard).

Альтернатива: если вы хотите, чтобы исходные MAC-адреса были только выходными, сделайте (вдохновленный и бесстыдно адаптированный комментариями ОП ниже)

ETH=eth0;MAC=$(cat /sys/class/net/$ETH/address); tcpdump -lenq -i $ETH "ether src not $MAC" | awk '{print $2}'

Лучше всего начать захват без ссылки, а затем подключить кабель.

Я не думаю, что есть способ обнюхивать движение. Причиной сбоя ARP является то, что устройство не имеет IP-адреса и не отвечает на запросы ARP.

Другим возможным решением было бы подключить устройство к управляемому коммутатору и считать таблицу MAC-адресов, но я чувствую, что это не вариант для вас.

В любом случае, чтобы устройство могло быть обнаружено, оно должно отправлять какой- либо трафик Ethernet. Если вам повезет, он отправляет DHCP/Bootp обнаружение, которое вы можете прослушать.

(Правка) Почему хост не держит таблицу MAC, как коммутатор? Ну, это не нужно, потому что это не переключатель. В отличие от коммутатора, решение о том, какой интерфейс выдает кадр Ethernet, принимается заранее в соответствии с таблицей маршрутизации. После поиска ARP IP-пакет помещается в соответствующий кадр.

Конечно, вы можете превратить вашу машину в правильный переключатель L2. Вы можете создать мост между несколькими физическими интерфейсами. Я немного возился с этим, и, как оказалось, вы можете получить хороший стол MAC!

  1. устанавливать bridge-utils из хранилища.
  2. Создайте новый мост Ethernet в /etc/network/interfaces

    auto br0
    iface br0 inet static # dhcp goes as well
     address ...
     network ...
     bridge_ports eth0
     up /sbin/brctl setageing br0 300
     up /sbin/brctl stp br0 0
    

    Это определяет "мост" (на самом деле нет моста - только один интерфейс) без связующего дерева stp br0 off, Адреса будут устаревать через 300 лет. Установите это по своему вкусу, но не низко.

  3. Подними мост ifup br0
  4. Проверьте, если это brctl show и просмотреть таблицу MAC

    brctl showmacs br0
    
  5. Прибыль (?)

Либо вы можете использовать wireshark для захвата всего трафика и фильтрации его по bootp, либо использовать -e опция для вывода информации о канальном уровне и фильтра bootp с помощью tcpdump:

http://www.tcpdump.org/tcpdump_man.html

sudo tcpdump -i any port bootps -e
Другие вопросы по тегам