MAC address spoofing (Português)

Status de tradução:
Esse artigo é uma tradução de
MAC address spoofing
. Data da última tradução: 2023-03-01. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Este artigo apresenta vários métodos para realizar o
spoofing
do endereço MAC (Media Access Control), ou seja, alterá-lo para dificultar a identificação de um dispositivo.
Nota
O termo foi traduzido como
mascarar
ou
alterar
, conforme o contexto.
Manualmente
Há dois métodos para mascarar um endereço MAC:
instalar
e configurar
iproute2
ou
macchanger
. Ambos os são descritos abaixo.
iproute2
Primeiro, você pode verificar o seu endereço MAC atual com o comando:
# ip link show
interface
onde
interface
é o nome da sua
interface de rede
.
A secção que nos interessa neste momento é a que tem "link/ether" seguido por um número de 6 bytes. Será provavelmente algo parecido com isto:
link/ether 00:1d:98:5a:d1:3a
O primeiro passo para mascarar o endereço MAC é desativar a interface de rede. Pode ser realizado com o comando:
# ip link set dev
interface
down
Em seguida vamos de fato mascarar nosso MAC. Qualquer valor hexadecimal serve, mas algumas redes podem ser configuradas para recusar a atribuição de endereços IP a um cliente cujo MAC não corresponda a nenhum dos
vendors
conhecidos. Portanto, a menos que controle a(s) rede(s) a que se conecta, utilize o prefixo MAC de qualquer
vendor
real (basicamente, os três primeiros bytes), e utilize valores aleatórios para os três bytes seguintes. Para mais informações, por favor leia
Wikipedia:Organizationally unique identifier
.
Para alterar o MAC, precisamos rodar o comando:
# ip link set dev
interface
address
XX:XX:XX:XX:XX:XX
Onde qualquer valor de 6 bytes será suficiente para
XX:XX:XX:XX:XX:XX:XX
.
O passo final é reativar a interface de rede. Isto pode ser feito através da execução do comando:
# ip link set dev
interface
up
Se quiser verificar se o seu MAC foi mascarado, basta executar novamente
ip link show
interface
e verificar o valor para 'link/ether'. Se funcionou, 'link/ether' deve estar com o novo endereço que você definiu.
macchanger
Outro método utiliza
macchanger
(também conhecido como GNU MAC Changer). Fornece uma variedade de funções, como alterar o endereço para corresponder a um determinado
vendor
ou randomizá-lo completamente.
Instalar
o pacote
macchanger
}.
A alteração é feita por interface, especificar o nome da
interface de rede
ao invés de
interface
em cada um dos seguintes comandos.
O endereço MAC pode ser mascarado com um endereço totalmente aleatório:
# macchanger -r
interface
Para randomizar apenas bytes do endereço MAC atual específicos do dispositivo (ou seja, de forma que se o endereço MAC fosse verificado ainda se mostraria como sendo do mesmo
vendor
), você roda o comando:
# macchanger -e
interface
Para alterar o endereço MAC para um valor específico, você executaria:
# macchanger --mac=
XX:XX:XX:XX:XX:XX
interface
Onde
XX:XX:XX:XX:XX:XX
é o MAC para o qual se deseja mudar.
Finalmente, para devolver o endereço MAC ao seu valor de hardware, original e permanente:
# macchanger -p
interface
Nota
Um dispositivo não pode estar em uso (conectado de qualquer forma, ou com a sua interface habilitada) enquanto o endereço MAC estiver sendo alterado.
Automaticamente
systemd-networkd
systemd-networkd
suporta
spoofing
de endereço MAC através de link files (ver
systemd.link(5)
para detalhes).
Para definir um endereço MAC mascarado estático:
/etc/systemd/network/01-mac.link
[Match]
PermanentMACAddress=
original MAC
[Link]
MACAddress=
spoofed MAC
Para randomizar o endereço MAC a cada boot, defina
MACAddressPolicy=random
ao invés de
MACAddress=
spoofed MAC
.
systemd-udevd
O
Udev
permite realizar o
spoofing
de endereços MAC através da criação de regras udev. Utilize o atributo
address
para encontrar o dispositivo correto pelo seu endereço MAC original, e altere-o utilizando o comando
ip
:
/etc/udev/rules.d/81-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"
onde
XX:XX:XX:XX:XX:XX
é o endereço MAC original e
YY:YY:YY:YY:YY:YY
é o novo, utilizar letra minúscula para o endereço MAC.
systemd unit
Criando um
unit
Abaixo você encontra dois exemplos de unidades
systemd
para alterar um endereço MAC no
boot
, um deles configura um MAC estático usando
ip
e outro usa
macchanger
para atribuir um endereço MAC aleatório. O serviço systemd
network-pre.target
é utilizado para assegurar que o MAC é alterado antes de um gerenciador de rede como
Netctl
ou
NetworkManager
,
systemd-networkd
ou
dhcpcd
iniciar o serviço.
iproute2
Unidade
systemd
que configura um MAC pré-definido:
/etc/systemd/system/macspoof@.service
[Unit]
Description=MAC Address Change %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
Unidade
systemd
que configura um endereço aleatório, preservando os bytes de
vendor
originais da placa de rede (NIC). Confira se o
macchanger
está
instalado
:
/etc/systemd/system/macspoof@.service
[Unit]
Description=macchanger on %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
Um endereço completamente aleatório pode ser definido utilizando a opção
-r
, ver
#macchanger
.
Habilitando o serviço
Adicione a interface de rede desejada ao nome do serviço (por exemplo,
eth0
) e
habilite
o serviço (por exemplo,
macspoof@eth0.service
).
Reinicie, ou pare e inicie, os serviços pré-requeridos e requeridos na ordem correta. Se estiver no controle da sua rede, verifique se o MAC alterado foi aceito pelo seu roteador, examinando as tabelas de endereços estáticos, ou DHCP, do roteador.
Interfaces netctl
Você pode usar um
netctl hook
para executar um comando cada vez que um perfil netctl é reiniciado para uma interface de rede específica. Substitua
interface
pela sua interface:
/etc/netctl/interfaces/
interface
#!/usr/bin/env sh
/usr/bin/macchanger -r
interface
Torne o script
executável
.
Fonte:
akendo.eu (archive)
NetworkManager
Veja
NetworkManager (Português)#Configurando aleatorização de endereço MAC
.
wpa_supplicant
wpa_supplicant pode usar um MAC aleatório para cada conexão ESS(AP) (ver
[1]
para detalhes).
Adicione o seguinte na sua configuração:
/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
mac_addr=1
preassoc_mac_addr=1
gas_rand_mac_addr=1
iwd
Para randomizar o endereço MAC quando o iwd iniciar (ver
iwd.config(5)
} para detalhes):
/etc/iwd/main.conf
[General]
AddressRandomization=once
AddressRandomizationRange=nic
Especificar
AddressRandomizationRange
permite controlar qual a parte do endereço que é randomizada. Se definido para
nic
, apenas os octetos específicos da placa de rede (últimos três octetos) são randomizados. O endereço mac permanente da interface de rede é utilizado para os 3 octetos iniciais. Se colocado em
full
, todos os seis octetos do endereço são randomizados.
Troubleshooting
Falha de conexão a rede DHCPv4
Se não conseguir conectar a uma rede DHCPv4 e estiver utilizando dhcpcd, que é o padrão para o NetworkManager, poderá ter que
modificar a configuração dhcpcd
para obter um IP.
Ver também
Wikipedia:MAC spoofing
Macchanger GitHub page
Article on DebianAdmin
with more
macchanger
options