arp-scan - manual de referencia, opciones, ejemplos de comandos


NOMBRE

arp-scan - Envíe solicitudes ARP a los hosts de destino y muestre las respuestas

SINOPSIS

arp-scan [options] [hosts...]

Target hosts must be specified on the command line unless the --file or --localnet option is used.

Targets can be IPv4 addresses or hostnames. You can also use CIDR notation (10.0.0.0/24) (network and broadcast included), ranges (10.0.0.1-10.0.0.10), and network:mask (10.0.0.0:255.255.255.0).

DESCRIPCIÓN

arp-scan envía paquetes de solicitud ARP a los hosts especificados y muestra las respuestas recibidas. La interfaz de red se puede especificar con la opción --interface. Si no se especifica ninguna interfaz, arp-scan seleccionará la interfaz configurada con el número más bajo (excluyendo loopback).

arp-scan utiliza sockets sin procesar, lo que requiere privilegios en algunos sistemas:

Linux with POSIX.1e capabilities support using libcap:

arp-scan es consciente de las capacidades. Requiere CAP_NET_RAW en el conjunto permitido y solo habilita esa capacidad para las funciones requeridas. use setcap cap_net_raw+p /path/to/arp-scan para agregar CAP_NET_RAW al conjunto permitido del ejecutable arp-scan. El soporte de capacidades también hace que la raíz SUID sea mucho más segura porque arp-scan eliminará todas las capacidades excepto CAP_NET_RAW y no se ejecutará con todos los privilegios de raíz.

BSD and macOS:

Necesita acceso de lectura/escritura a /dev/bpf*

Any operating system:

La ejecución como root o SUID root funcionará en cualquier sistema operativo, pero son preferibles otros métodos cuando sea posible.

ARP solo opera en la red local y no se puede enrutar. Aunque el protocolo ARP usa direcciones IPv4, no es un protocolo IP y arp-scan se puede usar en interfaces sin una dirección IPv4.

Se envía una solicitud ARP para cada objetivo. Si un host no responde, la solicitud se volverá a enviar una vez más. El número de reintentos se puede cambiar con la opción --retry. Reducir el número de reintentos reducirá el tiempo de exploración con el riesgo de perder algunos resultados debido a la pérdida de paquetes.

Puede especificar el ancho de banda que usará arp-scan con la opción --bandwidth. El valor predeterminado es 256000 bits por segundo. Aumentar el ancho de banda reducirá el tiempo de exploración, pero establecer un ancho de banda demasiado alto puede causar una alta tasa de transmisión de paquetes. Otra forma de especificar la tasa de paquetes es con la opción --interval.

El tiempo para un escaneo de un solo paso (es decir, con --retry=1) es:

tiempo=n veces yo + t + o

Donde n es el número de hosts, i es el intervalo (dado con --interval o calculado a partir de --bandwidth), t es el tiempo de espera (especificado con --timeout) y o es el tiempo de sobrecarga necesario para cargar la lista de destino y leer los archivos de asignación de MAC/proveedor. La sobrecarga normalmente es insignificante (normalmente alrededor de 100 ms), pero se puede reducir aún más con la opción --quiet. Para listas pequeñas de hosts, el valor de tiempo de espera dominará, pero para listas grandes, el intervalo del paquete es el valor más importante.

Cualquier parte de la solicitud ARP puede modificarse mediante el uso de las opciones --arpXXX como se muestra en la siguiente tabla:

MESA

La opción más común es --arpspa, que establece la dirección IPv4 de origen en la solicitud ARP, lo que permite que la solicitud ARP utilice una dirección de origen diferente a la dirección de la interfaz. Esto permite el uso de arp-scan en interfaces sin dirección IPv4. Nota: Establecer ar$spa en la dirección IP del objetivo hace que algunos sistemas operativos informen un conflicto de direcciones cuando reciben una solicitud ARP para su propia dirección.

También puede cambiar los valores en el encabezado de la trama Ethernet como se muestra a continuación:

MESA

La opción --destaddr que establece la dirección Ethernet de destino es la única que se usa comúnmente.

De forma predeterminada, las respuestas ARP se muestran en el siguiente formato:

<IPv4 Address> <MAC Address> <Vendor Details>

Donde Dirección IPv4 es la dirección IP del objetivo que responde, Dirección MAC es su dirección de capa de enlace y Detalles del proveedor son los detalles del proveedor decodificados la dirección de hardware. Los campos de salida están separados por un solo carácter de tabulación. Puede cambiar el formato de salida con la opción --format.

