Docly Child

3.3.2.3. HPING3

hping o hping3 (la última versión) es una herramienta que permite generar y manipular paquetes de datos para la suit de protocolos TCP/IP. Es una herramienta clásica, muy útil para escanear puertos en hosts y que se encuentra disponible en Kali Linux. A partir del comando de ayuda se pueden ver las opciones de parametrización, que incluye desde el número de paquetes a generar y enviar hasta el modo: TCP, ICMP, UDP, poner en modo escucha…

				
					hping3 -h
				
			
hping3 parametrización

Para cada una de estos modos también existen opciones. Para el escaneo de puertos, se usará el modo TCP, que es el que se utiliza por defecto. Como se muestra, hping3 permite alterar el contenido de las cabeceras TCP, incluso pudiendo llegar a generar cabeceras TCP con diferentes bits de control activados (flags).

hping3 parametrización (2)

La estructura básica de funcionamiento es la que se indica debajo. En el target, se puede incluir tanto una IP como un dominio. El comando clásico para realizar escaneo de puertos y ver si están abiertos consiste en enviar un determinado número de paquetes (opción –c) con el bit de control SYN (opción –S), simulando una petición de inicio de conexión al host destino. De acuerdo al mecanismo Three-way Handshake, si el puerto de destino está abierto, este responderá con un paquete con los bits de control TCP SYN/ACK (flags=SA en hping).

				
					hping3 [opciones] <target> [parametros]
hping3 -S <target> -p <port> -c <n>

				
			
Escaneo básico de puerto hping3

El escaneo de puertos también proporciona información de forma pasiva sobre el sistema operativo del host destino. En concreto, a través de los datos TTL (Time to Live) y WIN (Windows Size) en los paquetes de respuesta, que están en las cabeceras de los protocolos IP y TCP respectivamente. De acuerdo a los estándares, un Windows emitiría paquetes con TTL = 128 y WIN = 5000-9000, mientras que si es Linux estos valores serían TTL = 64 y  WIN = 500-600. Esto no siempre ocurre así, pues los administradores de seguridad en la red de una empresa pueden manipular este dato para que sus servidores envíen valores diferentes y confundir a un posible atacante.

También es posible que el  host no esté disponible o bien el puerto esté cerrado o filtrado por algún Firewall. En estos casos, simplemente no habrá respuesta (100% packet loss) o en determinados casos si es en LAN se dará una respuesta con los bits de control RA. En ambos casos se indica la misma situación para el puerto (no disponible).

Puerto cerrado hping3

Esta herramienta también permite realizar escaneos de puertos por barridos. En la primera opción (–scan), la herramienta mostrará todos los puertos que han respondido a un paquete SYN de acuerdo a los puertos indicados. En la segunda opción se realiza el escaneo puerto a puerto desde uno que se indique, añadiendo ++ en la opción de puerto.

				
					hping3 --scan <rango_puertos> -S <target>
				
			
Escaneo de puertos hping3 con barrido
				
					hping3 -S <target> -p ++<port>
				
			
Escaneo de puertos hping3 con barrido (2)

hping3 es una herramienta muy versátil y a parte de lo mostrado, se pueden hacer otro tipo de funciones. Por ejemplo, enviar el contenido de un fichero de texto, indicando el tamaño total del paquete. A partir del análisis con Wireshark, se puede deducir que el puerto está abierto. Por ejemplo, usando el modo UDP:

				
					hping3 -2 -c 5 -p ++<puerto> -d <n> -E fichero.txt
				
			
hping3 envío de datos en fichero

hping3 también permite realizar ataques de TCP Flood, que es una modalidad de denegación de servicio (DoS, Denial of service). Este ataque consiste en inundar el servicio con miles de paquetes en tan solo un instante, causando el colapso e impidiendo el uso a otros usuarios. Además, hping3 permite enviar estos paquetes con una IP de envío generada aleatoriamente para cada paquete (opción –rand-source).

				
					hping3 −−rand-source −−flood <target>
				
			

Ya para terminar, comentar que hpin3 también permite funcionar con scripts, aunque para crear estos scripts se requiere conocimiento en programación. Para más información sobre esta funcionalidad avanzada: https://iphelix.medium.com/hping-tips-and-tricks-85698751179f.