Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
udp2raw — Un túnel que convierte el tráfico UDP en tráfico UDP/FakeTCP/ICMP cifrado utilizando Raw Socket, te ayuda a evadir firewalls UDP (o entornos UDP inestables) | Kitploit
Herramientas/GitHubGitHub/wangyu-/udp2raw
Herramientas de Cifrado/DescifradoEvasión de IDS/IPSSeguridad de Redes
GitHubwangyu-/udp2raw

udp2raw

Un túnel que convierte el tráfico UDP en tráfico UDP/FakeTCP/ICMP cifrado utilizando Raw Socket, te ayuda a evadir firewalls UDP (o entornos UDP inestables)

Ver Repositorio
8.5k1.3k10hace 11 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Udp2raw-tunnel

Un túnel que convierte tráfico UDP en tráfico FakeTCP/UDP/ICMP cifrado mediante Raw Socket, ayudándote a evadir Firewalls UDP (o entornos UDP inestables).

Cuando se usa solo, udp2raw solo tuneliza tráfico UDP. Sin embargo, si usas udp2raw junto con cualquier VPN basada en UDP, puedes tunelizar cualquier tráfico (incluyendo TCP/UDP/ICMP). Actualmente se confirma que OpenVPN/L2TP/ShadowVPN y tinyfecVPN son compatibles.

image0

o

image_vpn

wiki de udp2raw

简体中文

Plataformas compatibles

Host Linux (incluyendo escritorio Linux, teléfono/tableta Android, router OpenWRT o Raspberry Pi) con cuenta root o capacidad cap_net_raw.

Para usuarios de Windows y MacOS, usa udp2raw de este repo.

Características

Enviar/Recibir Paquetes UDP con Cabeceras ICMP/FakeTCP/UDP

Las cabeceras ICMP/FakeTCP te ayudan a evadir el bloqueo UDP, QOS UDP o comportamiento NAT UDP inadecuado en algunos ISP. En modo cabecera ICMP, udp2raw funciona como un túnel ICMP.

También se admiten cabeceras UDP. En modo cabecera UDP, se comporta como un túnel UDP normal, y puedes aprovechar las otras características (como cifrado, antirreproducción o estabilización de conexión).

TCP Simulado con Entrega en Tiempo Real/Fuera de Orden

En modo cabecera FakeTCP, udp2raw simula el handshake de 3 vías al establecer una conexión, simula seq y ack_seq durante la transferencia de datos. También simula algunas opciones TCP como: MSS, sackOk, TS, TS_ack, wscale. Los firewalls considerarán FakeTCP como una conexión TCP, pero es esencialmente UDP: admite entrega en tiempo real/fuera de orden (como el UDP normal), sin control de congestión ni retransmisión. Por lo tanto, no habrá ningún problema de TCP sobre TCP al usar OpenVPN.

Cifrado, Antirreproducción

  • Cifra tu tráfico con AES-128-CBC.
  • Protege la integridad de datos con HMAC-SHA1 (o MD5/CRC32 más débiles).
  • Defiende contra ataques de reproducción con ventana antirreproducción.

Notas sobre el cifrado

Detección de Fallos y Estabilización (Recuperación de Conexión)

Los fallos de conexión se detectan mediante heartbeats. Si se agota el tiempo de espera, el cliente cambiará automáticamente el número de puerto y se reconectará. Si la reconexión es exitosa, la conexión anterior se recuperará y todas las conversaciones UDP existentes seguirán siendo válidas.

Por ejemplo, si usas udp2raw + OpenVPN, OpenVPN no perderá la conexión después de cualquier reconexión, incluso si se vuelve a enchufar el cable de red o se cambia el punto de acceso WiFi.

Otras Características

  • Multiplexación Un cliente puede manejar múltiples conexiones UDP, todas compartiendo la misma conexión raw.

  • Múltiples Clientes Un servidor puede tener múltiples clientes.

  • Soporte NAT Los 3 modos funcionan en entornos NAT.

  • Soporte OpenVZ Probado en VPS de BandwagonHost.

  • Fácil de Compilar Sin dependencias. Para compilar de forma cruzada udp2raw, solo necesitas descargar un toolchain, modificar el makefile para apuntar al toolchain, ejecutar make cross y todo está listo. (Nota: Los binarios precompilados para escritorio, Raspberry Pi, Android y algunos routers OpenWrt ya están incluidos en Releases)

Palabras clave

Bypass UDP QoS Bypass UDP Blocking Bypass OpenVPN TCP over TCP problem OpenVPN over ICMP UDP to ICMP tunnel UDP to TCP tunnel UDP over ICMP UDP over TCP

Primeros pasos

Instalación

Descarga el binario de la versión desde https://github.com/wangyu-/udp2raw-tunnel/releases

Ejecución

