Narzędzie wiersza polecenia do uzyskiwania informacji o dostawcy OUI z adresu MAC?

14

W moim systemie znalazłem narzędzia, które wydają się aktualizować bazę danych dostawców adresów MAC OUI , takie jak get-oui , airodump-ng-oui-update lub 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

Ale jeśli szukam adresów IP w mojej sieci:

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

Tak długo, jak zgłoszono kilka adresów MAC Unknown vendor, chciałbym przeszukiwać dowolną bazę danych OUI w celu uzyskania informacji.

Jaki jest właściwy sposób wykonywania tego wyszukiwania z wiersza poleceń ? Może coś takiego:

oui-info 44:d9:e7

Uwaga: Wiem, że korzystając z przeglądarki internetowej, mogę wyszukiwać w Google pierwsze 3 pary MAC, ale chciałbym skorzystać z metody wiersza polecenia, aby móc ją napisać lub użyć za pomocą zdalnego logowania (SSH).

Sopalajo de Arrierez
źródło

Odpowiedzi:

2

Chociaż można to napisać bardziej elegancko, poniższe działania działają w różnych dystrybucjach Linuksa bez żadnych zależności od specjalistycznych pakietów. Analizuje dane wyjściowe polecenia IP, izoluje część adresu MAC dostawcy na zmienną, która ostatecznie jest grepowana przez bazę danych online prefiksów dostawcy.

#!/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'

Przy odrobinie kreatywności możesz dostosować to do zdalnego uruchamiania przez ssh. Widziałem inne sugestie, aby zidentyfikować dane dostawcy używające dmidecodedo pobierania odcisków palców w systemie operacyjnym, ale doświadczyłem niespójnych wyników z tym narzędziem podczas testowania. Na Raspberry Pi dmidecodecałkowicie zawodzi. HTH-

F1Linux
źródło
To jest najlepsza odpowiedź w mojej skromnej opinii, ponieważ daje odpowiedź bez potrzeby (prawie) zainstalowanych narzędzi i, dopóki IEEE.Org będzie aktualizował (powinien), musi to być najlepsza baza danych, do której można uzyskać dostęp. Jedynym minusem jest potrzeba internetu; obecnie nie jest to duży problem.
Sopalajo de Arrierez
Istnieje wiele internetowych baz danych OUI prowadzonych przez osoby prywatne / organizacje. Ale wybrałem ieee.org, ponieważ było mniejsze ryzyko jego zniknięcia lub zmiany linku. Cieszę się, że mogłem pomóc
F1Linux
14

Nie sądzę, aby istniało zautomatyzowane narzędzie do robienia tego, o co prosisz, ale można to zrobić, pracując bezpośrednio na plikach oui.txt.

Przede wszystkim identyfikuje pobrany plik, na przykład:

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

następnie wyszukaj ciąg, który Cię interesuje. Musisz usunąć :lub zamiast tego wstawić -:

root@kalilloX:~# grep -i "44d9e7" /var/lib/ieee-data/oui.txt
44D9E7     (base 16)        Ubiquiti Networks, Inc.
LilloX
źródło
I metoda pośrednia, ale całkowicie funkcjonalna i prawdopodobnie ważna na dowolnym * nixie, nawet na niektórych urządzeniach osadzonych. Dzięki Ci.
Sopalajo de Arrierez,
1
Aby ułatwić korzystanie, możesz zdefiniować funkcję w .bashrcnastępujący sposób: oui() { grep -i "$1" /var/lib/ieee-data/oui.txt; }i użyć jej w ten sposóboui 44D9E7
Aralox
4

Podobna odpowiedź do LilloX, ale przy użyciu nMap (jeśli jest zainstalowany w systemie):

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

Podobno działa z dowolnym innym programem, który przechowuje informacje OUI, na przykład airodump-ng-oui-update(do oui.txtpliku w tym przypadku) lub kilkoma innymi:

  • /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
Sopalajo de Arrierez
źródło
1

Możesz odzyskać faktycznego dostawcę, wysyłając zapytanie przy użyciu czegoś takiego jak CURL do tego interfejsu API:

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

LUB

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

W przypadku wymienionych nieznanych adresów MAC zwrócił następujące wyniki:

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

Aby skorzystać z usługi, musisz uzyskać apiKey, który jest bezpłatny, jeśli masz mniej niż 1000 żądań dziennie.

Dmitrii S
źródło
Rzeczywiście praktyczna metoda. Wygląda na to, że jest to witryna oferująca usługi identyfikacji MAC (patrz cennik dla dużej liczby żądań na macaddress.io/pricing ), a na dzień dzisiejszy (październik 2018 r.) Żądania API takie jak opisane w tej odpowiedzi wydają się być bezpłatne . Dzięki, Dmitri S.
Sopalajo de Arrierez
0

Napisałem skrypt do aktualizacji plików oui i iab. Główny problem polega na tym, że forma plików nmap nie jest taka sama jak w przypadku btscan lub arpwatch itp., Często mają one różne formy (adres MAC z podwójnymi punktami, z myślnikami, bez ograniczników, wielkich i małych liter itp. .

Możesz wypróbować ten skrypt, jest on przechowywany pod adresem https://github.com/burningfog/refresh_oui .

Proszę przeczytać plik readme, a jeśli pojawią się jakieś pytania, proszę podać podpowiedź na maila. Jeśli istnieją inne narzędzia niż wymienione w github, podaj mi ścieżkę do pliku oui i kilka wierszy z tego pliku, abym mógł przejrzeć ten formularz.

Pozdrowienia Płonąca Mgła

Burnfog
źródło
-1
cat `locate nmap-mac-prefixes` | grep -i ^YOUR_OID_START
sjas
źródło
-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

Wynik:

? (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
źródło