Baixe
Participe
|
Muitos mecanismos de proteção em redes para liberar acesso a certos recursos ou obter um IP privilegiado são baseados no endereço MAC da interface rede.
O endereço MAC é fixado no hardware da placa de rede. Não é possível alterá-lo, mas é possível mascará-lo.
Neste artigo vamos ver como essa proteção dos servidores funciona, como é burlável e como proteger nossa rede deste tipo de falha.
Vamos imaginar dois casos:
1. O acesso à internet só é liberado para certos endereços MAC. 2. O IP XXX.XXX.XXX.XXX tem acesso a todos os compartilhamentos da rede e a rede possui um servidor DHCP.
Para o primeiro caso, basta uma ACL no proxy ou no firewall do servidor que libere o acesso para somente alguns endereços MAC e o analisador de pacotes do servidor deixa ou não o pacote seguir para a internet.
No segundo caso, um IP privilegiado está reservado no servidor DHCP para ser entregue à interface que tem um endereço MAC específico. De posse deste IP, os recursos da rede tornam-se disponíveis.
Em ambos os casos o controle é baseado no endereço MAC da placa de rede. Neste artigo vamos ver como isso funciona e como proteger nossas redes de MACs mascarados.
O que é endereço MAC?
MAC (Media Access Control) ou EHA (Ethernet Hardware Address) é um número de 48 bits, organizado em 6 bytes hexa que identifica a placa de rede. Os primeiros 3 bytes são iguais para placas de rede de mesmo fabricante e os outros 3 bytes devem sempre ser diferentes entre as placas de rede existentes no mundo todo.
É como um número de série de produto, não pode ser igual nunca. Teoricamente cada placa de rede existente no mundo tem um endereço MAC diferente das outras. Um número único de identificação.
Por exemplo, vamos analisar o endereço MAC 00:01:29:D3:95:C6.
A parte verde diz respeito ao fabricante. Estes 3 bytes são do fabricante Marvell, portanto já sabemos que estamos falando de uma placa de rede fabricada pela Marvell. Já a parte azul (últimos 3 bytes), diz respeito à placa de rede em si. É como se fosse um número de série dela.
PS.: Para quem esqueceu, o endereço MAC tem 48 bits porque cada algarismo hexadecimal (seja ele número ou letra) possui 4 bits. Lembre-se que o maior algarimo hexa é o F, que equivale a 1111 em binário. Ou seja, tem 4 bits. Se multiplicarmos 4 por 12, que é o número de algarismos de um endereço MAC, temos a resposta 48. E ainda, o endereço MAC possui 6 bytes porque é o resultado da divisão de 48 por 8 (conversão bit para byte).
Qual é o endereço MAC da minha interface de rede?
Para saber qual é seu endereço MAC, na maioria dos sistemas atuais, basta um comando. Vamos exemplificar em dois sistemas:
Nos sistemas baseados em Linux
Abra um console e comande ifconfig. O resultado é similar ao abaixo:
![]()
A parte destacada em vermelho é o endereço MAC. No caso acima, há duas placas de rede no computador.
Se quiser otimizar o comando, pode-se utilizar de recursos de shell scripting, por exemplo:
$ ifconfig | fgrep HW | tr -s " " "\t" | cut -f1,9
O comando acima retornará somente o endereço MAC da placa de rede (ou de mais de uma, caso haja) ao invés de retornar todas as configurações que o ifconfig puro exibe. A saída seria assim:
eth0 00:D0:09:E5:F2:57
Já nos sistemas Windows, o comando é o ipconfig /all. Veja:
![]()
Lá está o endereço MAC da placa de rede, separado por traços.
Como mascarar o MAC?
Existem algumas maneiras e programas para realizar este trabalho. Alguns softwares BIOS de certas placas-mãe com placas de rede on-board permitem mascarar o MAC diretamente por ele, como é o caso de algumas placas-mãe da DFI. Há também um bom programa para esta função que é o A-MAC Address Change. Mas o foco do artigo é mostrar métodos pelo próprio SO.
Vamos ver aqui como fazer em dois sistemas operacionais (Windows e Linux).
Em sistemas Windows
Acesse as propriedades de sua interface de rede e clique no botão "Configurar" e depois na aba "Avançado". No campo da esquerda, procure a propriedade "NetworkAddress" e selecione-a (atenção pois o nome desta propriedade pode variar de placa para placa mas sempre será intuitivo).
Agora no campo "Valor", à direita, digite o endereço MAC desejado, como sugere a imagem abaixo:
![]()
Depois basta clicar em OK e conferir com o ifconfig /all. Não é necessário reiniciar a rede ou o computador para que as alterações entrem em vigor.
Em sistemas Linux
Aqui utiliza-se o mesmo ifconfig porque este programa além de consultar as configurações de rede, pode alterá-las. O comando é:
# ifconfig <interface> hw ether <novo:mac>
Onde <interface> deve ser substituído pelo identificador de sua placa de rede no Linux e <novo_mac>, pelo endereço MAC desejado com os bytes separados por ":". Por exemplo:
# ifconfig eth0 hw ether 00:B1:2F:A2:C4:99
O comando acima vai mascarar o endereço MAC da interface eth0 para 00B12FB2C480.
Obtendo endereço MAC de outros hosts
Uma rede pode liberar acesso somente para endereços MACs autorizados. Isto é comum em rede sem fio, por exemplo.
De posse dessa informação um atacante pode obter um endereço MAC que tenha permissão para acessar a rede e fazer-se passar por ele. Mas como? Bem, novamente há várias maneiras...
No Linux:
# sudo arping <ip_do_host>
ou
$ arp <ip_do_host>
O arping é um utilitário para "pingar" IPs de hosts mas ele não envia um pacote ICMP como o ping normal e sim faz consultas à tabela ARP, que relaciona os IPs e os endereços MACs das interfaces.
O comando arp não é tão eficiente para este caso pois depende do registro existente na tabela, enquanto o arping já o cria, mas também funciona.
No Windows:
ping -n 1 <ip_do_host> && arp -a
A teoria é a mesma que no Linux, no entanto, o trabalho é feito com dois comandos. O primeiro é o ping tradicional, que vai enviar um pacote ICMP Request e o segundo é o comando arp que exibe a tabela ARP local, o que vai resultar na exibição do MAC do IP "pingado" anteriormente.
ATENÇÃO! O objetivo deste artigo é demonstrar técnicas de administração de redes e contra-medidas de invasão. Não nos responsabilizamos pelo mau uso deste conteúdo e nem encorajamos que o seja feito em caráter anti-ético ou criminoso. |
Últimas atualizações
- Como alterar a afinação de uma música
- Workshop: Engenharia Reversa no Linux
- Como remover vírus de pen drive
- Go - A linguagem de programação do Google
- Como usar cartuchos recarregados na HP C5180
- Expressões regulares no Mediation
- Flash Player no Debian Lenny amd64
- Cedilha no Debian Lenny
- LAST_INSERT_ID() no PostgreSQL
- Navegue na web com segurança
Artigos mais lidos
- Sniffing com o Wireshark
- Controle de dispositivos com a porta paralela
- Mascarando o endereço MAC da placa de rede
- Remoção manual de vírus
- Ghost pela rede
- Tudo sobre o GRUB
- Criando um layout para seu website
- Extensões perigosas no Windows
- BackTrack - uma distribuição hacker
- Instalando VMware Server 1.0.9 no Ubuntu 9.04





