MAC Flood! E agora?

px

Este artigo visa expor algo que, muitas vezes, passa despercebido por muitos usuários de rede, um switch ou modem, com configurações ou tabelas vulneráveis à MAC Flood, são comuns e podem estar em sua casa. Abordarei o princípio deste ataque desde o protocolo ARP às maneiras de prevenção desta praga virtual.

[ Hits: 20.343 ]

Por: Pedro em 13/09/2013


Testando nossa teoria - Ferramenta macof



Agora iremos falar a respeito da ferramenta macof, ela é um port em C da ferramenta original (desenvolvida em Perl) por Ian Vitek.

Como o próprio nome já diz, trata-se de uma ferramenta que funciona em cima do protocolo ARP (MAC), mais precisamentei, ela utiliza-se de pacotes com números MAC geralmente inválidos, "dançando" em broadcast pela rede, com intenção de obter uma sobrecarga da memória do aparelho alvo, forçando um Switch a tornar-se um simples Hub, ou interromper o serviço de rede por completo, como já havíamos visto.

Ela pode ser obtida no pacote dsniff da sua distribuição favorita, em geral, vem num pacote bem leve, que está junto de outras ferramentas muito interessantes, tais como o próprio dsniff, tcpkill, e o arpspoof. Podendo ser instalado facilmente via gerenciador de pacotes.

No Arch Linux:

# pacman -S dsniff

Em distribuições Debian, Ubuntu, entre outras:

# apt-get install dsniff

Ainda quem quiser compilar direto do código fonte, ou se informar mais sobre o projeto, o site fica em:
Para chamar o comando, insira no terminal, logado como root:

# macof

Ou, faça uso do sudo:

sudo macof

Serão mostradas várias entradas referentes aos pacotes gerados pelo terminal, correspondentes às entradas saindo de sua placa de rede para a rede do dispositivo em questão, que serão lidas pelo Hub ou quaisquer dispositivos presentes em sua rede.

O tempo de resposta de sua internet e/ou de sua Ethernet, poderá sofrer grandes variações, por isso, pause os downloads e demais acessos importantes antes, ou faça o teste uma outra hora!

Este foi só um exemplo inicial usando os parâmetros básicos do programa, sem nenhuma opção setada, neste modo, a ferramenta utiliza valores completamente aleatórios, e os pacotes ficam em sua rede local. No final, há um ataque que disparo contra minha própria rede, usando algumas opções como portas específicas de HTTP e DNS, além das demais portas aleatórias.

Para se ver as opções do programa:

macof -h

Version: 2.4
Usage: macof [-s src] [-d dst] [-e tha] [-x sport] [-y dport]
             [-i interface] [-n times]

-i <interface> :: define qual será a interface por onde serão enviados os pacotes.
-s <endereço IP> :: define qual será o IP de origem do pacote.
-d <endereço IP> :: especifica o endereço IP de destino.
-e <endereço Mac> :: permite que você diga qual será o endereço MAC de destino no pacote a ser gerado.
-x <porta> :: define a porta TCP de origem.
-y <porta> :: define a porta TCP de destino.
-n <número> :: especifica quantos pacotes serão enviados.


Obtenha mais informações na man page do programa:

man macof

Cada caso será necessário observar a reação da rede, bem como fazer uso de mais opções no programa para se obter algum resultado. Todavia, caso houver instabilidade de rede, basta reiniciar o aparelho e ele estará de volta com a memória e tabelas normais prontas para uso.

* Aviso para não abusar desta ferramenta, faça seu uso com moderação e em ambientes controlados!

Obs.: tive que reiniciar meu modem umas três vezes para testar algumas variações deste comando descritas neste tutorial, sendo mais eficaz em IPs e portas nulas, ou em floods variados, como na screenshot do post a seguir:

As sínteses usadas em cada terminal, foram respectivamente:

# macof -i eth0 -n 1000000 -y 80
# macof -n 1000000 -y 53
# macof
# macof


Em míseros 35 segundos, meu modem viu a Internet deixar seu Hardware e a luz no fim do túnel chegava para ele, mas bastou reiniciar o mesmo e ele voltou à vida, como no filme de Frankenstein...

Perturbador, não é mesmo? Bom, vamos às possíveis soluções a seguir:

Algumas marcas que implementam um controle mais rígido do protocolo ARP, possuem maior segurança na administração da tabela MAC, tendo mais opções para utilizarmos.

Infelizmente, em meu aparelho não constava nenhuma medida que pudesse evitar este transtorno, e não pude testar sua eficácia, mas em marcas como a Cisco, algumas políticas podem ser usadas para evitarmos este tipo de falha, diversos materiais podem ser encontrados no site da empresa e na Internet em geral.

O Switch pode reagir de três maneiras (caso possua esta opção) a essa violação de segurança:
  1. Modo Protect: todos os pacotes vindos de estações com o endereço desconhecido, serão descartados até que você libere um número suficiente de endereços MAC seguros, ou aumente o número de endereços seguros permitidos. Neste modo, você não será notificado das violações de segurança.
  2. Modo Restrict: exatamente igual ao modo Protect. Porém, neste modo, você é notificado das violações de segurança. É enviada uma trap SNMP, uma mensagem ao syslog e o contador de violações e incrementado.
  3. Modo Shutdown: neste modo, uma violação de segurança muda o estado da porta para "error-disabled", o que desativa a porta (até os LEDs). Também envia uma trap SNMP, uma mensagem ao syslog e incrementa o contador de violações.

Fonte: Mac Flooding – Entendendo melhor o ataque. « Vida TI

Quem se interessar em saber como evitar estes ataques nos aparelhos da Cisco, siga:

Referências


Página anterior    

Páginas do artigo
   1. Introdução
   2. Testando nossa teoria - Ferramenta macof
Outros artigos deste autor

Administrando Memória SWAP no GNU/Linux

Leitura recomendada

Instalando uma placa wireless

Linux acessando storage iSCSI

Instalando scanner HP PSC 1500 series e outros no Debian Etch

Cabos de rede e conectorização

Qual é o melhor Sistema Operacional?

  
Comentários
[1] Comentário enviado por cruzeirense em 13/09/2013 - 09:42h

Muito bom artigo, uniu bem a teoria e a pratica. Parabéns...

[2] Comentário enviado por Buckminster em 13/09/2013 - 11:47h

"Os ataques de MAC Flooding usam um conceito bastante simples: enviar milhares de pacotes adulterados para um Switch (que tem uma memória de armazenamento finita), logo um número grande de requisições inválidas faz com que o Switch sobreponha os números válidos e tenha duas opções, ignorar completamente a tabela e replicar os pacotes (sinais elétricos, frames) para toda rede, transformando-lhe num simples Hub, ou simplesmente, parar o serviço por completo! "

É assim também em Switchies gerenciáveis?

Bom artigo, parabéns.

[3] Comentário enviado por px em 13/09/2013 - 15:45h


[2] Comentário enviado por Buckminster em 13/09/2013 - 11:47h:

"Os ataques de MAC Flooding usam um conceito bastante simples: enviar milhares de pacotes adulterados para um Switch (que tem uma memória de armazenamento finita), logo um número grande de requisições inválidas faz com que o Switch sobreponha os números válidos e tenha duas opções, ignorar completamente a tabela e replicar os pacotes (sinais elétricos, frames) para toda rede, transformando-lhe num simples Hub, ou simplesmente, parar o serviço por completo! "

É assim também em Switchies gerenciáveis?

Bom artigo, parabéns.


Então Buck os Switch em geral quando mal configurados (ou quase não configurados) ficam bastante a merce desses "ataques" até na sua própria rede interna, como disse no final tem algumas escapatórias, caso o aparelho apresente esses recursos (infelizmente não pude testa-los em minha rede), os gerenciáveis como você disse, contam com mais recursos ainda, o que nos possibilita uma melhor configuração/adaptação da rede em questão, para se evitar tais transtornos, como os Ciscos que friso que possuem uma boa qualidade nessa área em geral.

[4] Comentário enviado por leonardoortiz em 14/09/2013 - 09:49h

"Os ataques de MAC Flooding usam um conceito bastante simples: enviar milhares de pacotes adulterados para um Switch (que tem uma memória de armazenamento finita), logo um número grande de requisições inválidas faz com que o Switch sobreponha os números válidos e tenha duas opções, ignorar completamente a tabela e replicar os pacotes (sinais elétricos, frames) para toda rede, transformando-lhe num simples Hub, ou simplesmente, parar o serviço por completo! "


Achei meio estrnho essa explicação :/
O MAC Flood envia vários pacotes invalidos COM endereços fisicos alatórios(tanto de origem quanto destino), o swith pega e armazana esses MAC's em sua tabela CAM(tabela de mac's), a tabela CAM de um swith tem um limite, estourando esse limite acontece o que vc comentou ali. Um swtich 3com 4210 por exemplo, tem o limite de 8192 MAC's.
Segue algumas imagens que tirei como exemplo, fique a vontade para publica-las caso deseje:

Tabela CAM antes de um ataque:
http://s9.postimg.org/na5ht2ei7/Sem_t_tulo.jpg

Tabela CAM após o ataque:
http://s23.postimg.org/u9bjoymt7/Sem_t_tulo3.jpg
Fiquei menos de 10 segundos executando o macof(lol)

Estatisticas de uma tabela de mac's de um switch dps de um ataque:
http://s23.postimg.org/jqglwwqgr/Sem_t_tulo5.jpg


No mais, parabéns pelo artigo.

[5] Comentário enviado por px em 14/09/2013 - 23:32h


[4] Comentário enviado por leonardoortiz em 14/09/2013 - 09:49h:

"Os ataques de MAC Flooding usam um conceito bastante simples: enviar milhares de pacotes adulterados para um Switch (que tem uma memória de armazenamento finita), logo um número grande de requisições inválidas faz com que o Switch sobreponha os números válidos e tenha duas opções, ignorar completamente a tabela e replicar os pacotes (sinais elétricos, frames) para toda rede, transformando-lhe num simples Hub, ou simplesmente, parar o serviço por completo! "


