hping3

tools

hping3 es una herramienta de red capaz de enviar paquetes TCP/IP personalizados y mostrar respuestas de destino como lo hace el programa ping con las respuestas ICMP. hping3 maneja fragmentación, cuerpo y tamaño de paquetes arbitrarios y puede usarse para transferir archivos encapsulados bajo protocolos compatibles. Con hping3, puede realizar al menos las siguientes tareas:

  • Probar reglas de firewall - Escaneo avanzado de puertos - Probar el rendimiento de la red utilizando diferentes protocolos, tamaño de paquete, TOS (tipo de servicio) y fragmentación. - Descubrimiento de MTU de ruta - Transferencia de archivos incluso entre reglas de firewall realmente fascistas - Uso similar a Traceroute bajo diferentes protocolos - Uso similar a Firewalk - Huellas digitales de SO remoto - Auditoría de pila TCP/IP - Muchas otras.

Opciones Básicas

-h --help Muestra una pantalla de ayuda en la salida estándar, útil si deseas canalizarla a less.

-v --version Muestra la información de versión y la API utilizada para acceder a la capa de enlace de datos, ya sea linux sock packet o libpcap.

-c --count cantidad Se detiene después de enviar (y recibir) cantidad de paquetes de respuesta. Luego del último paquete enviado, hping3 esperará COUNTREACHED_TIMEOUT segundos por respuestas del host de destino. Puedes ajustar COUNTREACHED_TIMEOUT editando el archivo hping3.h.

-i --interval Especifica el número de segundos o microsegundos entre cada paquete enviado. --interval X espera X segundos, --interval uX espera X microsegundos. El valor por defecto es 1 segundo. Si usas hping3 para transferir archivos, ajustar esta opción es importante para aumentar la velocidad de transferencia. También es útil para escaneo idle/spoofing.

--fast Alias de -i u10000. Envia 10 paquetes por segundo.

--faster Alias de -i u1. Más rápido que --fast ;) (pero no tan rápido como tu computadora pueda enviar paquetes).

--flood Envía paquetes lo más rápido posible, sin mostrar respuestas. Es mucho más rápido que usar -i u0.

-n --numeric Salida numérica únicamente. No se intentará resolver nombres simbólicos de host.

-q --quiet Salida silenciosa. Sólo se muestran las líneas de resumen al inicio y al final.

-I --interface nombre_interfaz Por defecto en Linux y BSD, hping3 usa la interfaz de red por defecto. Puedes forzar una interfaz específica con esta opción. No necesitas escribir el nombre completo, por ejemplo -I et puede coincidir con eth0, ethernet0, etc.

-V --verbose Salida detallada. Las respuestas TCP se muestran con datos como longitud, IP, flags, TTL, RTT, etc.

-D --debug Modo depuración. Útil si experimentas problemas con hping3. Muestra información extra sobre detección de interfaz, acceso a capa de enlace, fragmentación, opciones, protocolo HCMP, etc.

-z --bind Asocia CTRL+Z con TTL (time to live), para poder aumentarlo o disminuirlo con una o dos pulsaciones de esa combinación.

-Z --unbind Desvincula CTRL+Z, permitiendo detener hping3.

--beep Emite un beep por cada paquete recibido coincidente (no para errores ICMP).


Selección de Protocolo

El protocolo predeterminado es TCP. Enviará cabeceras TCP al puerto 0 del host destino sin flags y con un tamaño de ventana de 64. Útil como “ping oculto” cuando un firewall bloquea ICMP.

-0 --rawip Modo IP en crudo. Envia cabeceras IP con datos añadidos con --signature o --file. Puedes usar --ipproto para definir el protocolo IP.

-1 --icmp Modo ICMP. Envía solicitudes de eco por defecto. Puedes establecer el tipo/código con --icmptype y --icmpcode.

