Browse > Home /

| Subcribe via RSS

Manual práctico de hping

Artículo escrito por Pedro Carrasco

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 además también 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 información que queramos. Esto puede resultar muy interesante para poder efectuar auditorías de red y poder así prevenir ataques malintencionados.

Descarga e instalación

La instalación de esta herramienta, al menos en Ubuntu, es realmente sencilla, como la mayoría de aplicaciones. Tan sólo hay que abrir una consola y escribir como root:

root@laptop:/home/root# apt-get install hping3

Para más información puedes consultar la web oficial aquí.

Diferentes usos y su sintaxis

El uso más sencillo que podemos darle es como sustituto de la herramienta ping, aunque veremos que la información que nos aporta es algo diferente. Vamos a comparar ambas herramientas:

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
— localhost hping 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 información que nos proporciona es muy similar, salvo algún pequeño matiz como el campo de flags, que a continuación veremos de qué se trata.

También podemos utilizarlo como scanner de puertos, utilizando el método idle scan (por cierto, método 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
— localhost hping statistic —
4 packets transmitted, 4 packets received, 0% packet loss
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 pequeño servidor web en el puerto 9091). Si hubiera estado cerrado, nos habría respondido con el flag RA, que quiere decir RST/ACK, o lo que es lo mismo, que tiene el puerto cerrado; veámoslo 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
— localhost hping statistic —
2 packets transmitted, 2 packets received, 0% packet loss
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 cómo 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 during transit from ip=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 (también podemos utilizar el comando -z en vez de -t, e incrementar el TTL cuanto queramos de uno en uno presionando Ctrl+Z).

Además podemos “firmar” los paquetes que enviemos, con el contenido que queramos. Aunque este ejemplo es inocuo, utilizándolo (in)debidamente podríamos causar diversas alteraciones en la máquina destino. Veámos el ejemplo:

root@laptop:/home/root# cat firma.txt
esto es 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
[main] memlockall(): Success
Warning: can’t disable memory paging!
ICMP Port Unreachable from ip=127.0.0.1 name=localhost
status=0 port=1963 seq=0

Estableciendo la opción -2 enviamos paquetes UDP, con la opción -d 50 indicamos la longitud del mensaje y con la opción -E indicamos que lea del archivo firma.txt. Podemos ver lo que hemos enviado si capturamos con cualquier sniffer (yo he usado wireshark) el tráfico de la red.

Firmar paquetes con hping

Firmar paquetes con hping

Otra interesante habilidad de hping es poder enviar archivos a través de la red. Para esto, necesitamos una máquina que envíe algún archivo, y otra que esté a la escucha para recibirlo. Primero, preparamos la máquina que permanecerá a la escucha, para ello utilizaremos el parámetro −−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 parámetro −−icmp (también puede usarse UDP o TCP). Al ejecutarlo veremos algo así:

root@laptop:/home/root# hping3 localhost −−listen signature −−safe −−icmp
Warning: Unable to guess the output interface
hping3 listen mode
[main] memlockall(): Success
Warning: can’t 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
[main] memlockall(): Success
Warning: can’t 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 resultado es que en el lado en que estábamos esperando recibir algo, 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
[main] memlockall(): Success
Warning: can’t 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 imaginación 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 artículo viendo un sencillo ejemplo de ataque flooding:

root@laptop:/home/root# hping3 −−rand-source −−flood localhost
HPING localhost (lo 127.0.0.1): NO FLAGS are set, 40 headers + 0 data bytes
hping in flood mode, no replies will be shown
^C
— localhost hping statistic —
189742 packets transmitted, 0 packets received, 100% packet loss
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 máquinas transmitan ningún tipo de información. El parámetro −−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

hping-flood

Ahora os toca practicar con hping para aprender más 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 información de un modo educativo o para auditar vuestra propia red.

Tags: , , , , , , ,

MiAportacion.org: Los verdaderos Héroes de la Red

mayo 15th, 2010 | 5 Comments | Posted in Dirección y Gestión

Esta semana he descubierto MiAportacion.org a través de los feeds de Error500 que tenía pendientes. Después de leer lo comenté con Pedro y Karen, pues varias veces habíamos hablado de montar algo muy similar.

logo miaportacion.org

Pero más allá de sentir que habíamos perdido una oportunidad de emprender una aventura interesante, me alegré mucho al ver que alguien había puesto en marcha algo tan interesante. Si algo sobra en Internet son los modelos oxidados de replicación de contenidos, especulación y yoismo (el egocentrismo al máximo exponente). Por eso me encantado la idea de que alguien del calibre de Manuel Roca, CEO de Atrapalo haya lanzado una iniciativa tan potente para ayudar a los demás. Algo de lo que los demás deberíamos de aprender en lugar de pensar en el lucro infinito. Y es que ya lo comenta en su biografía de twitter:

