Nesta postagem eu vou estar dando continuidade ao assunto das postagens anteriores e estarei falando sobre o ataque de Man-in-the-Middle (MITM) em redes locais IPv6.
Observação:
O
conteúdo apresentado nesta postagem deve ser reproduzido apenas em um
ambiente no qual você possui autorização para a realização de testes de
segurança.
Introdução
Em redes tradicionais IPv4, o ataque de MITM pode ser realizado atravês de alguns métodos como ARP Poisoning e MAC Flooding. Entretanto o protocolo ARP é substituido pelo protocolo Neighbor Discovery (implementado através de mensagens ICMPv6) em redes IPv6. O nosso estudo de ataques MITM em redes IPv6 deve começar com uma análise sobre o protocolo ICMPv6 e o Neighbor Discovery.
Neighbor Discovery e ICMPv6
O protocolo Neighbor Discovery esta definido na RFC 4861¹ e faz parte de um dos processos de autoconfiguração do IPv6. Um dos objetivos deste protocolo é identificar o endereço MAC (Camada de Enlace) de hosts vizinhos em uma rede local (Basicamente a mesma coisa que o ARP fazia hehe). O Neighbor Discovery é implementado através das seguintes mensagens ICMPv6:
- ICMPv6 Neighbor Solicitation
- ICMPv6 Neighbor Advertisement
- ICMPv6 Router Solicitation
- ICMPv6 Route Advertisement
Neste tópico iremos focar especialmente nos 2 primeiros tipos de mensagens.
A mensagem Neighbor Solicitation é enviada por um host com o objetivo de identificar o endereço físico (MAC address) de um host vizinho. A Figura abaixo apresenta o cabeçalho da mensagem Neighbor Solicitation.
![]() |
Figura 1: Cabeçalho da mensagem Neighbor Solicitation |
O campo 'Type' apresenta o valor 135 e o campo 'Target Address' apresenta o endereço IPv6 do host solicitado.
A mensagem Neighbor Advertisement representa a resposta para a mensagem de Neighbor Solicitation e contém o endereço MAC do host solicitado. A
Figura abaixo apresenta o cabeçalho da mensagem Neighbor Advertisement.
![]() |
Figura 2: Cabeçalho da mensagem Neighbor Advertisement |
O campo 'Type' apresenta o valor 136 e o campo 'Target Address' apresenta o endereço IPv6 do host solicitado. O campo 'Options' apresenta informações 'extras' contendo o endereço físico do host solicitado. A figura abaixo apresenta um exemplo de descoberta de vizinhos através do ICMPv6.
![]() |
Figura 3: Troca de mensagens ICMPv6 (Neighbor Discovery) |
MITM em redes locais IPv6
O protocolo de Neighbor Discovery não realiza a autenticação de mensagens ICMPv6 e esta vulnerabilidade resulta na possibilidade de ataques MITM em redes IPv6. Um atacante pode forjar mensagens ICMPv6 do tipo Neighbor Advertisement com o objetivo de envenenar a tabela de endereços MAC de uma determinada vítima.
O endereço MAC, presente no campo 'Options' da mensagem de Neighbor Advertisement, pode ser substituído pelo endereço físico de um atacante com o objetivo de se passar por outro host da rede local. O novo pacote é enviado para os hosts da rede local e as tabelas de endereço MAC são envenenadas com o novo valor (forjado pelo atacante).
Para exemplificar o ataque descrito, eu criei um pequeno script para realizar MITM entre três máquinas (2 vítimas e 1 atacante) com endereços IPv6. O vídeo a seguir apresenta o script sendo utilizado em uma pequena prova de conceito do ataque descrito.
Para exemplificar o ataque descrito, eu criei um pequeno script para realizar MITM entre três máquinas (2 vítimas e 1 atacante) com endereços IPv6. O vídeo a seguir apresenta o script sendo utilizado em uma pequena prova de conceito do ataque descrito.
O script encontra-se disponível para download em:
https://github.com/pasknel/hacking-com-tapioca/blob/master/IPv6/ipv6_nd_mitm.pyConclusão
Neste tópico foi apresentado o assunto de ataques de MITM em redes IPv6. Na minha próxima postagem eu vou estar mudando de assunto (talvez futuramente eu volte a falar mais sobre IPv6). Por favor escrevam suas
sugestões e comentários!
Obrigado :)
Keep Hacking!
¹ http://tools.ietf.org/html/rfc4861
Nenhum comentário:
Postar um comentário