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

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

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

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

2
задан 14 October 2015 в 15:40

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, принято заранее согласно таблице маршрутизации. Пакет IP перенесен в соответствующий кадр после поиска ARP.

Несомненно, можно превратить машину в надлежащий переключатель 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. Прибыль (?)
1
ответ дан 15 October 2015 в 01:40

Или Вы можете использовать wireshark, чтобы захватить весь трафик и отфильтровать его протоколом BOOTP или использованием -e выбор напечатать информацию о слое связи и фильтр протокола BOOTP с tcpdump:

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

sudo tcpdump -i any port bootps -e
0
ответ дан 15 October 2015 в 01:40
  • 1
    @Zanna заключают замены команды в кавычки для предотвращения разделения слова, как "$(cat list_of_files.txt)" – Sergiy Kolodyazhnyy 3 January 2017 в 20:51

Другие вопросы по тегам:

Похожие вопросы: