Ferramenta de linha de comando para obter informações do fornecedor OUI do endereço MAC?

13

Encontrei algumas ferramentas que parecem atualizar o banco de dados do fornecedor de endereços MAC da OUI no meu sistema, como get-oui , airodump-ng-oui-update ou 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

Mas se eu procurar IPs na minha rede:

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

Enquanto houver alguns MACs relatados Unknown vendor, gostaria de pesquisar em qualquer banco de dados OUI as informações.

Qual é a maneira correta da linha de comando para realizar essa pesquisa ?
Talvez algo como:

oui-info 44:d9:e7

Nota: Eu sei que, usando o navegador da Web, eu posso pesquisar no Google os 3 primeiros pares do MAC, mas gostaria de algum método de linha de comando, para que eu pudesse escrevê-lo ou usá-lo via login remoto (SSH).

Sopalajo de Arrierez
fonte

Respostas:

2

Embora possa ser escrito de forma mais elegante, o seguinte funciona nas distribuições Linux sem nenhuma dependência de pacotes especializados. Ele analisa a saída do comando IP, isola a parte do fornecedor do endereço mac em uma variável que é finalmente recebida por meio de um banco de dados on-line de prefixos de fornecedores.

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

Com um pouco de criatividade, você pode adaptar isso para executar remotamente via ssh. Vi outras sugestões para identificar os detalhes do fornecedor usando as dmidecodeimpressões digitais do SO, mas obtive resultados inconsistentes com essa ferramenta durante o teste. No Raspberry Pi dmidecodefalha totalmente. HTH-

F1Linux
fonte
Esta é a melhor resposta na minha humilde opinião, porque fornece uma resposta sem a necessidade de (quase) ferramentas instaladas e, enquanto o IEEE.Org se mantém atualizado (deveria), deve ser o melhor banco de dados a ser acessado. A única desvantagem é a necessidade de internet; Não é um grande problema hoje em dia.
Sopalajo de Arrierez 12/04/19
Havia muitos bancos de dados on-line da OUI executados por indivíduos / organizações particulares. Mas eu escolhi o ieee.org porque havia menos risco de ele desaparecer ou o link mudar. Ainda bem que pude ajudá-lo
#
13

Eu não acho que exista uma ferramenta automatizada para fazer o que você pede, mas isso pode ser feito trabalhando diretamente nos arquivos oui.txt.

Primeiro, identifica o arquivo baixado, por exemplo:

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

Em seguida, procure a string que você está interessado. Você deve remover :ou inserir um -:

root@kalilloX:~# grep -i "44d9e7" /var/lib/ieee-data/oui.txt
44D9E7     (base 16)        Ubiquiti Networks, Inc.
LilloX
fonte
E método indireto, mas completamente funcional e provavelmente válido em qualquer * nix, até mesmo em alguns dispositivos incorporados. Te agradece.
Sopalajo de Arrierez
1
Para facilidade de uso, você pode definir uma função em seu .bashrccomo se segue: oui() { grep -i "$1" /var/lib/ieee-data/oui.txt; }e usá-lo como esteoui 44D9E7
Aralox
3

Uma resposta semelhante à do LilloX, mas usando o nMap (se instalado no sistema):

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

Supostamente trabalhando com qualquer outro programa que armazene informações OUI, como airodump-ng-oui-update(para oui.txtarquivar neste caso) ou vários outros:

  • /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
fonte
1

Você pode recuperar o fornecedor real fazendo uma solicitação usando algo como CURL para esta API:

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

OU

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

Para os endereços MAC desconhecidos listados, ele retornou os seguintes resultados:

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

Para usar o serviço, você precisa obter uma apiKey gratuita se você estiver com menos de 1000 solicitações por dia.

Dmitrii S
fonte
Um método prático, de fato. Parece ser um site que oferece serviços de identificação MAC (consulte os preços para um grande número de solicitações em macaddress.io/pricing ) e, como hoje (outubro de 2018), solicitações de API como as descritas nesta resposta parecem ser gratuitas . Obrigado, Dmitri S.
Sopalajo de Arrierez
0

Eu escrevi um script para atualizar arquivos oui e iab. O principal problema é que a forma dos arquivos nmap não é a mesma que para btscan ou arpwatch etc., eles geralmente têm formas diferentes (endereço MAC com pontos duplos, hífens, sem delimitadores, maiúsculas, minúsculas etc.) .

Você pode tentar esse script, ele está armazenado em https://github.com/burningfog/refresh_oui .

Leia o arquivo leia-me e, se houver alguma dúvida, me dê uma dica por e-mail. Se houver outras ferramentas que não sejam nomeadas no github, forneça o caminho para o arquivo oui e algumas linhas deste arquivo para que eu possa dar uma olhada nesse formulário.

Saudações, nevoeiro ardente

burningfog
fonte
-1
cat `locate nmap-mac-prefixes` | grep -i ^YOUR_OID_START
sjas
fonte
-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

Resultado:

? (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
fonte