hping – uma ferramenta de verificação de rede é um gerador e analisador de pacotes gratuito para o protocolo TCP/IP distribuído por Salvatore Sanfilippo (também conhecido como Antirez).
É um tipo de testador de segurança de rede. É um dos de fato ferramentas para auditoria de segurança e teste de firewalls e redes e foi usado para explorar a técnica de varredura ociosa (também inventada pelo autor hping), e agora está implementado no Nmap Security Scanner.
Network Scanning Tool hping é um montador/analisador de pacotes TCP/IP orientado por linha de comando. A interface é inspirada no ping(8) Comando Unix, mas o hping não é capaz apenas de enviar solicitações de eco ICMP.
Ele suporta os protocolos TCP, UDP, ICMP e RAW-IP, possui modo traceroute, capacidade de enviar arquivos entre um canal coberto e muitos outros recursos.
Embora o hping tenha sido usado principalmente como ferramenta de verificação de rede no passado, ele pode ser usado de várias maneiras por pessoas que não se importam com segurança para testar redes e hosts.
Leia também Windows O Defender Antivirus Bypass permite que qualquer malware seja executado em um Windows Máquina
- Teste de firewall
- Varredura avançada de portas
- Teste de rede, utilizando diferentes protocolos, TOS, fragmentação
- Descoberta manual de MTU de caminho
- Traceroute avançado, sob todos os protocolos suportados
- Impressão digital remota do sistema operacional
- Adivinhação remota do tempo de atividade
- Auditoria de pilhas TCP/IP
- hping também pode ser útil para estudantes que estão aprendendo TCP/IP.
- Hosts Traceroute/ping/probe atrás de um firewall que bloqueia tentativas usando os utilitários padrão Network Scanning Tool .
- Execute a varredura inativa (agora implementada no nmap com uma interface de usuário fácil).
- Teste regras de firewall.
- Teste IDSs.
- Explorar vulnerabilidades conhecidas de pilhas TCP/IP.
- Pesquisa em redes.
- Aprenda TCP/IP (hping foi usado em cursos de rede AFAIK).
- Escreva aplicativos reais relacionados a testes e segurança de TCP/IP.
- Testes automatizados de firewall.
- Explorações de prova de conceito.
- Pesquisa de redes e segurança quando há necessidade de emular comportamento complexo de TCP/IP.
- Protótipo de sistemas IDS.
- Utilitários de rede simples de usar com interface Tk.
- Ferramenta de digitalização em rede
Como usar o hping…..
Sintaxe do comando:
- hping3 = Nome do binário do aplicativo.
- -c 100000 = Número de pacotes a serem enviados.
- -d 120 = Tamanho de cada pacote enviado para a máquina de destino.
- -S = Estou enviando apenas pacotes SYN.
- -w 64 = Tamanho da janela TCP.
- -p21 = Porta de destino (21 sendo porta FTP). Você pode usar qualquer porta aqui.
- –enchente = Enviando pacotes o mais rápido possível, sem ter o cuidado de mostrar as respostas recebidas. Modo inundação.
- –rand-fonte = Usando endereços IP de origem aleatória. Você também pode usar -a ou –spoof para ocultar nomes de host. Consulte a página MAN abaixo.
- www.gbhackers.com = Endereço IP de destino ou endereço IP da máquina de destino. Você também pode usar um nome de site aqui. No meu caso resolve para 127.0.0.1 (conforme inserido no arquivo /etc/hosts)
Inundação SYN simples – DoS usando HPING3
Testando regras de firewall – parte 1:
Hping3 por padrão (sem opções) envia um pacote nulo com um cabeçalho TCP para a porta 0. Você pode optar por usar um protocolo diferente usando a opção numérica disponível para cada um:
-0 (Raw IP mode)
-1 (ICMP mode)
-2 (UDP mode)
-8 (Scan mode)
-9 (Listen mode)
Como o hping3 usa TCP por padrão, a ausência das opções abaixo enviará um segmento TCP. Ao usar TCP, podemos decidir omitir sinalizadores (padrão) ou definir um sinalizador usando uma das seguintes opções:
-S (SYN)
-A (ACK)
-R (RST)
-F (FIN)
-P (PUSH)
-U (URG)
-X (XMAS)
-Y (YMAS)
Nos exemplos a seguir, usaremos TCP, UDP e ICMP. Nesta primeira metade, criaremos pacotes para testar como um sistema responderia por padrão. Isso dará uma ideia da grande quantidade de dados que simplesmente não precisamos permitir.
PING
Primeiro, enviaremos um pacote PING (ICMP Echo Request) simples para o nosso destino.
hping3 -1 -c 1 10.0.0.4
O –1 neste comando diz ao hping3 para usar o ICMP, que por padrão envia uma resposta de eco.
O C 1 afirma que queremos apenas enviar 1 pacote, e o 10.0.0.4 é o nosso alvo. Na saída do comando, vemos que 1 pacote foi enviado e recebido. Agora, vamos verificar a resposta na saída do tcpdump.
tcpdump -i wlan0 -n host 10.0.0.4
Podemos ver nesta saída do tcpdump que o comando enviou um Solicitação de eco ICMP, e nosso alvo respondeu com a resposta de eco ICMP apropriada. Desde o primeiro pacote enviado, já podemos dizer que nosso alvo está vivo.
SYN, Porto 0
Agora vamos enviar outro pacote e observar como o alvo responde. Desta vez enviaremos um cabeçalho TCP marcado com o sinalizador SYN para a porta 0. ()
hping3 -S -c 1 -s 5151 10.0.0.4
Como afirmado anteriormente, o -S marca o sinalizador SYN em nosso cabeçalho TCP. Também vemos aqui uma nova opção, -s 5151, que escolhe uma porta de origem para usar.
Sem esta opção, o hping3 simplesmente escolheria uma porta de origem aleatória.
Desde o porto 0 não está aberto, vemos uma resposta RST-ACK (marcada na saída). Mais tarde veremos como o alvo responderá a um pacote SYN destinado a uma porta aberta.
Tal como esperado, a saída mostra que o pacote foi enviado usando a porta de origem 5151 para o nosso destino na porta 0 com o sinalizador SYN definido. Abaixo disso, podemos ver as bandeiras [R.] definido, e também temos um ‘ack‘na saída.
FIN, Porto 0
Enviaremos um pacote idêntico, só que desta vez com o sinalizador FIN definido.
hping3 -F -c 1 -s 5151 10.0.0.4
A única coisa que fizemos de diferente neste comando mudou o -S para -F. Novamente, temos uma resposta. Como esta porta está fechada, devemos ver a mesma resposta como se enviássemos um pacote SYN.
Como deveríamos, vemos a mesma resposta RST-ACK de antes, marcada por [R.] e ‘ack‘.
SYN, Porta 80
Nos exemplos anteriores, enviamos pacotes para a porta 0. Agora testaremos uma porta conhecida, a porta 80 (HTTP).
Como SYN é o primeiro passo no handshake triplo de uma conexão TCP (SYN, SYN-ACK, ACK), se a porta estiver aberta, receberíamos a resposta SYN-ACK adequada devido à tentativa do alvo de completar a conexão. .
Esta é uma técnica popular usada na varredura de portas, conhecida como “conexão semiaberta“.
hping3 -S -c 1 -s 5151 -p 80 10.0.0.4
Todas essas opções devem parecer familiares, com exceção de -p 80. Isso simplesmente especifica a porta de destino a ser definida em nosso cabeçalho TCP.
Vemos que nosso alvo respondeu e a saída mostra “flags=SA” confirmando que recebemos um pacote SYN-ACK.
Como nosso alvo respondeu com um SYN-ACK (marcado por [S.] e ‘ack‘), sabemos que a porta 80 do nosso alvo está aberta e aceitando conexões. Caso contrário, veríamos [R.] como em nosso pacote anterior, pacote SYN enviado para a porta 0.
ACK, Porta 80
Agora sabemos que a porta 80 está aberta em nosso destino, Network Scanning Tool, então vamos ver como ela responde a diferentes pacotes.
Vimos no último exemplo que quando enviamos um pacote SYN para uma porta aberta, recebemos um SYN-ACK.
Vamos ver que tipo de resposta obtemos quando enviamos um pacote ACK (a parte final do handshake triplo).
hping3 -A -c 1 -s 5151 -p 80 10.0.0.4
Nosso alvo respondeu, mas desta vez com o Conjunto de sinalizadores RST.
Nossa saída tcpdump mostra o pacote enviado marcado com [.] A seguir ack esclarece que este é um sinalizador ACK. A saída também mostra a resposta do alvo com um pacote RST.
UDP, Porta 80
Enviaremos um último pacote ao nosso alvo para ver se obtemos uma resposta.
Como a porta 80 usa TCP como protocolo da camada de transporte, deve ser interessante ver que tipo de resposta obtemos quando lhe enviamos um pacote UDP.
hping3 -2 -c 1 -s 5151 -p 80 10.0.0.4
Usando -2 neste comando, especificamos o uso de UDP como nosso protocolo de camada de transporte. Podemos ver na saída que obtivemos Porta ICMP Resposta inacessível, devido a essa porta não estar aberta para tráfego UDP.
Nossa saída tcpdump mostraria essa mesma informação.
Testando regras de firewall – parte 2:
Na primeira seção, vimos como um sistema responderia a diferentes pacotes por padrão.
Nesta seção, veremos como apenas algumas regras de firewall podem fazer uma enorme diferença nas respostas do nosso alvo. Você deve negar qualquer coisa que não tenha certeza de que precisa abrir e inserir regras para tudo que precisar abrir mais tarde.
Queremos permitir apenas os pacotes necessários e negar qualquer outra coisa. Como a única porta necessária para permitir novas conexões é a porta 80 usando TCP, desejaremos descartar todos os outros pacotes para impedir que o host responda a eles.
Se configurado corretamente, o firewall no alvo que estamos usando não deverá responder a nada além de um pacote SYN para a porta 80.
Regra 1: Descarte qualquer pacote TCP que esteja iniciando uma nova conexão e NÃO esteja marcado por um sinalizador SYN
Regra 2: Aceite qualquer pacote TCP destinado à porta 80 em 10.0.0.4
Regra 3: Aceita qualquer pacote TCP relacionado ou parte de uma conexão estabelecida
Regra 4: Descarte todos os pacotes
Abaixo é mostrada a configuração do iptables.
Este é apenas um exemplo simples de políticas de entrada que cuidam das questões da Parte 1. Com esta configuração, o alvo responderá apenas aos pacotes TCP destinados à porta 80. Agora, vamos pegar alguns dos mesmos comandos anteriores e ver como nosso alvo responde equipado com essas regras. Ferramenta de digitalização em rede.
PING
hping3 -1 -c 1 10.0.0.4
Em parte 1 recebemos uma resposta de eco ICMP, mas podemos ver em nossa saída que este pacote foi descartado. Como este não é um cabeçalho TCP, o firewall não responderá.
SYN, Porta 80
Como a única nova conexão que precisamos permitir é através do TCP na porta 80, vamos testar o firewall para ter certeza de que ainda obteremos uma resposta.
hping3 -S -c 1 -s 5151 -p 80 10.0.0.4
Como deveria, o firewall ainda está permitindo a passagem do pacote e nos dando uma resposta com um Pacote SYN-ACK.
Devido à primeira regra na configuração do iptables, se este pacote fosse marcado com qualquer outro sinalizador ele não seria permitido, pois é o primeiro pacote na nova conexão.
UDP, Porta 80
Até agora, com a configuração do iptables, vimos que os pacotes ICMP foram descartados e que ainda podemos iniciar com êxito uma nova conexão através do TCP na porta 80.
Agora, para o nosso último pacote, vamos testar para ter certeza de que nossas regras funcionam corretamente para não permitir a passagem de nenhum outro pacote. porta 80. Ferramenta de digitalização em rede.
hping3 -2 -c 1 -s 5151 -p 80 10.0.0.4
Aqui enviamos um pacote UDP para a porta 80. Embora a porta 80 use TCP como seu protocolo da camada de transporte, em parte 1 na verdade, obtivemos uma resposta com uma porta ICMP inacessível.
Se o pacote passasse pelo firewall, veríamos a mesma resposta. Como não houve resposta, sabemos que o pacote foi descartado.
Testamos um host com sucesso, configuramos regras para corrigir os problemas encontrados e testamos novamente a funcionalidade adequada.
Além disso, leia
As 10 melhores ferramentas de verificação de vulnerabilidade para testes de penetração – 2023
Xerosploit – Kit de ferramentas de Pentesting para realizar ataques MITM, Spoofing, Sniffing e DOS
Mais de 50 ferramentas de teste de penetração de rede para hackers e profissionais de segurança – 2023