Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
udp2raw — Un tunnel qui transforme le trafic UDP en trafic UDP/FakeTCP/ICMP chiffré en utilisant Raw Socket, vous aide à contourner les pare-feu UDP (ou environnement UDP instable) | Kitploit
Outils/GitHubGitHub/wangyu-/udp2raw
Outils de Chiffrement/DéchiffrementÉvasion IDS/IPSSécurité Réseau
GitHubwangyu-/udp2raw

udp2raw

Un tunnel qui transforme le trafic UDP en trafic UDP/FakeTCP/ICMP chiffré en utilisant Raw Socket, vous aide à contourner les pare-feu UDP (ou environnement UDP instable)

Voir le dépôt
8.5k1.3kil y a 10 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Udp2raw-tunnel

Un tunnel qui transforme le trafic UDP en trafic FakeTCP/UDP/ICMP chiffré en utilisant Raw Socket, vous aide à contourner les pare-feu UDP (ou les environnements UDP instables).

Utilisé seul, udp2raw ne tunnelise que le trafic UDP. Néanmoins, si vous utilisez udp2raw + un VPN basé sur UDP ensemble, vous pouvez tunneliser n'importe quel trafic (y compris TCP/UDP/ICMP). Actuellement, OpenVPN/L2TP/ShadowVPN et tinyfecVPN sont confirmés comme étant pris en charge.

image0

ou

image_vpn

udp2raw wiki

简体中文

Plateformes prises en charge

Hôte Linux (y compris Linux de bureau, téléphone/tablette Android, routeur OpenWRT ou Raspberry PI) avec compte root ou capacité cap_net_raw.

Pour les utilisateurs de Windows et MacOS, utilisez udp2raw dans ce dépôt.

Fonctionnalités

Envoyer/Recevoir des paquets UDP avec des en-têtes ICMP/FakeTCP/UDP

Les en-têtes ICMP/FakeTCP vous aident à contourner le blocage UDP, la QoS UDP ou un comportement NAT UDP inapproprié sur certains FAI. En mode en-tête ICMP, udp2raw fonctionne comme un tunnel ICMP.

