Jump to content

# MAC address spoofing (Português)

From ArchWiki
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

Categories:

- Network configuration (Português)
- Security (Português)

MAC address spoofing (Português)
Add topic