¿Herramienta de línea de comandos para obtener información del proveedor OUI de la dirección MAC?


13

He encontrado algunas herramientas que parecen actualizar la base de datos de proveedores de direcciones MAC de OUI en mi sistema, como get-oui , airodump-ng-oui-update o 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

Pero si busco IP en mi red:

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

Mientras haya algunos MAC informados Unknown vendor, me gustaría buscar información en cualquier base de datos OUI.

¿Cuál es la forma correcta de la línea de comandos para realizar esta búsqueda ?
Tal vez algo como:

oui-info 44:d9:e7

Nota: Sé que usando el navegador web puedo buscar en Google los primeros 3 pares del MAC, pero me gustaría algún método de línea de comandos, para poder escribirlo o usarlo a través de inicio de sesión remoto (SSH).

Respuestas:


2

Aunque podría escribirse con más elegancia, lo siguiente funciona en distribuciones de Linux sin ninguna dependencia de paquetes especializados. Analiza la salida del comando IP, aísla la parte del proveedor de la dirección mac en una variable que finalmente se agrupa a través de una base de datos en línea de prefijos de proveedor.

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

Con un poco de creatividad, puede adaptar esto para ejecutarlo de forma remota a través de ssh. He visto otras sugerencias para identificar los detalles del proveedor utilizando las dmidecodehuellas digitales del sistema operativo, pero experimenté resultados inconsistentes con esa herramienta durante las pruebas. En Raspberry Pi dmidecodefalla totalmente. HTH-


Esta es la mejor respuesta en mi humilde opinión, porque da una respuesta sin la necesidad de herramientas (casi) instaladas y, siempre y cuando IEEE.Org se mantenga actualizado (debería), debe ser la mejor base de datos para acceder. El único inconveniente es la necesidad de internet; No es un gran problema hoy en día.
Sopalajo de Arrierez

Había muchas bases de datos en línea de OUI administradas por individuos / organizaciones privadas. Pero elegí el ieee.org porque había menos riesgo de que desapareciera o que el enlace cambiara. Me alegro de poder ayudarte.
F1Linux

13

No creo que haya una herramienta automatizada para hacer lo que pides, pero se puede hacer trabajando directamente en archivos oui.txt.

En primer lugar, identifica el archivo descargado, por ejemplo:

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

luego busque la cadena que le interesa. Debe eliminar :o insertar un -:

root@kalilloX:~# grep -i "44d9e7" /var/lib/ieee-data/oui.txt
44D9E7     (base 16)        Ubiquiti Networks, Inc.

Y método indirecto, pero completamente funcional, y probablemente válido en cualquier * nix, incluso en algunos dispositivos integrados. Gracias.
Sopalajo de Arrierez

1
Para facilitar su uso, puede definir una función de la .bashrcsiguiente manera: oui() { grep -i "$1" /var/lib/ieee-data/oui.txt; }y usarla asíoui 44D9E7
Aralox

3

Una respuesta similar a la de LilloX, pero usando nMap (si está instalado en el 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

Supuestamente trabajando con cualquier otro programa que almacene información OUI, como airodump-ng-oui-update(para oui.txtarchivar en este caso), o varios otros:

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

Puede recuperar el proveedor real haciendo una solicitud 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"

O

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

Para las direcciones MAC desconocidas enumeradas, devolvió los siguientes 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 el servicio, debe obtener una apiKey que es gratuita si tiene menos de 1000 solicitudes por día.


Un método práctico, de hecho. Este parece ser un sitio que ofrece servicios de identificación MAC (consulte los precios para un gran número de solicitudes en macaddress.io/pricing ) y, a partir de hoy (octubre de 2018), las solicitudes de API como las descritas en esta respuesta parecen ser gratuitas . Gracias, Dmitri S.
Sopalajo de Arrierez

0

He escrito un script para actualizar archivos oui e iab. El problema principal es que la forma de los archivos nmap no es la misma que para btscan o arpwatch, etc., a menudo tienen formas diferentes (dirección MAC con puntos dobles, con guiones, sin delimitadores, mayúsculas, minúsculas, etc. .

Puede probar este script, se almacena en https://github.com/burningfog/refresh_oui .

Lea el archivo Léame y, si tiene alguna pregunta, envíeme una pista por correo. Si hay otras herramientas que no se mencionan en github, por favor, deme la ruta para el archivo oui y algunas líneas de este archivo para que pueda ver ese formulario.

Saludos Niebla ardiente


-1
cat `locate nmap-mac-prefixes` | grep -i ^YOUR_OID_START

-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

Salida:

? (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.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.