Supón que tu UDP está bloqueado o con QOS o simplemente mal soportado. Supón que la IP de tu servidor es 44.55.66.77 y tienes un servicio escuchando en el puerto UDP 7777.

root@kitploit:~
# Ejecutar en el lado del servidor:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r 127.0.0.1:7777    -k "passwd" --raw-mode faketcp -a

# Ejecutar en el lado del cliente
./udp2raw_amd64 -c -l0.0.0.0:3333  -r44.55.66.77:4096  -k "passwd" --raw-mode faketcp -a

(Los comandos anteriores deben ejecutarse como root. Para mayor seguridad, con algunos pasos adicionales, puedes ejecutar udp2raw como no root. Consulta este enlace para más información)

Salida del Servidor:

Salida del Cliente:

Ahora, se ha establecido un túnel raw cifrado entre cliente y servidor a través del puerto TCP 4096. Conectarse al puerto UDP 3333 en el lado del cliente es equivalente a conectarse al puerto 7777 en el lado del servidor. No se expondrá tráfico UDP.

Nota

Para ejecutar en Android, consulta Android_Guide

La opción -a agrega automáticamente una regla iptables (o algunas reglas iptables) para ti. udp2raw depende de esta regla iptables para funcionar de manera estable. Ten cuidado de no olvidar -a (es un error común). Si no quieres que udp2raw agregue la regla iptables automáticamente, puedes agregarla manualmente (echa un vistazo a la opción -g) y omitir -a.

Tema Avanzado

Uso

root@kitploit:~
udp2raw-tunnel
git version:4623f878e0    build date:Nov  3 2024 23:15:46
repository: https://github.com/wangyu-/udp2raw-tunnel

usage:
    run as client : ./this_program -c -l local_listen_ip:local_port -r server_address:server_port  [options]
    run as server : ./this_program -s -l server_listen_ip:server_port -r remote_address:remote_port  [options]

common options,these options must be same on both side:
    --raw-mode            <string>        available values:faketcp(default),udp,icmp and easy-faketcp
    -k,--key              <string>        password to gen symetric key,default:"secret key"
    --cipher-mode         <string>        available values:aes128cfb,aes128cbc(default),xor,none
    --auth-mode           <string>        available values:hmac_sha1,md5(default),crc32,simple,none
    -a,--auto-rule                        auto add (and delete) iptables rule
    -g,--gen-rule                         generate iptables rule then exit,so that you can copy and
                                          add it manually.overrides -a
    --disable-anti-replay                 disable anti-replay,not suggested
    --fix-gro                             try to fix huge packet caused by GRO. this option is at an early stage.
                                          make sure client and server are at same version.
client options:
    --source-ip           <ip>            force source-ip for raw socket
    --source-port         <port>          force source-port for raw socket,tcp/udp only
                                          this option disables port changing while re-connecting
other options:
    --conf-file           <string>        read options from a configuration file instead of command line.
                                          check example.conf in repo for format
    --fifo                <string>        use a fifo(named pipe) for sending commands to the running program,
                                          check readme.md in repository for supported commands.
    --log-level           <number>        0:never    1:fatal   2:error   3:warn
                                          4:info (default)     5:debug   6:trace
    --log-position                        enable file name,function name,line number in log
    --disable-color                       disable log color
    --disable-bpf                         disable the kernel space filter,most time its not necessary
                                          unless you suspect there is a bug
    --dev                 <string>        bind raw socket to a device, not necessary but improves performance
    --sock-buf            <number>        buf size for socket,>=10 and <=10240,unit:kbyte,default:1024
    --force-sock-buf                      bypass system limitation while setting sock-buf
    --seq-mode            <number>        seq increase mode for faketcp:
                                          0:static header,do not increase seq and ack_seq
                                          1:increase seq for every packet,simply ack last seq
                                          2:increase seq randomly, about every 3 packets,simply ack last seq
                                          3:simulate an almost real seq/ack procedure(default)
                                          4:similiar to 3,but do not consider TCP Option Window_Scale,
                                          maybe useful when firewall doesnt support TCP Option
    --lower-level         <string>        send packets at OSI level 2, format:'if_name#dest_mac_adress'
                                          ie:'eth0#00:23:45:67:89:b9'.or try '--lower-level auto' to obtain
                                          the parameter automatically,specify it manually if 'auto' failed
    --wait-lock                           wait for xtables lock while invoking iptables, need iptables v1.4.20+
    --gen-add                             generate iptables rule and add it permanently,then exit.overrides -g
    --keep-rule                           monitor iptables and auto re-add if necessary.implys -a
    --hb-len              <number>        length of heart-beat packet, >=0 and <=1500
    --mtu-warn            <number>        mtu warning threshold, unit:byte, default:1375
    --clear                               clear any iptables rules added by this program.overrides everything
    --retry-on-error                      retry on error, allow to start udp2raw before network is initialized
    -h,--help                             print this help message