Las respuestas se muestran en el orden en que se reciben, que puede ser diferente del orden en que se enviaron las solicitudes porque algunos hosts pueden responder más rápido que otros.

La decodificación del proveedor utiliza los archivos ieee-oui.txt y mac-vendor.txt. ieee-oui.txt se genera a partir de IEEE MA-L (OUI), MA-M, MA-S (OUI36) y registros IAB. mac-vendor.txt contiene asignaciones adicionales de MAC a proveedor y se puede usar para agregar asignaciones personalizadas. get-oui se puede utilizar para actualizar ieee-oui.txt con los datos más recientes de los registros IEEE.

Todos los hosts IPv4 deben responder a los paquetes de solicitud ARP, incluidos los hosts con filtrado de paquetes, como los firewalls. Esto hace que arp-scan sea una herramienta útil para descubrir todos los hosts IPv4 activos en la red local.

OPCIONES

Cuando una opción toma un valor, ese valor se especifica como una letra entre paréntesis angulares. La letra indica el tipo de dato que se espera:

<s>

Cadena de caracteres.

<i>

Entero decimal, o hexadecimal si va precedido de 0x, p. 2048 o 0x800.

<f>

Número decimal de coma flotante.

<m>

Dirección MAC, p. 01:23:45:67:89:ab o 01-23-45-67-89-ab (no distingue entre mayúsculas y minúsculas)

<a>

dirección IPv4, p. 10.0.0.1

<h>

Datos binarios con codificación hexadecimal. Sin 0x inicial. (insensible a mayúsculas y minúsculas).

<x>

Algo más: consulte la descripción de la opción.

Opciones generales

--help or -h

Muestre este mensaje de uso y salga.

--verbose or -v

Mostrar mensajes de progreso detallados. Se puede usar más de una vez para aumentar la verbosidad. máx.=3.

--version or -V

Muestra la versión del programa y sale. Muestra la versión, los detalles de la licencia, la versión de libpcap y si se incluye la compatibilidad con la capacidad POSIX.1e.

--interface=<s> or -I <s>

Utilice la interfaz de red <s>. Si no se especifica esta opción, arp-scan buscará en la lista de interfaces del sistema la interfaz configurada con el número más bajo (excluyendo loopback).

Selección de anfitrión

--file=<s> or -f <s>

Leer nombres de host o direcciones del archivo especificado. Un patrón de nombre o dirección por línea. Utilice "-" para la entrada estándar.

--localnet or -l

Generar direcciones a partir de la configuración de la interfaz. Genera una lista a partir de la dirección de la interfaz y la máscara de red (red y transmisión incluidas). No puede usar la opción --file ni dar objetivos en la línea de comando. Utilice --interface para especificar la interfaz.

Archivos de asignación de MAC/proveedor

--ouifile=<s> or -O <s>

Utilice el archivo de asignación de proveedores de registro IEEE <s>. El valor predeterminado es ieee-oui.txt en el directorio actual. Si no se encuentra, se utiliza /usr/share/arp-scan/ieee-oui.txt.

--macfile=<s> or -m <s>

Utilice el archivo de asignación de proveedores personalizado <s>. El valor predeterminado es mac-vendor.txt en el directorio actual. Si no se encuentra, se utiliza /etc/arp-scan/mac-vendor.txt.

Control de formato de salida

--quiet or -q

Muestra la salida mínima para cada host que responde. Solo se muestran la dirección IP y la dirección MAC. Reduce el uso de la memoria en unos 5 MB porque no se utilizan los archivos de asignación del proveedor. Solo los campos $ {ip} y $ {mac} están disponibles para la opción --format si - -quiet se especifica.

--plain or -x

Suprime el texto del encabezado y pie de página. Mostrar solo los detalles del host que responde. Útil si la salida será analizada por una secuencia de comandos.

--ignoredups or -g

No mostrar paquetes duplicados. De forma predeterminada, los paquetes duplicados se marcan con (DUP: n), donde n es la cantidad de veces que este host ha respondido.

--rtt or -D

Calcule y muestre el tiempo de ida y vuelta del paquete. El tiempo se muestra en milisegundos y microsegundos fraccionarios. Hace que el campo $ {rtt} esté disponible para --format.

--format=<s> or -F <s>

Especifique la cadena de formato de salida. El formato es una cadena que se generará para cada host que responda. Los detalles del host se pueden incluir insertando referencias a los campos usando la sintaxis "$ {field[;width]}". Los campos se muestran alineados a la derecha a menos que el ancho sea negativo, en cuyo caso se utilizará la alineación a la izquierda. Se reconocen los siguientes nombres de campo que no distinguen entre mayúsculas y minúsculas:

IP Host IPv4 address in dotted quad format
Name Host name if --resolve option given
MAC Host MAC address xx:xx:xx:xx:xx:xx
HdrMAC Ethernet source addr if different
Vendor Vendor details string
Padding Padding after ARP packet in hex if nonzero
Framing Framing type if not Ethernet_II
VLAN 802.1Q VLAN ID if present
Proto ARP protocol if not 0x0800
DUP Packet number for duplicate packets (>1)
RTT Round trip time if --rtt option given

Solo los campos $ {ip} y $ {mac} están disponibles si se especifica la opción --quiet.

Cualquier carácter que no sea un campo se muestra textualmente. "\" introduce escapes:

\n newline
\r carriage return
\t tab
\ suppress special meaning for following character

Debe encerrar el argumento --format entre 'comillas simples' para proteger los caracteres especiales del shell.

Ejemplo: --format='$ {ip}\t$ {mac}\t$ {proveedor}'

Aleatorización de la lista de anfitriones

--random or -R

Aleatorizar la lista de host de destino.

--randomseed=<i>

Sembrar el generador de números pseudoaleatorios. Útil si desea un orden --aleatorio reproducible.

Temporización de salida y reintento

--retry=<i> or -r <i>

Establezca el número total de intentos por host en <i>, predeterminado=2.

--backoff=<f> or -b <f>

Establezca el factor de retroceso en <f>, por defecto=1,50. Multiplica el tiempo de espera por <f> para cada pase.

--timeout=<i> or -t <i>

Establezca el tiempo de espera inicial por host en <i> ms, predeterminado=500. Este tiempo de espera es para el primer paquete enviado a cada host. los tiempos de espera subsiguientes se multiplican por el factor de retroceso que se establece con --backoff.

--interval=<x> or -i <x>

Establezca el intervalo mínimo de paquetes en <x>. Esto controla el uso del ancho de banda saliente al limitar la tasa de paquetes. Si desea usar hasta un ancho de banda dado, es más fácil usar la opción --bandwidth en su lugar. El intervalo está en milisegundos o microsegundos si se agrega "u".

--bandwidth=<x> or -B <x>

Establezca el ancho de banda de salida en <x>, por defecto=256000. El valor está en bits por segundo. Agregue K para kilobits o M para megabits (múltiplos decimales). No puede especificar tanto --interval como --bandwidth.

Resolución DNS

--numeric or -N

Los destinos deben ser direcciones IP, no nombres de host. Puede reducir el tiempo de inicio para listas de objetivos grandes.

--resolve or -d

Resuelva las direcciones de respuesta a los nombres de host. El formato de salida predeterminado mostrará el nombre de host en lugar de la dirección IPv4. Esta opción hace que el campo $ {name} esté disponible para la opción --format.

Paquete ARP de salida

--arpsha=<m> or -u <m>

Establezca la dirección Ethernet de origen ARP. Establece el campo ar$sha de 48 bits, pero no cambia la dirección de hardware en el encabezado del marco; consulte --srcaddr para saber cómo cambiar esa dirección. El valor predeterminado es la dirección Ethernet de la interfaz de salida.

--arptha=<m> or -w <m>

Configure la dirección Ethernet de destino de ARP. Establece el campo ar$tha de 48 bits. El valor predeterminado es cero, porque este campo no se usa para los paquetes de solicitud ARP.

--arphrd=<i> or -H <i>

Establezca el tipo de hardware ARP, predeterminado=1. Establece el campo ar$hrd de 16 bits. El valor predeterminado es 1 (ARPHRD_ETHER). Muchos sistemas operativos también responden a 6 (ARPHRD_IEEE802).

--arppro=<i> or -p <i>

Establezca el tipo de protocolo ARP, predeterminado=0x0800. Establece el campo ar$pro de 16 bits. La mayoría de los sistemas operativos solo responden a 0x0800 (IPv4).

--arphln=<i> or -a <i>

Establezca la longitud de la dirección de hardware, por defecto=6. Establece el campo ar$hln de 8 bits. Esta opción no cambia las longitudes de los campos ar$sha y ar$tha; solo cambia el campo ar$hln.

--arppln=<i> or -P <i>

Establezca la longitud de la dirección del protocolo, predeterminado=4. Establece el campo ar$pln de 8 bits. Esta opción no cambia las longitudes de los campos ar$spa y ar$tpa; solo cambia el campo ar$pln.

