Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
thc-ipv6 — Kit de ferramentas de ataque IPv6 | Kitploit
Ferramentas/GitHubGitHub/vanhauser-thc/thc-ipv6
ReconhecimentoAnálise de VulnerabilidadesExploraçãoEvasão de IDS/IPSFuzzingSegurança de RedeSegurança Sem FioTestes de PenetraçãoUtilitários e FrameworksRed Teaming
GitHubvanhauser-thc/thc-ipv6

thc-ipv6

1.2k229há 4 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Kit de ferramentas de ataque IPv6

Ver Repositório

THC-IPV6-ATTACK-TOOLKIT (c) 2005-2022 [email protected] https://github.com/vanhauser-thc/thc-ipv6

root@kitploit:~
	Licenciado sob AGPLv3 (ver arquivo LICENSE)

INTRODUÇÃO

Este código foi inspirado quando entrei em contato com IPv6, aprendi mais e mais sobre ele – e então não encontrei ferramentas para brincar (leia-se: "hackear") por aí. Primeiro tentei implementar coisas com libnet, mas descobri que a implementação IPv6 é apenas parcial – e é ruim. Tentei adicionar o código faltando, mas bem, não era tão fácil, então economizei meu tempo e rapidamente escrevi minha própria biblioteca.

LIMITAÇÕES

Este código atualmente só roda em:

  • Linux 2.6.x ou mais novo (por causa do uso de /proc)
  • Ethernet Mas isso significa que para todos os usuários Linux funcionará em 98% dos seus casos de uso. Patches são bem-vindos! (adicione "antispam" na linha de assunto para passar pela minha proteção anti-spam, caso contrário o e-mail será devolvido)

CONSTRUINDO

Você precisa ter o libpcap-dev instalado para poder construir as ferramentas. Além disso, libssl-dev e libnetfilter-queue-dev também são recomendados.

Eles podem ser instalados por (Kali, Debian, Ubuntu): sudo apt-get install libpcap-dev libssl-dev libnetfilter-queue-dev

Você pode construir as ferramentas executando: make all

Você pode instalar as ferramentas e as páginas de manual existentes executando: make install

AS FERRAMENTAS

O THC IPV6 ATTACK TOOLKIT já vem com muitas ferramentas de ataque eficazes:

  • parasite6: Spoofer de solicitação/anúncio de vizinho ICMPv6, coloca você como homem-no-meio, igual ao ARP mitm (e parasite)
  • alive6: um escaneamento eficaz de alvos vivos, que detectará todos os sistemas ouvindo neste endereço
  • dnsdict6: Força bruta de dicionário DNS IPv6 paralelizado
  • fake_router6: Anuncie-se como um roteador na rede, com a maior prioridade
  • redir6: Redirecione o tráfego para você de forma inteligente (homem-no-meio) com um esperto spoofer de redirecionamento ICMPv6
  • toobig6: Redutor de MTU com a mesma inteligência do redir6
  • detect-new-ip6: Detecte novos dispositivos IPv6 que entram na rede; você pode executar um script para escanear automaticamente esses sistemas etc.
  • dos-new-ip6: Detecte novos dispositivos IPv6 e diga a eles que o IP escolhido colide na rede (DOS).
  • trace6: traceroute6 muito rápido com suporte a ICMP6 echo request e TCP-SYN
  • flood_router6: Inunda um alvo com anúncios de roteador aleatórios
  • flood_advertise6: Inunda um alvo com anúncios de vizinho aleatórios
  • fuzz_ip6: Fuzzer para IPv6
  • implementation6: Realiza várias verificações de implementação em IPv6
  • implementation6d: Daemon de escuta para implementation6 verificar atrás de um FW
  • fake_mld6: Anuncie-se em um grupo multicast de sua escolha na rede
  • fake_mld26: Mesmo, mas para MLDv2
  • fake_mldrouter6: Falsifique mensagens de roteador MLD
  • fake_mipv6: Roube um IP móvel para o seu se IPSEC não for necessário para autenticação
  • fake_advertiser6: Anuncie-se na rede
  • smurf6: Smurfer local
  • rsmurf6: Smurfer remoto, conhecido por funcionar apenas contra Linux no momento
  • exploit6: Vulnerabilidades IPv6 conhecidas para testar contra um alvo
  • denial6: Uma coleção de testes de negação de serviço contra um alvo
  • thcping6: Envia um pacote ping6 artesanal
  • sendpees6: Uma ferramenta de [email protected], que gera uma solicitação de vizinhança com muitas CGAs (coisas de criptografia ;-) para manter a CPU ocupada. Legal. e cerca de 25 ferramentas a mais para você descobrir :-)

