Home > Linux > Hping: herramienta de seguridad

Hping: herramienta de seguridad

Hace buen tiempo mientras buscaba programas alternativos al famoso ping encontré hping y aunque inicialmente no le daba mucha bola, luego resultó ser muy útil para mis labores como sysadmin.

Veo que muchos recomiendan su uso, pero tambien encuentro que mucha gente se desanima porque lo encuentra un poco complicado de usar y prefiere otras herramientas, para aportar mi granito de arena pongo algunos de los usos mas comunes que le doy a hping en mi trabajo diario:

- como simple ping
# hping 192.168.1.1
HPING 192.168.1.1 (eth0 192.168.1.1): NO FLAGS are set, 40 headers + 0 data bytes
len=46 ip=192.168.1.1 ttl=128 id=4143 sport=0 flags=RAF seq=0 win=0 rtt=0.4 ms
len=46 ip=192.168.1.1 ttl=128 id=4144 sport=0 flags=RAF seq=1 win=0 rtt=0.4 ms

Por defecto hping utiliza el protocolo TCP en las conexiones incluyendo en las
cabeceras TCP un tamaño de ventana de 64 y con puerto destino 0 sin ningun parámetro adicional, si quieres especificar algun paquete ICMP debes añadir -1 y si deseas especificar UDP un -2

Algunos parámetros básicos:
-c --count especificar el número de paquetes que queremos enviar o
recibir.
-i --interval -iX donde X son los segundos -iuX, donde X son los segundos, que tienen que transcurrir entre el envio de cada paquete.
--fast --faster alias de tiempo para indicar -i u10000. Para enviar 10 paquetes por segundo.
-n --numeric trata la salida de datos como números, no hace resolución inversa de host, etc..
-I --interface permite especificar el interfaz de red por donde enrutar el tráfico generado.
-D --debug la información que nos aporta el debug nos permitirá identificar errores.
-z --bind asocia la combinación de teclas Ctrl+z para incrementar o reducir el TTL de los paquetes.
-Z --unbind desasocia la anterior combinación de teclas

- para ver un puerto abierto
# hping -I eth0 -S 192.168.1.1 -p 80
HPING 192.168.1.1 (eth0 192.168.1.1): S set, 40 headers + 0 data bytes
len=46 ip=192.168.1.1 ttl=100 id=4203 sport=80 flags=SA seq=0 win=8000 rtt=0.5 ms
len=46 ip=192.168.1.1 ttl=100 id=4204 sport=80 flags=SA seq=1 win=8000 rtt=0.5 ms

si el valor de flags es SA (paquete SYN y ACK de aceptación) entonces el puerto esta abierto si por el contrario el valor de flags es RA o RAF el puerto esta cerrado

- para escanear todos los puertos (en el ejemplo que inicie desde el puerto 15)
# hping -I eth0 -S 192.168.1.1 -p ++15

- para escanear un rango de puertos
# hping --scan '15-100' -S 192.168.1.1
si deseas ver las respuestas de todos los puertos inclusive los cerrados agregar -V

- para probar los puertos filtrados en nuestros firewalls, usaremos -S para SYN -A para ACK -F para FIN -R para RCK

# hping -I eth0 -c 1 -S 192.168.1.1 -p 1234
Si se dan cuenta es lo que hicimos hace un momento para verificar si un puerto estaba abierto puesto que todas las conexiones deben iniciar con un paquete del tipo SYN

# hping -I eth0 -c 1 -A 192.168.1.1 -p 1234
Aqui lo que hacemos es enviar un paquete ACK que no nos dirá si el puerto esta abierto, pero si nos indicará que el equipo esta online, asi que el hecho de que bloqueen los paquetes SYN a un puerto no es garantía de que detecten su presencia ;)

Y un par mas para ver como responden nuestros firewalls

# hping -I eth0 -c 1 -F 192.168.1.1 -p 1234
Aqui usamos un paquete FIN, que dependiendo de si hay respuesta o no se puede interpretar de distintas formas.
Si hay respuesta debemos obtener un paquete RST/ACK ante un puerto cerrado, si el puerto esta abierto entonces no responderá con nada.
Si no hay respuesta es porque hemos bloqueado correctamente los paquetes FIN o porque nuestro equipo esta down :P

# hping -I eth0 -c 1 192.168.1.1 -p 1234
Aqui sin ningún parámetro para ejecutar lo que se denomina un “null flag” (recuerdan nmap?) como en el caso de FIN si el puerto esta cerrado debemos obtener un paquete RST/ACK y nada si el puerto esta abierto, esto debería funcionar solo a nivel local ya que la gran mayoría de routers bloquean esto.

Pues ahi lo tienen, a verificar sus firewalls :-D

Si quieren saber mas sobre hping que es en verdad una herramienta muy completa visiten su wiki: http://wiki.hping.org/

Categories: Linux Tags:
  1. August 30th, 2006 at 09:16 | #1

    Ping ? Pong!

    (que buenos tiempos de Mirc32)

  2. cristioan
    October 11th, 2006 at 16:12 | #2

    :shock::???::cool::evil:

  3. elkin
    June 13th, 2007 at 14:46 | #3

    quisiera saber mas sobre esa seguridad de puertos para mi firewall

  4. Cristian B.
    October 5th, 2007 at 21:32 | #4

    Hola. Muy interesante esta herramienta. He intentado usarla en windows xp, desde la ventana de comando MSDOS sin exito. Por ejemplo
    C:> hping http://www.debian.org -p 80

    En que estaré fallando?

    Gracias por sus respuestas. Saludos

  5. October 20th, 2010 at 14:44 | #5

    Les dejo un link, donde estoy subiendo info mas avanzada de hping.
    http://www.netsecure.com.ar
    pd: Muy buen post!

  1. No trackbacks yet.

Additional comments powered by BackType

Switch to our mobile site