--arpop=<i> or -o <i>

Especifique la operación ARP, predeterminado=1. Establece el campo ar$op de 16 bits. La mayoría de los sistemas operativos solo responden al valor 1 (ARPOP_REQUEST).

--arpspa=<a> or -s <a>

Establezca la dirección IPv4 de origen. La dirección debe estar en formato cuádruple con puntos, o la cadena "dest" que establece la dirección de origen en la dirección del host de destino. El valor predeterminado es la dirección de la interfaz de salida. Establece el campo ar$spa de 32 bits. Algunos sistemas operativos solo responden si la dirección de origen está dentro de la red de la interfaz receptora. Establecer ar$spa en la dirección IP de destino puede hacer que algunos sistemas operativos informen de un conflicto de direcciones.

Encabezado Ethernet de salida

--srcaddr=<m> or -S <m>

Configure la dirección MAC Ethernet de origen. El valor predeterminado es la dirección MAC de la interfaz. Esto establece la dirección en el encabezado de Ethernet. No cambia la dirección en el paquete ARP: use --arpsha para cambiar esa dirección.

--destaddr=<m> or -T <m>

Configure la dirección MAC de destino. Establece la dirección de destino en el encabezado de Ethernet. El valor predeterminado es ff:ff:ff:ff:ff:ff (difusión). Los hosts también responden si la solicitud se envía a su dirección de unidifusión oa una dirección de multidifusión en la que están escuchando.

--prototype=<i> or -y <i>

Establece el tipo de protocolo Ethernet, predeterminado=0x0806. Esto establece el campo de tipo de protocolo en el encabezado de Ethernet.

--llc or -L

Utilice la encapsulación RFC 1042 LLC/SNAP para redes 802.2. arp-scan decodificará y mostrará las respuestas ARP en los formatos Ethernet-II e IEEE 802.2 independientemente de esta opción.

--vlan=<i> or -Q <i>

Utilice el etiquetado 802.1Q con el ID de VLAN <i>. La identificación debe estar en el rango de 0 a 4095. arp-scan decodificará y mostrará las respuestas ARP en formato 802.1Q independientemente de esta opción.

Opciones misceláneas

--limit=<i> or -M <i>

Salga después de que haya respondido el número especificado de hosts. arp-scan saldrá con el estado 1 si el número de hosts que respondieron es inferior al límite. Se puede usar en secuencias de comandos para verificar si responden menos hosts sin tener que analizar la salida.

--pcapsavefile=<s> or -W <s>

Escribe los paquetes recibidos en pcap savefile <s>. Las respuestas ARP se escribirán en el archivo especificado y se descodificarán y mostrarán.

--snap=<i> or -n <i>

Establezca la longitud del complemento pcap en <i>. Predeterminado=64. Especifica la longitud de captura de fotogramas, incluido el encabezado de Ethernet. El valor predeterminado suele ser suficiente.

--retry-send=<i> or -Y <i>

Establezca el número de intentos de envío, por defecto=20.

--retry-send-interval=<i> or -E <i>

Establecer intervalo entre intentos de envío. El intervalo está en milisegundos o microsegundos si se agrega "u". predeterminado=5.

--padding=<h> or -A <h>

Especifique el relleno después de los datos del paquete. Establezca el relleno después de la solicitud ARP en el valor hexadecimal .

ESTADO DE SALIDA

arp-scan saldrá con 0 si se completa con éxito o >0 si se encuentra un error.

Si se especifica la opción --limit, arp-scan también saldrá con un código de salida distinto de cero si el número de hosts que respondieron es menor que el límite especificado.

ARCHIVOS

/usr/share/arp-scan/ieee-oui.txt

Lista de IEEE OUI (identificador único de organización) para asignaciones de proveedores.

/etc/arp-scan/mac-vendor.txt

Lista de otras asignaciones de Ethernet MAC a proveedores, incluidas las adiciones locales.

EJEMPLOS

Escaneo simple

Escanee la red predeterminada utilizando la configuración de interfaz IPv4 para generar la lista de hosts para escanear.

