Vulnerabilidades do protocolo IPv6 - LINUX PENTEST - FAMÍLIA BSD

Novos

LINUX PENTEST - FAMÍLIA BSD

Linux, Pentest , Segurança da informação , T.I e muito mais

Curta ou compartilhe esse site

18 março 2018

Vulnerabilidades do protocolo IPv6

 APRESENTAÇÃO




Vulnerabilidades do protocolo IPv6


   Devido a importância do IPv6 para a Internet, esta seção será utilizada para apresentar suas
principais características, benefícios assim como levantar tópicos de Segurança cujo intuito é tornar as redes não apenas versáteis quanto a seus recursos, como também seguras para com seus proprietários e usuários.


   Para que possamos levantar quesitos de Segurança do IPv6, é necessário conhecer o protocolo de forma mais específica, como por exemplo, saber o que é, como funciona, quais seus principais componentes, como eles funcionam para finalmente serem apresentadas as vulnerabilidades e as ferramentas ou softwares maliciosos que podem ser, ou não, eficazes quanto a exploração de uma vulnerabilidade específica.


   Em linhas gerais, pode-se dizer que o IPv6 é o mais novo protocolo da Internet, criado para substituir o IPv4 devido o mesmo ter chegado em seu ápice de crescimento e devido a novas tendências do mercado, a Internet necessita continuar em ascensão, ou seja, o IPv6 possui condições de atender a necessidade atual do mercado, pois permite a continuidade do crescimento da Internet.


   Paralelamente, é necessário um estudo sobre os quesitos de Segurança que o IPv6 proporciona, pois o número de ameaças tende a aumentar com o intuito de explorar as vulnerabilidades que o protocolo possa apresentar.

O IPv6




   O IPv6, surgiu em 1998 e isso o torna o mais novo protocolo que vêm substituindo o IPv4, oferecendo uma possibilidade de endereços lógicos substancialmente maior que seu antecessor, o IPv4 que oferece apenas 32 bits, pois o IPv6 oferece 128 bits que proporciona um universo de aproximadamente 340 undecilhões de possibilidades. O IPv4 alcançou seu esgotamento quanto ao endereçamento de IP’s, em caráter oficial, no dia 10 de junho de 2014, acelerando a migração para o IPv6.


   Para entender a estrutura de um endereço IPv6, são utilizados caracteres hexadecimais, ou seja, com um único caracter, é possível representar números de 0 a 9 e de A a F (as letras representam valores de 10 a 15), totalizando 8 grupos de 16 bits.


   Abaixo, é possível identificar uma tabela de conversão entre números decimais, hexadecimais e binários.

Vulnerabilidades do protocolo IPv6
Tabela de conversão binário-hexadecimais

Fonte: netsec4dummies (2011)


   É possível identificar em um endereço IPv6 que eles são divididos por pontos duplo (:) que formam duplo octetos ou hexadecatetos. Segue abaixo um exemplo de endereço IPv6:


   2001:0DB8:AD1F:25E2:CADE:CAFE:F0CA:84C1


   O IPv6 proporciona, mediante algumas regras, a capacidade de abreviação de seu endereço. Um exemplo de endereço com a representação completa segue abaixo:


   2001:0DB8:0000:0000:130F:0000:0000:140B


   Aplicando algumas regras, a exemplo da omissão do valor 0 (zero), que ocorre no início dos hexadecatetos (uma vez que via regra, cada hexadecateto possui 4 valores e caso apresente 3 valores, pode-se entender que o primeiro valor é 0) e com a utilização do símbolo (::) ao invés de (:), pode-se omitir hexadecatetos com valor 0, o endereço acima pode assumir a seguinte forma:


   2001:DB8:0:0:130F::140B


   É importante salientar que a abreviação, caso as regras não sejam devidamente aplicadas, podem gerar endereços inválidos ou incompreensíveis. No caso, a abreviação pelo símbolo de (::) não fica clara devido não existir a possibilidade de identificar o número exato de hexadecatetos ocultos. Um exemplo de um formato inválido ocorre abaixo:


   2001:DB8::130F::140B


   Referente a representação de Prefixos, a regra é familiar ao que ocorre com o método CIDR do IPv4, ou seja, o endereço IPv6 é acompanhado com o tamanho do prefixo. Exemplo:


   2001:db8:3003:2::/64


   O prefixo global é 2001:db8::/32


   ID da sub-rede é 3003:2


   A nível de entendimento, cada casa separada por (:) corresponde a um valor de 2 bytes que é igual a 16 bits, no caso, totalizando 32 bits, recebendo para isso, o tamanho /32. Referente ao ID da sub-rede, fica o restante para endereçar os dispositivos desta mesma rede.


   Referente aos tipos de endereçamento para o IPv6, é importante apresentar os seguintes conceitos:


   l Unicast - É feita uma comunicação apenas de um ponto a outro;


   l Anycast - Permite que um único endereço seja utilizado em mais dispositivo;


   l Multicast - A comunicação parte de uma fonte para grupos específicos.


   Como se pode observar, o conceito de Broadcast foi descontinuado, não se aplica mais ao IPv6, uma vez que o mesmo foi substituído pelo Multicast, uma vez que os mesmos são obrigatórios para o funcionamento de uma rede IPv6 local.


   A principal característica do Multicast é o fato deste tipo de endereço estabelecer comunicação com grupos (nós) específicos da rede, diferentemente do Broadcast que transmite informações para todos os nós da rede simultaneamente.


   Existem diferentes tipos de endereços Multicast, que podem ou não serem roteáveis para comunicação com a Internet. Métodos como o NAT, não se fazem necessários (embora seja possível fazer o procedimento) em redes que utilizem exclusivamente o IPv6. Abaixo, é possível ver um exemplo de um endereço Unicast para acesso à Internet, ou seja, trata-se de um Unicast Global:


   2000::/3


   Existem outros tipos de Unicast para escopo de uma rede local, que são utilizados para estabelecer uma conexão direta, ou seja, sem roteamento até mesmo dentro da rede. Abaixo, um exemplo do escopo de um link local:


  Fe80::/64


  Uma última representação quanto ao endereço de IP local, é o próprio IP local (Dentro do IPv4, o conhecido 127.0.0.1), que no IPv6 é:


   ::1


   Um outro tipo de endereço Unicast é o Unique Local, também conhecido como Endereços ULA pois permite a comunicação tanto entre dispositivos do mesmo enlace como também de enlaces específicos. Um exemplo de IP Unique Local encontra-se abaixo:


   FC00::/7


O ICMPv6




   O ICMPv6 é um dos protocolos mais importantes para o funcionamento pleno do IPv6, uma vez que, o mesmo precisa estar devidamente ativado para que todos os nós da rede tenham comunicação.


   Assim como o IPv4 utilizava o ICMP como um recurso transmissão de mensagens quanto a sua comunicação com a Internet, o IPv6 utiliza o ICMPv6 para esse propósito, porém o que o torna obrigatório para o funcionamento do IPv6 é o fato de alguns protocolos que eram utilizados pelo IPv4 terem sido descontinuados no IPv6 e suas funções terem sido incorporadas ao ICMPv6. Essa mudança ocorreu principalmente para diminuir a “multiplexidade” dos protocolos, ou seja, diminuir a quantidade de protocolos ativos, para tornar os processos mais ágeis e eficientes. Referente aos protocolos que foram descontinuados no IPv6 cujas funções foram incorporadas ao ICMPv6 é o Protocolo de Resolução de Endereços (ARP - Address Resolution Protocol), Protocolo de Resolução de Endereços Reverso (RARP - Reverse Address Resolution Protocol) e o Protocolo de Gerenciamento de Grupos da Internet (IGMP - Internet Group Management Protocol). Suas respectivas funções encontram-se abaixo:


   l ARP - Atua no mapeamento de endereços físicos através dos Endereços Lógicos;


   l RARP - Atua no caminho inverso do ARP, ou seja, atua na identificação de endereços lógicos para endereços físicos.


   l IGMP - Atua com o gerencialmento de membros de grupos da rede.


   Devido ao fato do ICMPv6 ser um protocolo que atua na camada 3 e ser encapsulado por um pacote IP, firewalls não podem fazer a filtragem, pois o mesmo é utilizado para rotinas básicas como por exemplo, a descoberta dos nós de uma rede autoconfigurada.


   Referente aos tipos de mensagens que o ICMPv6 pode transportar, pode-se apresentar que podem ser de dois tipo: Erro e Informação. Uma tabela referente a cada tipo de mensagem foi adicionada ao trabalho para ratificar a sua importância para o IPv6. Alguns exemplo de classes do pacote ICMPv6 podem ser vistas abaixo, porém, a tabela completa com as classes estão representados nas figuras abaixo:


   lExemplo de Mensagens de Erro:


   Destino Inalcançável - Mensagem do tipo 1


   0 - Sem rota para o destino;


   1 - Comunicação com o destino proibida administrativamente;


   2 - Além do escopo do endereço de origem;


   3 - Endereço não acessível;


   4 - Porta não acessível;


   5 - Endereço de origem falhou na política de ingressão ou egressão;


   6 - Rota para o destino rejeitada


   7 - Erro no cabeçalho de roteamento de origem.




