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