Les en-têtes UDP sont également pris en charge. En mode en-tête UDP, il se comporte comme un tunnel UDP normal, et vous pouvez simplement profiter des autres fonctionnalités (comme le chiffrement, l'anti-rejeu ou la stabilisation de connexion).

TCP simulé avec livraison en temps réel/hors ordre

En mode en-tête FakeTCP, udp2raw simule la poignée de main en trois étapes lors de l'établissement d'une connexion, simule seq et ack_seq lors du transfert de données. Il simule également quelques options TCP telles que : MSS, sackOk, TS, TS_ack, wscale. Les pare-feu considéreront FakeTCP comme une connexion TCP, mais il s'agit essentiellement d'UDP : il prend en charge la livraison en temps réel/hors ordre (comme le fait l'UDP normal), sans contrôle de congestion ni retransmission. Il n'y aura donc aucun problème TCP over TCP lors de l'utilisation d'OpenVPN.

Chiffrement, Anti-Rejeu

  • Chiffrez votre trafic avec AES-128-CBC.
  • Protégez l'intégrité des données avec HMAC-SHA1 (ou MD5/CRC32 plus faibles).
  • Défendez-vous contre les attaques par rejeu avec une fenêtre anti-rejeu.

Notes sur le chiffrement

Détection de panne et stabilisation (récupération de connexion)

Les échecs de connexion sont détectés par des heartbeats. Si un délai d'attente est dépassé, le client changera automatiquement de numéro de port et se reconnectera. Si la reconnexion est réussie, la connexion précédente sera récupérée et toutes les conversations UDP existantes resteront valides.

Par exemple, si vous utilisez udp2raw + OpenVPN, OpenVPN ne perdra pas la connexion après une reconnexion, même si le câble réseau est rebranché ou si le point d'accès WiFi est changé.

Autres fonctionnalités

  • Multiplexage Un client peut gérer plusieurs connexions UDP, qui partagent toutes la même connexion brute.
  • Clients multiples Un serveur peut avoir plusieurs clients.
  • Support NAT Les 3 modes fonctionnent dans des environnements NAT.
  • Support OpenVZ Testé sur VPS BandwagonHost.
  • Facile à construire Aucune dépendance. Pour cross-compiler udp2raw, tout ce que vous avez à faire est de télécharger une toolchain, modifier le makefile pour pointer vers la toolchain, exécuter make cross puis tout est fait. (Remarque : les binaires pré-compilés pour Desktop, RaspberryPi, Android, certains routeurs OpenWrt sont déjà inclus dans Releases)

Mots-clés

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

Pour commencer

Installation

Téléchargez la version binaire depuis https://github.com/wangyu-/udp2raw-tunnel/releases

Exécution

Supposons que votre UDP soit bloqué ou soumis à une QoS, ou simplement mal pris en charge. Supposons que l'IP de votre serveur soit 44.55.66.77, que vous ayez un service écoutant sur le port UDP 7777.

root@kitploit:~
# Run at server side:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r 127.0.0.1:7777    -k "passwd" --raw-mode faketcp -a

# Run at client side
./udp2raw_amd64 -c -l0.0.0.0:3333  -r44.55.66.77:4096  -k "passwd" --raw-mode faketcp -a

(Les commandes ci-dessus doivent être exécutées en tant que root. Pour une meilleure sécurité, avec quelques étapes supplémentaires, vous pouvez exécuter udp2raw en tant que non-root. Consultez ce lien pour plus d'informations)

Sortie du serveur :

Sortie du client :

Maintenant, un tunnel brut chiffré a été établi entre le client et le serveur via le port TCP 4096. Se connecter au port UDP 3333 côté client équivaut à se connecter au port 7777 côté serveur. Aucun trafic UDP ne sera exposé.

Remarque

Pour exécuter sur Android, consultez le Guide Android

L'option -a ajoute automatiquement une règle iptables (ou quelques règles iptables) pour vous, udp2raw dépend de cette règle iptables pour fonctionner de manière stable. Assurez-vous de ne pas oublier -a (c'est une erreur courante). Si vous ne souhaitez pas qu'udp2raw ajoute automatiquement la règle iptables, vous pouvez l'ajouter manuellement (jetez un œil à l'option -g) et omettre -a.

Sujet avancé

Utilisation

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

Règles Iptables, -a et -g

Ce programme envoie des paquets via un socket brut. En mode FakeTCP, le traitement des paquets TCP par le noyau Linux doit être bloqué par une règle iptables des deux côtés, sinon le noyau enverra automatiquement un RST pour un paquet TCP non reconnu et vous subirez des problèmes de stabilité/perfomances. Vous pouvez utiliser l'option -a pour laisser le programme ajouter/supprimer automatiquement la règle iptables au démarrage/arrêt. Vous pouvez également utiliser l'option -g pour générer la règle iptables et l'ajouter manuellement.

--cipher-mode et --auth-mode

Il est suggéré d'utiliser aes128cbc + hmac_sha1 pour une sécurité maximale. Si vous souhaitez exécuter le programme sur un routeur, vous pouvez essayer xor + simple, qui peut tromper l'inspection des paquets par les pare-feu la plupart du temps, mais cela ne vous protège pas contre les attaques sérieuses. Le mode none est uniquement à des fins de débogage. Il n'est pas recommandé de définir cipher-mode ou auth-mode sur none.

--seq-mode

Le mode FakeTCP ne se comporte pas à 100% comme une vraie connexion TCP. Les FAI peuvent être capables de distinguer le trafic TCP simulé du trafic TCP réel (bien que cela soit coûteux). seq-mode peut vous aider à modifier légèrement le comportement d'incrémentation de seq. Si vous rencontrez des problèmes de connexion, essayez de modifier la valeur.

--lower-level

--lower-level vous permet d'envoyer des paquets au niveau OSI 2 (niveau liaison), de sorte que vous puissiez contourner toutes les règles iptables locales. Si vous avez des règles iptables compliquées qui entrent en conflit avec udp2raw et que vous ne pouvez pas (ou avez la flemme de) modifier les règles iptables, --lower-level peut être très utile. Essayez --lower-level auto pour détecter automatiquement les paramètres, vous pouvez les spécifier manuellement si auto échoue.

Format manuel if_name#dest_mac_adress, par exemple : eth0#00:23:45:67:89:b9.

--keep-rule

Surveiller iptables et ré-ajouter automatiquement les règles iptables (pour bloquer le traitement TCP du noyau) si nécessaire. Particulièrement utile lorsque les règles iptables peuvent être effacées par d'autres programmes (par exemple, si vous utilisez OpenWrt, chaque fois que vous modifiez et validez un paramètre, les règles iptables peuvent être effacées et reconstruites).

--conf-file

Vous pouvez également charger les options à partir d'un fichier de configuration afin de garder les secrets à l'écart de la commande ps.

Par exemple, réécrivez les options de l'exemple server ci-dessus (dans la section Pour commencer) dans un fichier de configuration :

server.conf

root@kitploit:~
-s
# You can add comments like this
# Comments MUST occupy an entire line
# Or they will not work as expected
# Listen address
-l 0.0.0.0:4096
# Remote address
-r 127.0.0.1:7777
-a
-k passwd
--raw-mode faketcp

Faites attention au paramètre -k : En mode ligne de commande, les guillemets autour du mot de passe seront supprimés par le shell. Dans les fichiers de configuration, nous ne supprimons pas les guillemets.

Démarrez ensuite le serveur avec

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

--fifo

Utilisez un fifo (tube nommé) pour envoyer des commandes au programme en cours d'exécution. Par exemple --fifo fifo.file.

Côté client, vous pouvez utiliser echo reconnect >fifo.file pour forcer le client à se reconnecter. Actuellement, aucune commande n'a été implémentée pour le serveur.

Test de performance

Méthode de test :

iperf3 TCP via OpenVPN + udp2raw (Le mode UDP d'iperf3 n'est pas utilisé en raison d'un bug mentionné dans ce problème : https://github.com/esnet/iperf/issues/296 . À la place, nous empaquetons le trafic TCP en UDP via OpenVPN pour tester les performances. Lisez Application pour plus de détails.

Commande iperf3 :

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

Environnements

  • Client Plan Vultr à 2,5 $/mois (CPU monocœur 2,4 GHz, 512 Mo RAM, Tokyo, Japon)
  • Serveur Plan BandwagonHost à 3,99 $/an (CPU monocœur 2,0 GHz, 128 Mo RAM, Los Angeles, États-Unis)

Test1

raw_mode: faketcp cipher_mode: xor auth_mode: simple

image4

(la vitesse inverse était similaire et non téléchargée)

Test2

raw_mode: faketcp cipher_mode: aes128cbc auth_mode: md5

image5

(la vitesse inverse était similaire et non téléchargée)

wiki

Consultez le wiki pour plus d'informations :

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

Télécharger l’outil