Vulnerabilidades do protocolo IPv6
Figura 9 - Mensagens de Erro
Fonte: IPv6.br (2012)


   l Exemplos de Mensagens de Informação


   133 - Solicitações ao Roteador (RS);


   134 - Notificações do Roteador (RA);


   135 - Solicitações de Vizinhança (NS);


   136 - Notificações de Vizinhança (NA);


   137 - Mensagem de Redirecionamento (Redirect).



Vulnerabilidades do protocolo IPv6


Para que o ICMPv6 possa gerenciar o envio e recebimento de notificações, devido aos tipos que existem, ele possui o NDP cuja abordagem está disponível mais adiante.

 O NDP




   Conforme mencionado na seção anterior, o NDP tem um importante papel no desempenho do ICMPv6 que por sua vez é imprescindível para o IPv6 uma vez que irá autoconfigurar os nós assim como também retransmitir os pacotes.


   Com relação ao processo de autoconfiguração, ele conta com três funcionalidades:


   l Descoberta de Parâmetros - Busca por informações do enlace e sobre a Internet. Ex: MTU e número de saltos;


   l Autoconfiguração de Endereços - Realiza a autoconfiguração do tipo stateless (pois não registra os clientes na tabela que receberam endereços IP);


   l Detecção de Endereços Duplicados - Atua na descoberta se um endereço que deseja se registrar já não se encontra em uso na rede.


   Referente a transmissão de pacotes, são utilizadas as seguintes funcionalidades:


   l Descoberta do Roteador - Atua na descoberta de roteadores na rede do mesmo enlace;


   l Descoberta do Prefixo - Atribui o prefixo da rede para estabelecer a rota a ser utilizada;


   l Resolução de Endereços - Descobre o endereço físico a ser utilizado à partir de um endereço lógico do IPv6;


   l Detecção de Vizinhança Inalcançável - Identifica se um vizinho de enlace encontra-se acessível ou não;


   l Redirecionamento - Permite que o roteador envie atualizações da melhor rota ao enviar uma requisição a um destino;


   l Identificação do Próximo Salto - É uma instrução utilizada para identificar um endereço IP de destino para estabelecer a rota de envio.


   Abaixo, segue o conceito e a função de cada pacote transmitido pelo NDP:


   l Solicitação ao Roteador (RS) - O pacote deste tipo é enviado ao roteador quando o mesmo deseja obter informações sobre a rede. Esse pacote é respondido através de uma Notificação do Roteador (RA); Em certos momentos, o pacote RS não precisa enviar essas requisições, pois o próprio roteador possui uma rotina de envio destas informações para os nós da rede que ele constitui. Como as informações pode levar um tempo longo, a requisição RS é enviada para se obter a resposta imediatamente.


   l Notificações do Roteador (RA) - Conforme informado nas informações anteriores, o RA é enviado periodicamente ou mediante a uma solicitação RS. O pacote RA traz informações à respeito da rede, pois informa prefixos, MTU, DNS e outras informações para permitir a autoconfiguração dos dispositivos.


   l Solicitações de Vizinhança (NS) - O pacote se baseia na solicitação de um pacote do tipo NA. Devido a essa capacidade do IPv6 proporcionar a comunicação entre os nós da rede, ele permite que um endereço físico seja descoberto à partir de um endereço lógico; ele permite também um teste de acessibilidade de nós vizinhos ao enlace, pois uma requisição é feita a nós vizinhos para confirmar a disponibilidade de um endereço lógico; Por último, o recurso é utilizado na detecção de endereços duplicados na vizinhança (DAD).


   l Notificações de Vizinhança (NA) - O pacote é enviado, por padrão, como resposta a pacotes do tipo NS, embora existam exceções quanto ao envio do mesmo pacote. Um exemplo é o anúncio de mudança de alguma característica de dispositivos na rede afim de minimizar qualquer atraso na transmissão, outro exemplo é na própria tradução de endereços físicos em endereços lógicos e na duplicação de endereços duplicados;


   Mensagem de Redirecionamento (Redirect) - Essas mensagens são enviadas para apresentar melhores rotas a serem utilizadas no envio de mensagens para um determinado destino.


   À partir desta base em IPv6 assim como a apresentação de seus principais componentes e os meios de funcionamento, podemos inserir dentro do contexto um conjunto de ferramentas responsáveis por explorar vulnerabilidades dentro do IPv6. A proposta deste post é especificar, em linhas gerais, as ferramentas que podem ser acertivas na exploração de vulnerabilidades (lembrando que as mesmas devem ser utilizadas para fins didáticos, pois sua utilização em redes desconhecidas sem a devida autorização é crime). À partir de agora, serão apresentadas ferramentas que podem afetar o funcionamento de uma rede devido a vulnerabilidades do IPv6.


THE HACKER CHOICE




   Existem inúmeras organizações que trabalha na descoberta de Vulnerabilidades, incluindo protocolos da Internet, a exemplo do IPv6. Pode-se citar organizações alternativas, ou seja, sem filiações governamentais ou privadas, cujos membros criam, desenvolvem, aplicam, documentam e compartilham seus estudos para aqueles interessados. Um dos grupos que trabalham desta forma é a comunidade chamada THC. Este grupo surgiu em 1995 e possuem um repositório que foi utilizado para obter a suíte de aplicativos utilizados para explorar as vulnerabilidades apresentadas neste trabalho. O repositório é de domínio público e está no seguinte endereço: https://github.com/vanhauser-thc/thc-ipv6.


   Cada software, possui um diferente mecanismo de funcionamento que estão baseados na transmissão de pacotes, que possui dados importantes para o controle de hosts e devido a essa característica, os pacotes podem ser trafegados com total liberdade pois o funcionamento está baseado na rotina de pacotes padrão do IPv6.


   Neste post será apresentado uma das ferramentas da Suíte THC, que trata-se do dos-new-ip6. A ferramenta dos-new-ip6 trata-se de um executável que pertence ao pacote THC-IPv6. Este pacote é uma ferramenta desenvolvida para detectar vulnerabilidades de segurança IPv6 e do ICMPv6. O dos-new-ip6 atua escutando todos os endereços multicast solicited-note e respondendo as consultas do DAD informando que todos os endereços testados estão em uso, gerando um ataque de DoS.


   Tomando como base uma distribuição Debian, abaixo é apresentado o processo de instalação, conforme as próprias orientações que consta na documentação original da Suíte. Segue então os passos:


   Descompactação do arquivo .zip com o software Archive Manager (podendo ser utilizado outros aplicativos);


   Instalação (com a utilização do usuário root) de bibliotecas/softwares essenciais para funcionamento do THC-IPv6 através do comando:


   apt-get install libpcap-dev libssl-dev libnetfilter-queue-dev


   Abrir o diretório criado com a extração do arquivo thc-ipv6-master; (No caso, a pasta estava dentro da pasta Downloads), por isso, foi utilizado o seguinte comando:


   cd /Downloads/ thc-ipv6-master


   Fazer a compilação dos softwares que existem dentro da pasta com o comando:


   make


   Instalação dos Softwares pré compilados com o comando:


   make install


Com os passos acima, já será possível a utilização de todas as ferramentas que compõem a suíte, cuja abordagem específica as mesmas será feita em outros posts desta seção em breve aqui no LINUX PENTEST.

Nenhum comentário:

Postar um comentário

Linux Pentest

O criado Linux Pentest foi criado para reunir informações sobre a área de hacking, que tem crescido grandemente nos últimos anos, devido a diversos ataques cibernéticos e a crescente área da tecnologia.

Despertando interesse em diversas pessoas como estudante da área de tecnologia da informação, programadores, design, todos estão interessados em fazer parte da elite do conhecimento que são os hackers.

Não se pode falar em hackers, em técnicas de hacking, como descobrir senhas de wifi, como hackear, sem falar em linux, por isso agrupamos também em nosso site tutoriais, dicas, manuais e muito mais sobre as distribuições Linux, seja Bem Vindo ao Linux Pentest. Volte sempre.