Tabla de Contenidos
Quienes trabajamos en entornos tecnológicos vinculados con las redes y la seguridad, hemos empleado en numerosas ocasiones el comando ‘ping’. Sin embargo, a veces pasamos por alto el uso de herramientas más versátiles y potentes. Un ejemplo de ello es la herramienta ‘hping3’, que se utiliza desde una terminal Linux.
El recurso hping3 al igual que el comando ping, te permite el descubrimiento de equipos mediante ICMP. Sin embargo con hping3 puedes ir más allá, gracias por un lado a que es una herramienta de red capaz de enviar paquetes TCP / IP personalizados y modificados, y por otro, a que además de ICMP, soporta los protocolos TCP, UDP y RAW-IP, tal y como podemos comprobar en las opciones disponibles:
Mode
default mode TCP
-0 –rawip RAW IP mode
-1 –icmp ICMP mode
-2 –udp UDP mode
-8 –scan SCAN mode
-9 –listen listen mode
El protocolo por defecto es TCP. Así que por defecto hping3 enviará cabeceras TCP al puerto 0 del equipo destino sin ningún flag tcp activado.
A menudo, esta es la mejor manera de hacer un ‘ping oculto’, algo muy útil cuando el objetivo está detrás de un firewall. Por otra parte, un null-flag tcp al puerto 0 tiene altas posibilidades de no ser registrado.
Estamos acostumbrados a emplear lo que nos viene más a mano y que nos saca rápidamente de ciertos apuros. Por eso, cuando necesitamos verificar la conectividad con equipos específicos, solemos recurrir al comando ping. Sin embargo, en este artículo exploraremos algunas de las opciones más interesantes que nos brinda hping3, que es como veremos, una herramienta mucho más versátil, que nos otorga un control más preciso sobre los paquetes, adaptándolos según nuestras necesidades
Hping3 puede ser utilizado de diferentes formas para probar la seguridad de redes y equipos y entre otras, podemos destacar las siguientes funcionalidades:
Probar las reglas de un firewall: La herramienta hping3 es muy versátil, cuando queremos testear la seguridad y eficacia de un firewall para diferentes protocolos, o los IDS (Intrusion Detection System). Así podemos conocer por ejemplo si un firewall está filtrando ciertos puertos.
Escaneo avanzado de puertos
Traceroute avanzado, bajo diferentes protocolos.
Denegaciones de Servicio. Vamos a poder verificar la protección y estabilidad frente a ataques DoS y DDoS. Hping3 nos permite llevar a cabo pruebas reales a través de la creación de múltiples peticiones, y con ello, podemos comprobar qué nivel de protección tiene nuestra red.
Hping3 ya viene preinstalado en Kali Linux (distribución Linux especializada para profesionales de la seguridad).
IMPORTANTE: Muchas de las opciones de esta herramienta solo se deben utilizar dentro de un entorno controlado, porque pueden suponer ataques indebidos a redes de terceros y eso es totalmente ilegal. Sabiendo utilizar hping3, el equipo de seguridad de una empresa puede comprobar si su red está bien protegida.
Una de las opciones que nos permite hping3 es el modo escaneo (-8 –scan SCAN mode):
Mode
default mode TCP
-0 –rawip RAW IP mode
-1 –icmp ICMP mode
-2 –udp UDP mode
-8 –scan SCAN mode
-9 –listen listen mode
En el modo de escaneo, la opción espera un argumento que describa grupos de puertos para escanear. Hay una palabra especial que es: “all” y que es un alias para referirse a los puertos 0-65535. Por otro lado, la palabra especial “known” incluye todos los puertos listados en el archivo services del directorio /etc. Si editamos este archivo:
![]()
Vemos que su contenido es:

etc.
etc.
Para hacer la prueba, vamos a partir de un servicio Apache dentro de Kali Linux y procedemos a levantar dicho servicio:
sysadmin@kali01:/$ /etc/init.d/apache2 start
sysadmin@kali01:~$ /etc/init.d/mysql start
Vamos a lanzar el escaneo sobre la Ip 127.0.0.1 utilizando 1a palabra especial “known” y con la flag Syn (-S) activada:
hping3 –scan known -S 127.0.0.1
Como vemos a continuación, el tipo de respuesta que tenemos para los puertos 80 y 3306 (ver en rojo) es un SA (SYN/ACK), indicándonos que esos puertos están abiertos:

Valor de la flag:
SA significa SYN/ACK puerto abierto
RA significa RST/ACK puerto cerrado
Y ahora, vamos a lanzar el escaneo sobre la Ip de la puerta de enlace de una red doméstica, utilizando también la palabra especial “known” con la flag Syn (-S) activada:
hping3 –scan known -S 192.168.1.1
Como comprobamos a continuación, el tipo de respuesta que tenemos para los puertos 23, 53, 80, 139 y 443 (ver en rojo) es un SA (SYN/ACK), indicándonos que esos puertos están abiertos:

Veamos ahora como realizar un overflood al puerto 443 de la Ip de la puerta de enlace de una red doméstica con la opción: –flood (que implica envío de paquetes tan rápido como sea posible) y con la flag Syn activada:
hping3 -p 443 -S –flood 192.168.1.1
Las opciones que hemos empleado para este comando son:
-p –destport [+][+]<port> destination port(default 0) ctrl+z inc/dec
-S –syn set SYN flag
–flood sent packets as fast as possible. Don’t show replies.
La Ip: 192.168.1.1 sería la Ip víctima de este overflood.
En este caso dejamos el comando activo unos diez segundos y como vemos, en tan poco tiempo se han generado 353637 paquetes:

Ahora probemos una forma sencilla de realizar el famoso ataque DoS (denegación de servicio) en nuestra propia red. Esto extrapolado a cualquier situación y entorno real, permitiría comprobar si la red está preparada frente a este tipo de ataques, de manera que, si se bloquease, habría que poner de inmediato los medios para protegerla.
De nuevo para esta prueba, la IP víctima será la Ip de la puerta de enlace de una red doméstica: 192.168.1.1, y lo que vamos a hacer es inundar esa Ip destino con muchísimos paquetes falseando la IP de origen.
hping3 –rand-source –flood 192.168.1.1
Las opciones que hemos utilizado son:
–rand-source random source address mode.
–flood sent packets as fast as possible. Don’t show replies.
Para esta prueba dejamos el comando activo unos diez segundos, y en ese tiempo se generaron 1250384 paquetes:

Recordar que todo esto siempre se debe realizar con máxima precaución y en situaciones controladas.
Contacto:
657 216 711 / 613 396 385 / 919 409 418
info@securityinthenet.com