Basta executar as ferramentas sem opções e elas lhe darão ajuda e mostrarão as opções de linha de comando.

A BIBLIOTECA

A biblioteca thc-ipv6-lib.c é o coração e alma de todas as ferramentas – e aquelas que você pode querer escrever. A implementação é tão simples que geralmente são apenas 2 a 4 linhas para criar um pacote IPv6/ICMPv6 completo com o conteúdo de sua escolha.

Sua estrutura básica que você usa é (thc_ipv6_hdr *) por exemplo: thc_ipv6_hdr *my_ipv6_packet; int my_ipv6_packet_len; e você nunca precisará mexer com suas opções/campos.

Sempre que você quiser construir um pacote IPv6, basta escrever: my_ipv6_packet = thc_create_ipv6_extended(interface, prefer, &my_ipv6_packet_len, src6, dst6, ttl, length, label, class, version); se algo falhar, retorna NULL (apenas se my_ipv6_packet_len ou dst6 não existirem ou malloc falhar). As opções para thc_create_ipv6_extended são: (char*) interface - a interface na qual você deseja enviar o pacote (int) prefer - PREFER_LINK (para usar o endereço link-local) ou PREFER_HOST para usar um endereço IPv6 de host, e PREFER_GLOBAL para usar um endereço IP6 público (internet) (padrão) (int ) &my_ipv6_packet_len - o tamanho do pacote que será criado (unsigned char) src6 - o IP6 de origem (OPCIONAL - será selecionado se NULL) (unsigned char*) dst6 - o IP6 de destino (em formato de rede, 16 bytes) geralmente o resultado de thc_resolve6("ipv6.google.com"); (int) ttl - o TTL do pacote (OPCIONAL - 0 definirá para 255) (int) length - o comprimento que será definido no cabeçalho (OPCIONAL - 0 = comprimento real) (int) label - o rótulo de fluxo (0 é ok) (int) class - a classe do pacote (0 é ok) (int) version - a versão do IP6 (OPCIONAL - 0 definirá para versão 6) Retorna NULL em erros ou uma estrutura alocada via malloc em caso de sucesso. free() quando terminar de usá-lo.

