MAC address spoofing (Español)

From ArchWiki
Esta traducción de MAC address spoofing fue revisada el 2020-12-11. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Este artículo proporciona varios métodos para falsificar una dirección de control de acceso al medio (MAC).

Manualmente

Hay dos métodos para falsificar una dirección MAC: instalando y configurando ya sea iproute2 o macchanger. Ambos se describen a continuación.

iproute2

Primero, puede verificar su dirección MAC actual con el comando:

# ip link show interfaz

donde interfaz es el nombre de su interfaz de red.

La sección que nos interesa en este momento es la que tiene "link/ether" seguido de un número de 6 bytes. Probablemente se verá algo como esto:

link/ether 00:1d:98:5a:d1:3a

El primer paso para falsificar la dirección MAC es desactivar la interfaz de red. Se puede lograr con el comando:

# ip link set dev interfaz down

A continuación, falsificaremos nuestra MAC. Cualquier valor hexadecimal servirá, pero algunas redes pueden configurarse para negarse a asignar direcciones IP a un cliente cuya MAC no coincida con ninguno de los proveedores conocidos. Por lo tanto, a menos que controle las redes a las que se está conectando, utilice el prefijo MAC de cualquier proveedor real (básicamente, los primeros tres bytes) y utilice valores aleatorios para los siguientes tres bytes. Para obtener más información, véase Wikipedia:es:Identificador único de organización.

Para cambiar la MAC, necesitamos ejecutar el comando:

# ip link set dev interfaz address XX:XX:XX:XX:XX:XX

Donde cualquier valor de 6 bytes será suficiente para XX:XX:XX:XX:XX:XX.

El último paso es volver a activar la interfaz de red. Esto se puede lograr ejecutando el comando:

# ip link set dev interfaz up

Si desea verificar que su MAC ha sido falsificada, simplemente ejecute nuevamente ip link show interfaz y verifique el valor para 'link/ether'. Si funcionó, 'link/ether' debería ser la dirección a la que decidió cambiarla.

macchanger

Otro método utiliza macchanger (también conocido como el Cambiador de MAC de GNU). Proporciona una variedad de funciones, como cambiar la dirección para que coincida con un determinado proveedor o al azar.

Instale el paquete macchanger.

La falsificación se realiza por interfaz, especifique el nombre del interfaz de red como interfaz en cada uno de los siguientes comandos.

La dirección MAC se puede falsificar con una dirección completamente aleatoria:

# macchanger -r interfaz

Para hacer aleatorio solo los bytes específicos de dispositivo de la dirección MAC actual (es decir, de modo que si la dirección MAC se verificara se registraría como si fuera del mismo proveedor), ejecutaría el comando:

# macchanger -e interfaz

Para cambiar la dirección MAC a un valor específico, debe ejecutar:

# macchanger --mac=XX:XX:XX:XX:XX:XX interfaz

Donde XX:XX:XX:XX:XX:XX es la MAC a la que desea cambiar.

Finalmente, para devolver la dirección MAC a su valor de hardware original y permanente:

# macchanger -p interfaz
Nota: Un dispositivo no puede estar en uso (conectado de ninguna manera o con su interfaz levantada) mientras se cambia la dirección MAC.

Automáticamente

systemd-networkd

systemd-networkd soporta la falsificación de direcciones MAC a través de archivos link (véase systemd.link(5) para los detalles).

Para establecer una dirección MAC estática falsificada:

/etc/systemd/network/00-default.link
[Match]
MACAddress=MAC original

[Link]
MACAddress=MAC falsificada
NamePolicy=kernel database onboard slot path

Para hacer aleatoria la dirección MAC en cada arranque, establezca MACAddressPolicy=random en lugar de MACAddress=MAC falsificada.

systemd-udevd

Udev le permite realizar la falsificación de la dirección MAC mediante la creación de reglas udev. Utilice el atributo address para que coincida con el dispositivo correcto por su dirección MAC original y cámbielo utilizando la orden ip:

/etc/udev/rules.d/75-mac-spoof.rules
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/usr/bin/ip link set dev $name address YY:YY:YY:YY:YY:YY"

Donde XX:XX:XX:XX:XX:XX es la dirección MAC original e YY:YY:YY:YY:YY:YY es la nueva.

Unidades systemd

Crear la unidad

A continuación, encontrará dos ejemplos de unidades systemd para cambiar una dirección MAC durante el arranque, uno configura una MAC estática utilizando ip y el otro utiliza macchanger para asignar una dirección MAC aleatoria. El network-pre.target de systemd se utiliza para asegurar que la MAC se cambie antes que un gestor de red como Netctl o NetworkManager, comience el servicio systemd-networkd o dhcpcd.

iproute2

La unidad systemd configura una dirección MAC predefinida:

/etc/systemd/system/macspoof@.service
[Unit]
Description=Cambio de dirección MAC %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
ExecStart=/usr/bin/ip link set dev %i address 36:aa:88:c8:75:3a
ExecStart=/usr/bin/ip link set dev %i up

[Install]
WantedBy=multi-user.target
macchanger

La unidad systemd establece una dirección aleatoria mientras se conservan los bytes originales del proveedor NIC. Asegúrese de que macchanger está instalado:

/etc/systemd/system/macspoof@.service
[Unit]
Description=macchanger en %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
ExecStart=/usr/bin/macchanger -e %I
Type=oneshot

[Install]
WantedBy=multi-user.target

Se puede establecer una dirección completamente aleatoria utilizando la opción -r, véase #macchanger.

Activar el servicio

Añada la interfaz de red deseada al nombre del servicio (por ejemplo eth0) y active el servicio (por ejemplo macspoof@eth0.service).

Reinicie, o detenga e inicie los servicios requeridos en el orden correcto. Si tiene el control de su red, verifique que el enrutador haya recogido la MAC falsificada mediante el examen de las tablas de direcciones DHCP o estáticas dentro del enrutador.

Interfaces netctl

Puede utilizar un hook de netctl para ejecutar una orden cada vez que un perfil netctl es re-/iniciado para una interfaz de red específica. Reemplace interfaz en consecuencia:

/etc/netctl/interfaces/interfaz
#!/usr/bin/env sh
/usr/bin/macchanger -r interfaz

Haga el script ejecutable:

chmod +x /etc/netctl/interfaces/interfaz

Fuente: akendo.eu[enlace roto 2024-07-30]

NetworkManager

Véase NetworkManager#Configuring MAC address randomization.

wpa_supplicant

wpa_supplicant puede utilizar una dirección MAC aleatoria para cada conexión ESS (AP) (véase [1] for details).

Añada esto a su configuración:

/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
mac_addr=1
preassoc_mac_addr=1
gas_rand_mac_addr=1

iwd

Para aleatorizar la dirección MAC cuando se inicia iwd (véase iwd.config(5) para más detalles):

/etc/iwd/main.conf
[General]
AddressRandomization=once
AddressRandomizationRange=nic

Especificar AddressRandomizationRange permite controlar qué parte de la dirección es aleatoria. Si se establece en nic, solo los octetos específicos del NIC (los últimos tres octetos) son aleatorios. La dirección mac permanente de la interfaz de red se utiliza para los 3 octetos iniciales. Si se establece en full, los seis octetos de la dirección son aleatorios.

Solución de problemas

La conexión a la red DHCPv4 falla

Si no puede conectarse a una red DHCPv4 y está utilizando dhcpcd, que es el predeterminado para NetworkManager, es posible que deba modificar la configuración dhcpcd para obtener un arrendamiento (lease).

Véase también