$ arp-scan --localnet
Interface: eth0, type: EN10MB, MAC: 50:65:f3:f0:6d:7c, IPv4: 10.0.0.106
Starting arp-scan 1.9.9 with 256 hosts (https://github.com/royhills/arp-scan)
10.0.0.14       a4:1f:72:7f:25:bb       Dell Inc.
10.0.0.22       10:60:4b:73:43:de       Hewlett Packard
10.0.0.74       00:0c:29:90:07:e9       VMware, Inc.
10.0.0.75       00:0c:29:66:9e:c2       VMware, Inc.
10.0.0.76       00:0c:29:d0:e1:ea       VMware, Inc.
10.0.0.82       9c:b6:54:bb:f3:ec       Hewlett Packard
10.0.0.84       00:21:9b:fd:b9:b3       Dell Inc.
10.0.0.85       00:02:b3:eb:5a:f8       Intel Corporation
10.0.0.91       00:9c:02:a5:7b:29       Hewlett Packard
10.0.0.92       d4:ae:52:d0:07:6f       Dell Inc.
10.0.0.93       d4:ae:52:d0:04:9b       Dell Inc.
10.0.0.96       9c:b6:54:bb:f5:35       Hewlett Packard
10.0.0.97       00:0c:29:0e:95:20       VMware, Inc.
10.0.0.104      50:65:f3:f0:70:a4       Hewlett Packard

15 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.9: 256 hosts scanned in 1.532 seconds (167.10 hosts/sec). 14 responded

Formato de salida

Escanee todos los hosts en 10.0.0.0/24 mediante la interfaz eth0. Calcule el tiempo de ida y vuelta y visualícelo en columnas alineadas utilizando un formato personalizado.

$ arp-scan -I eth0 --rtt --format='|${ip;-15}|${mac}|${rtt;8}|' 10.0.0.0/24
Interface: eth0, type: EN10MB, MAC: 50:65:f3:f0:6d:7c, IPv4: 10.0.0.106
Starting arp-scan 1.9.9 with 256 hosts (https://github.com/royhills/arp-scan)
|10.0.0.14      |a4:1f:72:7f:25:bb|   0.280|
|10.0.0.22      |10:60:4b:73:43:de|   0.293|
|10.0.0.74      |00:0c:29:90:07:e9|   0.380|
|10.0.0.75      |00:0c:29:66:9e:c2|   0.311|
|10.0.0.76      |00:0c:29:d0:e1:ea|   0.326|
|10.0.0.82      |9c:b6:54:bb:f3:ec|   0.216|
|10.0.0.84      |00:21:9b:fd:b9:b3|   0.244|
|10.0.0.85      |00:02:b3:eb:5a:f8|   0.244|
|10.0.0.91      |00:9c:02:a5:7b:29|   0.209|
|10.0.0.92      |d4:ae:52:d0:07:6f|   0.289|
|10.0.0.93      |d4:ae:52:d0:04:9b|   0.278|
|10.0.0.96      |9c:b6:54:bb:f5:35|   0.255|
|10.0.0.97      |00:0c:29:0e:95:20|   0.288|
|10.0.0.104     |50:65:f3:f0:70:a4|   0.263|

14 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.9: 256 hosts scanned in 2.032 seconds (125.98 hosts/sec). 14 responded

Salida CSV

--plain elimina la salida superflua.

$ arp-scan -I eth0 --plain --format='${ip},${mac},"${vendor}"' 10.0.0.0/24
10.0.0.14,a4:1f:72:7f:25:bb,"Dell Inc."
10.0.0.22,10:60:4b:73:43:de,"Hewlett Packard"
10.0.0.74,00:0c:29:90:07:e9,"VMware, Inc."
10.0.0.75,00:0c:29:66:9e:c2,"VMware, Inc."
10.0.0.76,00:0c:29:d0:e1:ea,"VMware, Inc."
10.0.0.82,9c:b6:54:bb:f3:ec,"Hewlett Packard"
10.0.0.84,00:21:9b:fd:b9:b3,"Dell Inc."
10.0.0.85,00:02:b3:eb:5a:f8,"Intel Corporation"
10.0.0.91,00:9c:02:a5:7b:29,"Hewlett Packard"
10.0.0.92,d4:ae:52:d0:07:6f,"Dell Inc."
10.0.0.93,d4:ae:52:d0:04:9b,"Dell Inc."
10.0.0.96,9c:b6:54:bb:f5:35,"Hewlett Packard"
10.0.0.97,00:0c:29:0e:95:20,"VMware, Inc."
10.0.0.104,50:65:f3:f0:70:a4,"Hewlett Packard"

VER TAMBIÉN

get-oui(1)

arp-fingerprint(1)

http://www.royhills.co.uk/wiki/ The arp-scan wiki page.

https://github.com/royhills/arp-scan The arp-scan homepage.