Инструмент командной строки для получения информации о поставщике OUI с MAC-адреса?

13

Я нашел некоторые инструменты, которые, по-видимому, обновляют базу данных поставщиков MAC-адресов OUI в моей системе, например get-oui , airodump-ng-oui-update или update-oui:

update-oui(8)                          OUI                         update-oui(8)

NAME
       update-oui - download new version of the OUI and IAB lists

SYNOPSIS
       update-oui

DESCRIPTION
       update-oui  fetches  the  current  version  of the OUI and IAB lists from
       http://standards.ieee.org/regauth/oui/index.shtml and installs it, if the
       installed versions is older than 5 days.

       This utility requires curl, wget or libwww-perl to be installed.

OPTIONS
       -q     Be quiet. Do not output messages.

       -f     Force the update, even if the file is newer than 5 days.

FILES
       /usr/share/misc/
              Directory holding symbolic links to oui.txt and iab.txt

Но если я ищу IP-адреса в моей сети:

luis@Zarzamoro:~$ sudo netdiscover -i eth1

 92 Captured ARP Req/Rep packets, from 12 hosts.   Total size: 5520
 _____________________________________________________________________________
   IP            At MAC Address      Count  Len   MAC Vendor
 -----------------------------------------------------------------------------
 192.168.4.31    bc:f1:f2:12:b4:93    60    3600   Unknown vendor
 192.168.4.24    f0:db:e2:de:11:80    02    120   Unknown vendor
 192.168.4.242   00:1d:7e:9c:6e:fc    05    300   Cisco-Linksys, LLC
 192.168.4.243   00:1c:10:64:63:ac    05    300   Cisco-Linksys, LLC
 192.168.4.244   00:1c:10:64:5f:94    05    300   Cisco-Linksys, LLC
 192.168.4.1     d8:61:94:e5:0b:1d    05    300   Unknown vendor
 192.168.4.246   00:1a:70:2f:ab:4b    04    240   Cisco-Linksys, LLC
 192.168.4.10    84:11:9e:2b:1c:d6    01    060   Unknown vendor
 192.168.4.11    ec:1f:72:5d:42:d0    02    120   Unknown vendor
 192.168.4.245   00:1a:70:2f:aa:63    01    060   Cisco-Linksys, LLC
 192.168.4.248   00:1a:70:2f:aa:d1    01    060   Cisco-Linksys, LLC
 192.168.4.251   44:d9:e7:0a:0b:98    01    060   Unknown vendor

Пока есть некоторые MAC, о которых Unknown vendorя сообщал , я хотел бы искать информацию в любой базе данных OUI.

Какой правильный способ командной строки для выполнения этого поиска ?
Может быть что-то вроде:

oui-info 44:d9:e7

Примечание: я знаю, что с помощью веб-браузера я могу использовать Google для первых 3 пар MAC, но мне нужен какой-то метод командной строки, чтобы я мог написать его или использовать через удаленный вход (SSH).

Сопалахо де Арриерес
источник

Ответы:

2

Хотя это может быть написано более элегантно, следующее работает в дистрибутивах Linux без каких-либо зависимостей от специализированных пакетов. Он анализирует выходные данные команды IP, изолирует часть mac-адреса вендора в переменную, которая в конечном итоге выводится через онлайн-базу данных префиксов вендора.

#!/bin/bash

OUI=$(ip addr list|grep -w 'link'|awk '{print $2}'|grep -P '^(?!00:00:00)'| grep -P '^(?!fe80)' | tr -d ':' | head -c 6)

curl -sS "http://standards-oui.ieee.org/oui.txt" | grep -i "$OUI" | cut -d')' -f2 | tr -d '\t'

Приложив немного творческого подхода, вы можете адаптировать его для удаленного выполнения через ssh. Я видел другие предложения по идентификации данных о поставщике, которые использовали dmidecodeдля снятия отпечатков ОС, но при тестировании у него были противоречивые результаты. На Raspberry Pi ничего dmidecodeне получается. HTH-

F1Linux
источник
Это лучший ответ, по моему скромному мнению, потому что он дает ответ без необходимости (почти) установленных инструментов, и, пока IEEE.Org постоянно обновляется (должен), он должен быть лучшей базой данных для доступа. Единственным недостатком является необходимость в Интернете; не большая проблема в наше время.
Сопалахо де Арриерес
Было много онлайн-баз данных OUI, управляемых частными лицами / организациями. Но я выбрал ieee.org, потому что риск его исчезновения или изменения ссылки был меньше. Рад, что смог помочь вам
F1Linux
13

Я не думаю, что есть автоматизированный инструмент, чтобы делать то, что вы просите, но это можно сделать, работая непосредственно с файлами oui.txt.

Прежде всего, он определяет загруженный файл, например:

root@kalilloX:~# locate oui.txt
/var/lib/ieee-data/oui.txt

затем найдите интересующую вас строку. Вы должны удалить :или вместо этого вставить -:

root@kalilloX:~# grep -i "44d9e7" /var/lib/ieee-data/oui.txt
44D9E7     (base 16)        Ubiquiti Networks, Inc.
LilloX
источник
И косвенный метод, но полностью функциональный и, вероятно, действительный на любом * nix, даже на некоторых встроенных устройствах. Спасибо вам.
Сопалахо де Арриерес
1
Для простоты использования вы можете определить функцию в вашем приложении .bashrcследующим образом: oui() { grep -i "$1" /var/lib/ieee-data/oui.txt; }и использовать ее следующим образомoui 44D9E7
Aralox
3

Ответ, аналогичный ответу LilloX, но с использованием nMap (если он установлен в системе):

luis@balanceador:~$ locate nmap-mac-prefixes
/usr/share/nmap/nmap-mac-prefixes
luis@balanceador:~$ grep 0024A5 -i /usr/share/nmap/nmap-mac-prefixes
0024A5 Buffalo

Предположительно, работает с любой другой программой, которая хранит информацию о OUI, например airodump-ng-oui-update(для oui.txtфайла в этом случае) или несколькими другими:

  • /usr/share/btscanner/oui.txt
  • /usr/share/bluelog/oui.txt
  • /usr/share/ieee-data/oui.txt
  • /usr/share/golismero/thirdparty_libs/netaddr/eui/oui.txt
  • /usr/share/metasploit-framework/vendor/bundle/ruby/2.1.0/gems/packetfu-1.1.11/examples/oui.txt
  • /etc/unicornscan/oui.txt
  • /var/lib/ieee-data/oui.txt
Сопалахо де Арриерес
источник
1

Вы можете получить фактического поставщика, сделав запрос, используя что-то вроде CURL для этого API:

curl -XGET "https://api.macaddress.io/v1?apiKey=at_2d31hlNQAO1PXZVTecL6yoVAxI8IW&output=vendor&search=bc:f1:f2:12:b4:93"

ИЛИ

wget -qO- "https://api.macaddress.io/v1?apiKey=at_2d31hlNQAO1PXZVTecL6yoVAxI8IW&output=vendor&search=bc:f1:f2:12:b4:93"

Для неизвестных MAC-адресов в списке он вернул следующие результаты:

bc:f1:f2:12:b4:93 -> Cisco Systems, Inc
f0:db:e2:de:11:80 -> Apple, Inc
d8:61:94:e5:0b:1d -> Objetivos y Sevicios de Valor Añadido
84:11:9e:2b:1c:d6 -> Samsung Electronics Co, Ltd
ec:1f:72:5d:42:d0 -> Samsung Electro-Mechanics(Thailand)
44:d9:e7:0a:0b:98 -> Ubiquiti Networks Inc

Чтобы воспользоваться услугой, вам необходимо получить apiKey, который предоставляется бесплатно, если вы выполняете менее 1000 запросов в день.

Дмитрий С
источник
Действительно, практичный метод. Похоже, что это сайт, который предлагает услуги идентификации MAC (см. Расценки на большое количество запросов на macaddress.io/pricing ), а на сегодняшний день (октябрь 2018 г.) запросы API, подобные описанным в этом ответе, кажутся бесплатными. , Спасибо вам, Дмитрий С.
Сопалахо де Арриерес
0

Я написал скрипт для обновления oui и iab-файлов. Основная проблема заключается в том, что форма nmap-файлов не такая же, как для btscan или arpwatch и т. Д., Они часто имеют разные формы (MAC-адрес с двойными точками, с дефисами, без разделителей, прописные буквы, строчные буквы и т. Д. ,

Вы можете попробовать этот скрипт, он хранится по адресу https://github.com/burningfog/refresh_oui .

Пожалуйста, прочтите readme-файл и, если есть какие-либо вопросы, дайте мне подсказку по почте, пожалуйста. Если в github есть другие инструменты, кроме названных, пожалуйста, дайте мне путь к oui-файлу и некоторые строки из этого файла, чтобы я мог взглянуть на эту форму.

Привет Горящий Туман

burningfog
источник
-1
cat `locate nmap-mac-prefixes` | grep -i ^YOUR_OID_START
sjas
источник
-2
#!/bin/bash

arp -an | egrep -v incomplete | while read line ; do mac=$( echo $line | awk -F' ' '{print $4}' | sed 's/:/-/g' | tr "[:lower:]" "[:upper:]" | cut -c 1-8 ) ; vendor=$( egrep "$mac" /usr/share/hwdata/oui.txt ) ; echo "$line : $vendor" ; done

Выход:

? (192.168.88.36) at 60:03:08:a8:4e:86 [ether]  on eth0 : 60-03-08   (hex)              Apple, Inc.
? (192.168.88.38) at d8:8f:76:6f:59:0a [ether]  on eth0 : D8-8F-76   (hex)              Apple, Inc.
FabioM
источник