-2 --udp Modo UDP. Envía paquetes UDP al puerto 0 por defecto. Opciones configurables: --baseport, --destport, --keep.

-8 --scan Modo escaneo. Puedes especificar rangos de puertos como 1-1000, grupos como 1,2,3, known, all, o usar ! para negar (por ejemplo: 1-1024,!known). Aún se pueden usar flags como -S, TTL, tamaño de ventana, etc.

-9 --listen firma Modo escucha. Espera paquetes que contengan una firma específica y muestra lo recibido desde esa firma hasta el final del paquete.


Opciones Relacionadas a IP

-a --spoof hostname Establece una dirección IP de origen falsa. Útil para spoofing, pero no verás las respuestas.

--rand-source Activa modo de fuente aleatoria. Los paquetes se enviarán desde IPs aleatorias. Útil para pruebas de tablas de estado de firewall.

--rand-dest Activa modo de destino aleatorio. Usa una IP tipo 10.0.0.x y se reemplaza la x con números aleatorios. Usa --debug para ver las direcciones generadas. Requiere especificar una interfaz de salida con --interface.

-t --ttl tiempo_de_vida Establece el TTL. Útil con --traceroute o --bind.

-N --id Establece el campo IP->id. Por defecto es aleatorio. Si se fragmenta y no se especifica, será getpid() & 0xFF.

-H --ipproto Establece el protocolo IP en modo RAW IP.

-W --winid Corrige el orden de bytes del ID IP en sistemas Windows antiguos.

-r --rel Muestra incrementos del ID IP en lugar del ID directamente. Compensa pérdidas de paquetes.

-f --frag Fragmenta paquetes. Útil para pruebas de fragmentación o evasión de firewalls. MTU virtual por defecto es 16 bytes.

-x --morefrag Establece el flag de más fragmentos. Hace que el host destino genere un ICMP de tiempo excedido en reensamblaje.

-y --dontfrag Establece el flag de no fragmentar. Útil para descubrimiento de MTU en ruta.

-g --fragoff valor_offset Establece el desplazamiento de fragmento.

-m --mtu valor_mtu Establece MTU virtual diferente a 16 cuando se activa la fragmentación.

-o --tos tos_hexadecimal Establece el Tipo de Servicio (TOS).

-G --rroute Registro de ruta. Incluye la opción RECORD_ROUTE en los paquetes. Muestra la ruta de retorno si el host la respeta.


Opciones ICMP

-C --icmptype tipo Establece el tipo ICMP (por defecto: solicitud de eco).

-K --icmpcode código Establece el código ICMP (por defecto: 0).

--icmp-ipver Establece la versión IP en los datos ICMP (por defecto: 4).

--icmp-iphlen Establece la longitud de la cabecera IP en los datos ICMP (por defecto: 5).

--icmp-iplen Establece la longitud del paquete IP en los datos ICMP (por defecto: longitud real).

--icmp-ipid Establece el ID IP en los datos ICMP (por defecto: aleatorio).

--icmp-ipproto Establece el protocolo IP en los datos ICMP (por defecto: TCP).

--icmp-cksum Establece la suma de comprobación ICMP (por defecto: válida).

--icmp-ts Alias de --icmptype 13 (solicitud de timestamp ICMP).

--icmp-addr Alias de --icmptype 17 (solicitud de máscara de dirección ICMP).


Opciones TCP/UDP

-s --baseport puerto_origen Establece el puerto de origen base. Se incrementa por cada paquete enviado. Se puede mantener fijo con --keep.

-p --destport [+][+]puerto_destino Establece el puerto de destino (por defecto: 0). +1024: incrementa puerto con cada respuesta recibida. ++1024: incrementa puerto con cada paquete enviado. CTRL+Z permite modificar interactivamente.

--keep Mantiene el puerto de origen constante.

-w --win Establece el tamaño de ventana TCP (por defecto: 64).

-O --tcpoff Establece un offset TCP falso.

Last updated