Achei meio estrnho essa explicação :/
O MAC Flood envia vários pacotes invalidos COM endereços fisicos alatórios(tanto de origem quanto destino), o swith pega e armazana esses MAC's em sua tabela CAM(tabela de mac's), a tabela CAM de um swith tem um limite, estourando esse limite acontece o que vc comentou ali. Um swtich 3com 4210 por exemplo, tem o limite de 8192 MAC's.
Segue algumas imagens que tirei como exemplo, fique a vontade para publica-las caso deseje:

Tabela CAM antes de um ataque:
http://s9.postimg.org/na5ht2ei7/Sem_t_tulo.jpg

Tabela CAM após o ataque:
http://s23.postimg.org/u9bjoymt7/Sem_t_tulo3.jpg
Fiquei menos de 10 segundos executando o macof(lol)

Estatisticas de uma tabela de mac's de um switch dps de um ataque:
http://s23.postimg.org/jqglwwqgr/Sem_t_tulo5.jpg


No mais, parabéns pelo artigo.


Valeu, mas pra min você disse o mesmo que eu, só que com outras palavras...

[6] Comentário enviado por nicolo em 16/09/2013 - 13:24h

o Artigo é nota dez, já está nos favoritos, mas só uma observação:

A rede que sustenta a informática está se tornando cada vez mais o caminho do banditismo, desde roubos de cpf, roubos de senhas, ataques a bancos, comunicação do terror e espionagem dos anjinhos americanos.

Se continuar assim, vai espantar as pessoas de bem e então se aplicará o teorema das batatas:

"De uma cesta de batatas, quando se retiram as boas, só ficam as batatas podres."


[7] Comentário enviado por px em 16/09/2013 - 19:03h


[6] Comentário enviado por nicolo em 16/09/2013 - 13:24h:

o Artigo é nota dez, já está nos favoritos, mas só uma observação:

A rede que sustenta a informática está se tornando cada vez mais o caminho do banditismo, desde roubos de cpf, roubos de senhas, ataques a bancos, comunicação do terror e espionagem dos anjinhos americanos.

Se continuar assim, vai espantar as pessoas de bem e então se aplicará o teorema das batatas:

"De uma cesta de batatas, quando se retiram as boas, só ficam as batatas podres."



Valeu pelo apoio, mas não é culpa da rede esses roubos de cpf, ataque a bancos... e sim das pessoas que fazem os ataques, nenhum computador se programa sozinho...

E principalmente culpa das pessoas que não se protegem desses ataques, pois não é difícil conseguir se safar, usar uma senha de 15 dígitos com caracteres especiais e números aleatórios não é nada de mais, comprar em sites seguros também, fora que a maioria dos ataques a banco, devem-se a própria sociedade e sua supervalorização da moeda de papel, e criminalização/descriminação das minorias assim como antigamente, só que hoje em vez de capataz, somos escravos do sistema e de suas leis que favorecem à poucos no poder.

[8] Comentário enviado por thyagobrasileiro em 20/09/2013 - 06:51h

Como vc mesmo disse, "Tudo depende dos Recursos", Existem Switchs com muita memoria para armazenar um grande volume de dados na tabela CAM.

Alguns recursos observados num 3COM Baseline Switch 2226-SFP Plus, Foram:
- ACL
- QoS em cada porta
- Demais meios de Autenticação como 802.1x (http://pt.wikipedia.org/wiki/IEEE_802.1X)

Parabens pelo artigo.

[9] Comentário enviado por px em 05/10/2013 - 10:11h


[8] Comentário enviado por thyagobrasileiro em 20/09/2013 - 06:51h:

Como vc mesmo disse, "Tudo depende dos Recursos", Existem Switchs com muita memoria para armazenar um grande volume de dados na tabela CAM.

Alguns recursos observados num 3COM Baseline Switch 2226-SFP Plus, Foram:
- ACL
- QoS em cada porta
- Demais meios de Autenticação como 802.1x (http://pt.wikipedia.org/wiki/IEEE_802.1X)

Parabens pelo artigo.


Exatamente! ainda como disse, tem Switchs que aplicam um limite de entrada/requisições na CAM table, uma proteção básica/miníma que deveria ser a padrão em qualquer dispositivo.

OBS: pena que isso não acontece, só fabricantes de produtos "top de linha" implementam isto, em alguns modelos mais caros.

[10] Comentário enviado por marcosrodrigues em 06/10/2013 - 19:58h

Testei e o comando funcionou perfeitamente !
Realmente para geral a rede.

[11] Comentário enviado por pietro_scherer em 04/02/2015 - 17:35h

Muito legal o artigo. Parabéns!

[12] Comentário enviado por removido em 05/06/2015 - 02:22h

ADD+ Parabéns.
Só não sei se funciona prá IPv6.
--
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts