Está en la página 1de 5

Tutorial Basico de Hping3 para hacer ataques DDoS

Que es y para qu sirve La herramienta hping es un analizador/ensamblador de paquetes TCP/IP de uso en modo consola. Est inspirado en el comando ping de unix, aunque a diferencia de ste, hping no solo es capaz de enviar paquetes ICMP sino que adems tambin puede enviar paquetes TCP, UDP, y RAW-IP. Todo esto quiere decir, que con esta herramienta, podemos generar paquetes TCP/IP a medida, que contengan la informacin que queramos. Esto puede resultar muy interesante para poder efectuar auditoras de red y poder as prevenir ataques malintencionados. Descarga e instalacin La instalacin de esta herramienta, al menos en Ubuntu, es realmente sencilla, como la mayora de aplicaciones. Tan slo hay que abrir una consola y escribir como root: root@laptop:/home/root# apt-getinstall hping3 Diferentes usos y su sintaxis El uso ms sencillo que podemos darle es como sustituto de la herramienta ping, aunque veremos que la informacin que nos aporta es algo diferente. Vamos a compararambasherramientas: root@laptop:/home/root# ping localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.020 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.016 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.017 ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.023 ms ^C localhost ping statistics 4 packets transmitted, 4 received, 0% packet loss, time 2997ms rtt min/avg/max/mdev = 0.016/0.019/0.023/0.002 ms root@laptop:/home/root# hping3 localhost HPING localhost (lo 127.0.0.1): NO FLAGS are set, 40 headers + 0 data bytes len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.1 ms len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.1 ms len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.0 ms len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.0 ms ^C localhosthping statistic 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.0/0.0/0.1 ms

En ambos casos, la informacinquenosproporcionaesmuy similar, salvo algnpequeomatizcomo el campo de flags, que a continuacinveremos de qu se trata. Tambin podemos utilizarlo como scanner de puertos, utilizando el mtodo idle scan (por cierto, mtodo ideado por Salvatore Sanfilipo, el mismo creador de hping), la sintaxis es la siguiente: root@laptop:/home/root# hping3 -S localhost -p 9091 HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=0 win=32792 rtt=0.1 ms len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=1 win=32792 rtt=0.1 ms len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=2 win=32792 rtt=0.1 ms len=44 ip=127.0.0.1 ttl=64 DF id=0 sport=9091 flags=SA seq=3 win=32792 rtt=0.0 ms ^C localhosthpingstatistic 4 packetstransmitted, 4 packetsreceived, 0% packetloss round-trip min/avg/max = 0.0/0.1/0.1 ms Si nos fijamos en el valor del flag, veremos que pone SA, que quiere decir SYN/ACK, que a grosso modo es el mensaje que un servidor responde cuando tiene un puerto abierto (en mi caso tengo un pequeo servidor web en el puerto 9091). Si hubiera estado cerrado, nos habra respondido con el flag RA, que quiere decir RST/ACK, o lo que es lo mismo, que tiene el puerto cerrado; vemoslo utilizando otro puerto distinto: root@laptop:/home/root# hping3 -S localhost -p 9092 HPING localhost (lo 127.0.0.1): S set, 40 headers + 0 data bytes len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=9092 flags=RA seq=0 win=0 rtt=0.0 ms len=40 ip=127.0.0.1 ttl=64 DF id=0 sport=9092 flags=RA seq=1 win=0 rtt=0.1 ms ^C localhosthpingstatistic 2 packetstransmitted, 2 packetsreceived, 0% packetloss round-trip min/avg/max = 0.0/0.0/0.1 ms En este caso nos responde con un RST/ACK, lo que nos indica que el puerto 9092 est cerrado. Otro uso que podemos darle es como herramienta traceroute, aunque para este uso, prefiero tcptraceroute, veamos cmo hacerlo con hping: root@laptop:/home/root# hping3 pedrocarrasco.org -t 1 traceroute HPING pedrocarrasco.org (wlan0 174.132.157.133): NO FLAGS are set, 40 headers + 0 data bytes hop=1 TTL 0 duringtransitfromip=10.109.8.1 name=UNKNOWN hop=1 hoprtt=0.9 ms El campo ip=10.109.8.1, hace referencia a la IP del primer salto que realiza para llegar al dominio especificado. sto lo hemos especificado poniendo -t 1 (tambin podemos utilizar el comando -z en vez de -t, e incrementar el TTL cuanto queramos de uno en uno presionando Ctrl+Z). Adems podemos firmar los paquetes que enviemos, con el contenido que queramos. Aunque este ejemplo es inocuo, utilizndolo (in)debidamente podramos causar diversas alteraciones en la mquina destino. Vemos el ejemplo:

root@laptop:/home/root# cat firma.txt estoes solo un ejemplo root@laptop:/home/root# hping3 -2 -p 7 localhost -d 50 -E firma.txt HPING localhost (lo 127.0.0.1): udp mode set, 28 headers + 50 data bytes memlockall(): Success Warning: cant disable memory paging! ICMP Port Unreachablefromip=127.0.0.1 name=localhost status=0 port=1963 seq=0 Estableciendo la opcin -2 enviamos paquetes UDP, con la opcin -d 50 indicamos la longitud del mensaje y con la opcin -E indicamos que lea del archivo firma.txt. Podemos ver lo que hemos enviado si capturamos con cualquier sniffer (yo he usado wireshark) el trfico de la red.

Firmar paquetes con hping Otra interesante habilidad de hping es poder enviar archivos a travs de la red. Para esto, necesitamos una mquina que enve algn archivo, y otra que est a la escucha para recibirlo. Primero, preparamos la mquina que permanecer a la escucha, para ello utilizaremos el parmetro listen en el que especificaremos el texto que nos servir de indicador de inicio de mensaje (en este caso utilizo signature), el protocolo que usaremos es ICMP y lo establecemos utilizando el parmetro icmp (tambin puede usarse UDP o TCP). Al ejecutarloveremosalgoas: root@laptop:/home/root# hping3 localhost listen signature safe icmp Warning: Unable to guess the output interface hping3 listen mode memlockall(): Success Warning: cant disable memory paging! Ahora toca preparar por otro lado el comando que nos servir para enviar el fichero que queramos. root@laptop:/home/root# hping3 localhost icmp -d 50 sign signature file firma.txt HPING localhost (lo 127.0.0.1): icmp mode set, 28 headers + 50 data bytes memlockall(): Success Warning: cant disable memory paging! len=78 ip=127.0.0.1 ttl=64 id=5268 icmp_seq=0 rtt=0.1 ms len=78 ip=127.0.0.1 ttl=64 id=5287 icmp_seq=1 rtt=0.1 ms len=78 ip=127.0.0.1 ttl=64 id=5289 icmp_seq=2 rtt=0.1 ms len=78 ip=127.0.0.1 ttl=64 id=5291 icmp_seq=3 rtt=0.1 ms len=78 ip=127.0.0.1 ttl=64 id=5293 icmp_seq=4 rtt=0.1 ms len=78 ip=127.0.0.1 ttl=64 id=5295 icmp_seq=5 rtt=0.1 ms

len=78 ip=127.0.0.1 ttl=64 id=5297 icmp_seq=6 rtt=0.1 ms El resultadoesque en el lado en queestbamosesperandorecibiralgo, empieza a verse lo siguiente: root@laptop:/home/root# hping3 localhost listen signature safe icmp Warning: Unable to guess the output interface hping3 listen mode memlockall(): Success Warning: cant disable memory paging! esto es solo un ejemplo esto es solo un ejemplo esto es solo un ejemplo esto es solo un ejemplo esto es solo un ejemplo esto es solo un ejemplo Conociendo este ltimo uso, y con un poco de imaginacin podremos utilizar hping como si de un troyano se tratase. Aunque mas que para ser usado como troyano, esta herramienta es perfecta para realizar ataques de DoS, spoof o flood. Acabaremos el artculo viendo un sencillo ejemplo de ataque flooding: root@laptop:/home/root# hping3 rand-source floodlocalhost HPING localhost (lo 127.0.0.1): NO FLAGS are set, 40 headers + 0 data bytes hping in floodmode, no replieswill be shown ^C localhosthpingstatistic 189742 packetstransmitted, 0 packetsreceived, 100% packetloss round-trip min/avg/max = 0.0/0.0/0.0 ms Podemos ver que en tan solo unos segundos, hemos inundado la red con casi doscientos mil paquetes transmitidos de forma ininterrumpida. Esto puede (suele) causar que la red se colapse, impidiendo a otros usuarios poder utilizarla, ya que hping no deja espacio (entre paquete y paquete) para que otras mquinas transmitan ningn tipo de informacin. El parmetro rand-source hace que cada paquete tenga un origen distinto y aleatorio, y flood no deja espacio entre paquete y paquete. Si tenemos wireshark a la escucha, podemos ver cual es el resultado:

hping-flood

Ahora les toca practicar con hping para aprender ms sobre el protocolo TCP/IP y sus debilidades. No creo que haga falta decirlo, pero por si acaso aviso de que el uso malintencionado de esta herramienta puede ser ilegal, as que utilizad esta informacin de un modo educativo o para auditar vuestra propia red

También podría gustarte