Bio Entrepreneur. Founder and CEO of Atrapalo.com. My dream is to improve this world, why not? – to give anything less than your best is to sacrifice a gift

Miaportacion.org es un proyecto en fase beta, que pone en contacto necesidades específicas con recursos. ¿Cómo? Muy fácil. Aquellas personas o entidades que requieran de algún tipo de ayuda introducen una breve descripción de lo que están buscando. Los lectores pueden navegar por las diferentes categorías (también permite filtro por ciudades o entidades) y ofrecer su ayuda en aquello que deseen.

Pensarlo un momento. ¡Es muy simple! ¿Verdad que tienes cosas en casa que hace mucho tiempo que no utilizas? ¿Conoces a gente que tiene tiempo libre y necesita relacionarse? Pues hay muchas personas que pueden hacer uso de todo esto. Y lo mejor e que algo tan simple para ti como deshacerte de una cámara que ya no usas y te está ocupando espacio en casa, puede ser de mucha ayuda a otros.

Yo ya me he suscrito a su boletín y al twitter de miaportación.org para seguir todas las novedades. Personas como Manuel Roca son los verdaderos Héroes de la Red.

Tags: , , , , , , , , , , , , ,

Copias de seguridad en volumenes de red con Time Machine

octubre 31st, 2007 | No Comments | Posted in Sistemas de Información
Hoy vamos a dejar de lado los aspectos estratégicos y de negocio para centrarnos en un tópico más técnico: la configuración del entorno necesario para poder realizar copias de seguridad en volumenes de red (SAMBA, NFS, AFP, …) con Time Machine, una de las grandes funcionalidades del recién nacido Mac OS 10.5 (Leopard).
timemachine.jpgEn el ejemplo utilizamos un equipo con Mac OS 10.5 y otro con Ubuntu Server 7.10 (sirve cualquier otra versión de Ubuntu).
Para llevar a cabo nuestro cometido, nos centraremos en los siguientes aspectos:
  • Creación del volumen de red en un servidor remoto.
  • Activaciónd el protocolo de red AFP.
  • Configuración de Mac OS X para utilizar el volumen de red con Time Machine

More »

Tags: , , , , , ,

Networking: Crea y amplia tu red de contactos con Internet

septiembre 14th, 2007 | No Comments | Posted in Desarrollo Profesional
El próximo día 21 de septiembre tendrá lugar el seminario sobre
Networking que imparte Rosaura Alastruey, una de las personas que mejor
conocen el mundo de las redes de contactos.

Algunos datos sobre el seminario:

  • Tema: Networking: Crea y amplia tu red de contactos con Internet
  • Objetivos: Conoce técnicas y herramientas para construir, gestionar y hacer más eficiente tu red de relaciones profesionales.
  • Contenido:
    • Las redes sociales.
    • Los elementos imprescindibles para hacer networking.
    • Las redes y encuentros de networking presencial actuales en España.
    • Internet: el complemento perfecto del networking.
    • Las principales paltaformas virtuales de networking (España y otros paises).
    • El futuro del networking.
  • Dia: 21/09/2007
  • Hora: 16h a 20h
  • Preu: Gratis.
  • Lugar: Cibernàrium. C/Marie Curie s/n Barcelona 08042
  • Inscripciones: Formulario web o en el teléfono 932917610

Hay que confirmar asistencia y las plazas son limitadas.

Un evento muy recomendado para todos aquellos que estéis interesados en conocer el mundo del networking más a fondo.

More »

Tags: , , ,

La gestión del conocimiento en la empresa red

junio 20th, 2007 | No Comments | Posted in Dirección y Gestión

El modelo organizativo de la empersa-red implica la capacidad de formar un conjunto firme de relaciones de trabajo fluidas, flexibles y complejas que permitan el intercambio de información constante entre los diferentes actores involucrados dentro y fuera de la organización, generando un conocimiento diferencial.

Algunas de las necesidades específicas de intercambio de información requieren de una nueva filosofía de trabajo, y sobre todo, una correcta gestión del conocimiento en la organización.

El siguiente artículo pretende un breve recorrido sobre las diferentes áreas de riesgo, necesidades y realidades sobre la gestión del conocimiento, estructuradas del siguiente modo:

  • ¿Qué se el conocimiento? Definición del concepto y breve introducción d’ideas sobre el conocimiento.
  • ¿Cómo se gestiona el conocimiento? Métodos para gestionar el conocimiento.
  • ¿Qué se la emrpesa red? Introducción al modelo organizativo, sus necesidades y filosofía de trabajo.
  • ¿Por qué hace falta gestionar el conocimiento en las organizaciones? Justificación de la necesitado de utilizar una metodología y control exhaustivo para la gestión del conocimiento como capital intelectual, y especialmente en la empresa red.
  • Conclusiones y valoración global.

More »

Tags: , , ,