Agora você pode definir cabeçalhos de extensão sobre ele: thc_add_hdr_route(my_ipv6_packet, &my_ipv6_packet_len, routers, routerptr); thc_add_hdr_fragment(my_ipv6_packet, &my_ipv6_packet_len, offset, more_frags, id); thc_add_hdr_dst(my_ipv6_packet, &my_ipv6_packet_len, buf, buflen); thc_add_hdr_hopbyhop(my_ipv6_packet, &my_ipv6_packet_len, buf, buflen); thc_add_hdr_nonxt(my_ipv6_packet, &my_ipv6_packet_len, hdropt); thc_add_hdr_misc(my_ipv6_packet, &my_ipv6_packet_len, type, len, buf, buflen); As funções explicadas: _route: Adicionar um Cabeçalho de Roteamento (como IP Source Routing) (int) routers - o número de roteadores em routerptr (char**) routerptr - uma estrutura char[routers + 1] com destinos de roteador em formato de rede. Veja alive6.c para um exemplo. _fragment: Adicionar um Cabeçalho de Fragmento (int) offset - o offset no qual os dados devem ser escritos (nota: coloque a localização do offset em bytes aqui, não em octetos) (int) more_frags - defina como 0 se for o último fragmento, 1 em todos os outros (int) id - um ID para o pacote (mesmo para todos os fragmentos) _dst: Adicionar um Cabeçalho de Opções de Destino (char) buf - um buffer de char. Você mesmo deve gerenciar este buffer com o que quiser escrever nele. (int) buflen - o comprimento de buf _hopbyhop: Adicionar um Cabeçalho Hop-By-Hop (char*) buf - um buffer de char. Você mesmo deve gerenciar este buffer com o que quiser escrever nele. (int) buflen - o comprimento de buf _nonxt: Especificar que não haverá cabeçalhos seguintes quaisquer (int) hdropt - esta opção é atualmente ignorada _misc: Especificar um cabeçalho miscelâneo. Use isso se quiser projetar um cabeçalho de extensão inválido ou inexistente. (int) type - O ID do tipo para especificar o cabeçalho (int) len - O comprimento a anunciar para o cabeçalho (OPCIONAL - -1 define para o valor correto) (char*) buf - um buffer de char. Você mesmo deve gerenciar este buffer com o que quiser escrever nele. (int) buflen - o comprimento de buf Essas funções retornam (int) 0 em caso de sucesso e -1 em erro.

Finalmente você pode adicionar os cabeçalhos de fluxo (stream) ou datagrama. thc_add_icmp6(my_ipv6_packet, &my_ipv6_packet_len, type, code, flags, buf, buflen, checksum); thc_add_tcp(my_ipv6_packet, &my_ipv6_packet_len, source_port, destination_port, sequence_number, ack_number, flags, window_size urgent_pointer, options, optione_length, data, data_length); thc_add_udp(my_ipv6_packet, &my_ipv6_packet_len, source_port, destination_port, checksum, data, data_length); thc_add_data6(my_ipv6_packet, &my_ipv6_packet_len, type, buf, buflen); _icmp6: Adicionar um cabeçalho de pacote ICMP6 (int) type: o tipo ICMP6 (int) code: o código ICMP6 (int) flags: as flags ICMP6 (char*) buf - um buffer de char. Você mesmo deve gerenciar este buffer com o que quiser escrever nele. (int) buflen - o comprimento de buf _tcp|_udp: Adicionar um cabeçalho TCP ou UDP (ushort) source_port: porta de origem (ushort) destination_port: porta de destino (uint) sequence_number: número de sequência TCP (uint) ack_number: número de confirmação TCP (ushort) checksum: checksum UDP, 0 = gerar checksum (para TCP o checksum é sempre calculado) (uchar) flags: flags TCP: TCP_SYN, TCP_ACK, TCP_FIN, TCP_RST, TCP_PSH, ... (uint) window_size: tamanho da janela TCP (uint) urgent_pointer: ponteiro urgente TCP (geralmente 0) (char*) options: buffer de opções TCP, pode ser NULL (uint) options_length: o comprimento do buffer de opções TCP (char*) data: os dados que o protocolo carrega (uint) data_length: o comprimento do buffer de dados _data6: Adicionar um cabeçalho miscelâneo (int) type: o ID do protocolo (char*) buf - um buffer de char. Você mesmo deve gerenciar este buffer com o que quiser escrever nele. (int) buflen - o comprimento de buf Essas funções retornam (int) 0 em caso de sucesso e -1 em erro.

Uma vez terminado, você cria e envia o pacote. thc_generate_pkt(interface, srcmac, dstmac, my_ipv6_packet, &my_ipv6_packet_len); thc_send_pkt(interface, my_ipv6_packet, &my_ipv6_packet_len); ou combinados em uma única função: thc_generate_and_send_pkt(interface, srcmac, dstmac, my_ipv6_packet, &my_ipv6_packet_len);

thc_generate_and_send_pkt: Isso gera o pacote IPv6 real e final e então o envia. (char*) interface - a interface para enviar o pacote (unsigned char*) srcmac - o mac de origem a usar (em formato de rede) (OPCIONAL, o mac real é usado se NULL) (unsigned char*) dstmac - o mac de destino a usar (em formato de rede) (OPCIONAL, o mac real é consultado se NULL) O thc_generate_pkt e thc_send_pkt juntos fornecem a mesma funcionalidade. Você geralmente os usa apenas se fizer algo como thc_generate_pkt(...); while(1) thc_send_pkt(...); Essas funções retornam (int) 0 em caso de sucesso e -1 em erro.

Quando terminar, libere a memória com: thc_destroy_packet(my_ipv6_packet);

Existem algumas funções auxiliares importantes que você precisará: thc_resolve6(destinationstring); Isso resolve o endereço IPv6 ou nome DNS para um endereço de rede IPv6. Use isso para dst6 em thc_create_ipv6_extended(). O resultado precisa ser liberado com free() quando não for mais necessário. thc_inverse_packet(my_ipv6_packet, &my_ipv6_packet_len); Esta função inteligente troca os endereços de origem e destino, troca o tipo de cabeçalho ICMP (ECHO REQUEST -> ECHO REPLY etc.) e recalcula o checksum. Se você não tem ideia para que isso pode ser útil, vá brincar com seu xbox :-)

Se você só quer fazer algo muito rápido, existem algumas funções predefinidas de criação de ICMPv6 que enviam pacotes ICMP6 em apenas uma linha de código: thc_ping6(interface, src, dst, size, count); thc_neighboradv6(interface, src, dst, srcmac, dstmac, flags, target); thc_neighborsol6(interface, src, dst, target, srcmac, dstmac); thc_routeradv6(interface, src, dst, srcmac, default_ttl, managed, prefix, prefixlen, mtu, lifetime); thc_routersol6(interface, src, dst, srcmac, dstmac); thc_toobig6(interface, src, srcmac, dstmac, mtu, my_ipv6_packet, my_ipv6_packet_len); thc_paramprob6(interface, src, srcmac, dstmac, code, pointer, my_ipv6_packet, my_ipv6_packet_len); thc_unreach6(interface, src, srcmac, dstmac, icmpcode, my_ipv6_packet, my_ipv6_packet_len); thc_redir6(interface, src, srcmac, dstmac, newrouter, newroutermac, my_ipv6_packet, my_ipv6_packet_len); thc_send_as_fragment6(interface, src, dst, type, buf, buflen, frag_len); Elas fazem o que você espera, então estou com preguiça^H^H^H^H^Hocupado para descrever em mais detalhes.

As seguintes funções alocam memória para o ponteiro de resultado, então lembre-se de liberar os ponteiros de resultado dessas funções quando não precisar mais deles: thc_ipv6_dummymac() thc_ipv62notation() thc_ipv62string() thc_string2ipv6() thc_string2notation() thc_resolve6() thc_get_own_ipv6() thc_get_own_mac() thc_get_multicast_mac() thc_get_mac() thc_lookup_ipv6_mac() thc_look_neighborcache() thc_generate_key() thc_generate_cga() thc_generate_rsa()

Ajuda muito se você der uma olhada em exemplos de uso. Os melhores são as ferramentas do pacote thc-ipv6, especialmente implementation6.c e fake_*6.c - divirta-se, e mande código de volta, para que a comunidade possa continuar construindo em cima dele.

DETECÇÃO

A maioria das ferramentas pode ser facilmente detectada por um IDS ou software de detecção especializado. Isso é feito de propósito para facilitar a detecção de uso malicioso. As ferramentas ou especificam uma assinatura de pacote fixa, ou farejam genericamente por pacotes (por exemplo, respondendo também a solicitações de vizinho ICMPv6 que são enviadas para um mac inexistente, e são portanto muito fáceis de detectar). Se você não quiser isso, altere o código.

PATCHES, BUGS, DICAS, etc.

Envie-os para vh (at) thc (dot) org (e adicione "antispam" na linha de assunto) Ou submeta via github: https://github.com/vanhauser-thc/thc-ipv6

Divirta-se!

Baixar ferramenta