Reglas iptables, -a y -g

Este programa envía paquetes a través de raw socket. En modo FakeTCP, el procesamiento de paquetes TCP del kernel de Linux debe bloquearse mediante una regla iptables en ambos lados, de lo contrario el kernel enviará automáticamente RST para un paquete TCP no reconocido y sufrirás problemas de estabilidad/rendimiento. Puedes usar la opción -a para que el programa agregue/elimine automáticamente la regla iptables al iniciar/salir. También puedes usar la opción -g para generar la regla iptables y agregarla manualmente.

--cipher-mode y --auth-mode

Se sugiere usar aes128cbc + hmac_sha1 para obtener la máxima seguridad. Si deseas ejecutar el programa en un router, puedes probar xor + simple, que puede engañar a la inspección de paquetes de los firewalls la mayoría de las veces, pero no te protegerá de ataques serios. El modo none es solo para fines de depuración. No se recomienda establecer cipher-mode o auth-mode en none.

--seq-mode

El modo FakeTCP no se comporta al 100% como una conexión TCP real. Los ISP pueden distinguir el tráfico TCP simulado del tráfico TCP real (aunque es costoso). seq-mode puede ayudarte a cambiar ligeramente el comportamiento de incremento de seq. Si experimentas problemas de conexión, intenta cambiar el valor.

--lower-level

--lower-level te permite enviar paquetes a nivel OSI 2 (nivel de enlace), para que puedas evitar cualquier regla iptables local. Si tienes reglas iptables complicadas que entran en conflicto con udp2raw y no puedes (o te da pereza) editar las reglas iptables, --lower-level puede ser muy útil. Prueba --lower-level auto para detectar automáticamente los parámetros; puedes especificarlos manualmente si auto falla.

Formato manual if_name#dest_mac_adress, ej: eth0#00:23:45:67:89:b9.

--keep-rule

Monitorea iptables y vuelve a agregar automáticamente las reglas iptables (para bloquear el procesamiento TCP del kernel) si es necesario. Especialmente útil cuando las reglas iptables pueden ser borradas por otros programas (por ejemplo, si usas openwrt, cada vez que cambias y confirmas una configuración, las reglas iptables pueden borrarse y reconstruirse).

--conf-file

También puedes cargar opciones desde un archivo de configuración para mantener las contraseñas fuera del comando ps.

Por ejemplo, reescribe las opciones del ejemplo de servidor anterior (en la sección Primeros pasos) en un archivo de configuración:

server.conf

root@kitploit:~
-s
# Puedes agregar comentarios como este
# Los comentarios DEBEN ocupar una línea completa
# De lo contrario no funcionarán como se espera
# Dirección de escucha
-l 0.0.0.0:4096
# Dirección remota
-r 127.0.0.1:7777
-a
-k passwd
--raw-mode faketcp

Presta atención al parámetro -k: En modo línea de comandos, las comillas alrededor de la contraseña serán eliminadas por el shell. En los archivos de configuración no eliminamos las comillas.

Luego inicia el servidor con

root@kitploit:~
./udp2raw_amd64 --conf-file server.conf

--fifo

Usa un fifo (tubería con nombre) para enviar comandos al programa en ejecución. Por ejemplo --fifo fifo.file.

En el lado del cliente, puedes usar echo reconnect >fifo.file para forzar al cliente a reconectarse. Actualmente no se ha implementado ningún comando para el servidor.

Prueba de rendimiento

Método de prueba:

iperf3 TCP a través de OpenVPN + udp2raw (No se usa el modo UDP de iperf3 debido a un error mencionado en este issue: https://github.com/esnet/iperf/issues/296. En su lugar, encapsulamos el tráfico TCP en UDP mediante OpenVPN para probar el rendimiento. Lee Aplicación para más detalles.

Comando iperf3:

root@kitploit:~
iperf3 -c 10.222.2.1 -P40
iperf3 -c 10.222.2.1 -P40 -R

Entornos

  • Cliente Plan Vultr de $2.5/mes (CPU single core 2.4GHz, 512MB RAM, Tokio, Japón)
  • Servidor Plan BandwagonHost de $3.99/año (CPU single core 2.0GHz, 128MB RAM, Los Ángeles, EE. UU.)

Prueba1

raw_mode: faketcp cipher_mode: xor auth_mode: simple

image4

(la velocidad inversa fue similar y no se subió)

Prueba2

raw_mode: faketcp cipher_mode: aes128cbc auth_mode: md5

image5

(la velocidad inversa fue similar y no se subió)

wiki

Consulta la wiki para más información:

https://github.com/wangyu-/udp2raw-tunnel/wiki

Descargar herramienta