Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
udp2raw — Un tunnel che trasforma il traffico UDP in traffico UDP/FakeTCP/ICMP crittografato utilizzando Raw Socket,ti aiuta a bypassare i firewall UDP (o ambienti UDP instabili) | Kitploit
Strumenti/GitHubGitHub/wangyu-/udp2raw
Strumenti di Crittografia/DecrittografiaEvasione IDS/IPSSicurezza di Rete
GitHubwangyu-/udp2raw

udp2raw

Un tunnel che trasforma il traffico UDP in traffico UDP/FakeTCP/ICMP crittografato utilizzando Raw Socket,ti aiuta a bypassare i firewall UDP (o ambienti UDP instabili)

Vedi Repository
8.5k1.3k10 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Udp2raw-tunnel

Un tunnel che trasforma il traffico UDP in traffico FakeTCP/UDP/ICMP crittografato utilizzando Raw Socket, aiutandoti a bypassare i firewall UDP (o ambienti UDP instabili).

Se usato da solo, udp2raw tunnella solo traffico UDP. Tuttavia, se usi udp2raw insieme a qualsiasi VPN basata su UDP, puoi tunnellare qualsiasi traffico (inclusi TCP/UDP/ICMP); attualmente sono confermati supportati OpenVPN/L2TP/ShadowVPN e tinyfecVPN.

image0

oppure

image_vpn

wiki udp2raw

简体中文

Piattaforme supportate

Host Linux (inclusi desktop Linux, telefono/tablet Android, router OpenWRT o Raspberry PI) con account root o capacità cap_net_raw.

Per utenti Windows e MacOS, usa udp2raw in questo repository.

Caratteristiche

Invio/Ricezione di pacchetti UDP con intestazioni ICMP/FakeTCP/UDP

Le intestazioni ICMP/FakeTCP aiutano a bypassare il blocco UDP, il QoS UDP o comportamenti NAT UDP impropri su alcuni ISP. In modalità intestazione ICMP, udp2raw funziona come un tunnel ICMP.

Sono supportate anche le intestazioni UDP. In modalità intestazione UDP, si comporta proprio come un normale tunnel UDP e puoi sfruttare le altre caratteristiche (come crittografia, anti-replay o stabilizzazione della connessione).

TCP simulato con consegna in tempo reale/fuori ordine

In modalità intestazione FakeTCP, udp2raw simula l'handshake a 3 vie durante l'inizializzazione della connessione, simula seq e ack_seq durante il trasferimento dei dati. Simula anche alcune opzioni TCP come: MSS, sackOk, TS, TS_ack, wscale. I firewall considereranno FakeTCP come una connessione TCP, ma è essenzialmente UDP: supporta la consegna in tempo reale/fuori ordine (proprio come il normale UDP), nessun controllo di congestione o ritrasmissione. Quindi non ci sarà alcun problema TCP over TCP quando si utilizza OpenVPN.

Crittografia, Anti-Replay

  • Crittografa il tuo traffico con AES-128-CBC.
  • Proteggi l'integrità dei dati con HMAC-SHA1 (o MD5/CRC32 più deboli).
  • Difendi dagli attacchi replay con finestra anti-replay.

Note sulla crittografia

Rilevamento guasti e stabilizzazione (Recupero connessione)

I fallimenti di connessione vengono rilevati tramite heartbeat. Se si verifica un timeout, il client cambierà automaticamente il numero di porta e si riconnetterà. Se la riconnessione ha successo, la connessione precedente verrà ripristinata e tutte le conversazioni UDP esistenti rimarranno valide.

Ad esempio, se usi udp2raw + OpenVPN, OpenVPN non perderà la connessione dopo qualsiasi riconnessione, anche se il cavo di rete viene scollegato o il punto di accesso WiFi viene cambiato.

Altre caratteristiche

  • Multiplexing Un client può gestire più connessioni UDP, tutte condividono la stessa connessione raw.

  • Client multipli Un server può avere più client.

  • Supporto NAT Tutte e 3 le modalità funzionano in ambienti NAT.

  • Supporto OpenVZ Testato su VPS BandwagonHost.

  • Facile da compilare Nessuna dipendenza. Per cross-compilare udp2raw, tutto ciò che devi fare è scaricare un toolchain, modificare il makefile per puntare al toolchain, eseguire make cross e il gioco è fatto. (Nota: binari precompilati per Desktop, RaspberryPi, Android, alcuni router Openwrt sono già inclusi in Releases)

Parole chiave

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

Per iniziare

Installazione

Scarica la release binaria da https://github.com/wangyu-/udp2raw-tunnel/releases

Esecuzione

Supponiamo che il tuo UDP sia bloccato o soggetto a QoS o semplicemente poco supportato. Supponiamo che il tuo server IP sia 44.55.66.77, che tu abbia un servizio in ascolto sulla porta UDP 7777.

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

# Esegui sul lato client:
./udp2raw_amd64 -c -l0.0.0.0:3333  -r44.55.66.77:4096  -k "passwd" --raw-mode faketcp -a

(I comandi sopra devono essere eseguiti come root. Per una maggiore sicurezza, con alcuni passaggi extra, puoi eseguire udp2raw come non-root. Controlla questo link per maggiori informazioni)

Output server:

Output client:

Ora è stato stabilito un tunnel raw crittografato tra client e server attraverso la porta TCP 4096. Connettersi alla porta UDP 3333 sul lato client equivale a connettersi alla porta 7777 sul lato server. Nessun traffico UDP sarà esposto.

Nota

Per eseguire su Android, consulta Android_Guide

L'opzione -a aggiunge automaticamente una regola iptables (o poche regole iptables) per te; udp2raw si basa su questa regola iptables per funzionare in modo stabile. Assicurati di non dimenticare -a (è un errore comune). Se non vuoi che udp2raw aggiunga automaticamente la regola iptables, puoi aggiungerla manualmente (guarda l'opzione -g) e omettere -a.

Argomento avanzato

Utilizzo

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

Regole iptables, -a e -g

Questo programma invia pacchetti tramite raw socket. In modalità FakeTCP, l'elaborazione dei pacchetti TCP del kernel Linux deve essere bloccata da una regola iptables su entrambi i lati, altrimenti il kernel invierà automaticamente RST per un pacchetto TCP non riconosciuto e subirai problemi di stabilità/prestazioni. Puoi usare l'opzione -a per far sì che il programma aggiunga/elimini automaticamente la regola iptables all'avvio/uscita. Puoi anche usare l'opzione -g per generare la regola iptables e aggiungerla manualmente.

--cipher-mode e --auth-mode

Si consiglia di usare aes128cbc + hmac_sha1 per ottenere la massima sicurezza. Se desideri eseguire il programma su un router, puoi provare xor + simple, che possono ingannare l'ispezione dei pacchetti da parte dei firewall il più delle volte, ma non ti proteggono da attacchi seri. La modalità none è solo per scopi di debug. Non è consigliato impostare cipher-mode o auth-mode a none.

--seq-mode

La modalità FakeTCP non si comporta al 100% come una vera connessione TCP. Gli ISP potrebbero essere in grado di distinguere il traffico TCP simulato dal vero traffico TCP (anche se è costoso). seq-mode può aiutarti a modificare leggermente il comportamento di incremento del seq. Se riscontri problemi di connessione, prova a cambiare il valore.

--lower-level

--lower-level ti permette di inviare pacchetti a livello 2 OSI (livello di collegamento), in modo da bypassare eventuali regole iptables locali. Se hai regole iptables complicate che entrano in conflitto con udp2raw e non puoi (o sei troppo pigro per) modificarle, --lower-level può essere molto utile. Prova --lower-level auto per rilevare automaticamente i parametri; puoi specificarli manualmente se auto fallisce.

Formato manuale if_name#dest_mac_adress, es.: eth0#00:23:45:67:89:b9.

--keep-rule

Monitora iptables e riaggiungi automaticamente le regole iptables (per bloccare l'elaborazione TCP del kernel) se necessario. Particolarmente utile quando le regole iptables potrebbero essere cancellate da altri programmi (ad esempio, se stai usando openwrt, ogni volta che modifichi e confermi un'impostazione, le regole iptables potrebbero essere cancellate e ricostruite).

--conf-file

Puoi anche caricare le opzioni da un file di configurazione per tenere i segreti lontani dal comando ps.

Ad esempio, riscrivi le opzioni per l'esempio server sopra (nella sezione Per iniziare) in un file di configurazione:

server.conf

root@kitploit:~
-s
# Puoi aggiungere commenti come questo
# I commenti DEVONO occupare un'intera riga
# Altrimenti non funzioneranno come previsto
# Indirizzo di ascolto
-l 0.0.0.0:4096
# Indirizzo remoto
-r 127.0.0.1:7777
-a
-k passwd
--raw-mode faketcp

Fai attenzione al parametro -k: In modalità riga di comando, le virgolette intorno alla password verranno rimosse dalla shell. Nei file di configurazione non rimuoviamo le virgolette.

Quindi avvia il server con:

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

--fifo

Usa un fifo (named pipe) per inviare comandi al programma in esecuzione. Ad esempio --fifo fifo.file.

Sul lato client, puoi usare echo reconnect >fifo.file per forzare la riconnessione del client. Al momento nessun comando è stato implementato per il server.

Test delle prestazioni

Metodo di test:

iperf3 TCP tramite OpenVPN + udp2raw (La modalità UDP di iperf3 non è stata utilizzata a causa di un bug menzionato in questo issue: https://github.com/esnet/iperf/issues/296 . Invece, impacchettiamo il traffico TCP in UDP tramite OpenVPN per testare le prestazioni. Leggi Applicazione per i dettagli.

Comando iperf3:

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

Ambienti

  • Client Piano Vultr $2.5/mese (CPU singolo core 2.4GHz, 512MB RAM, Tokyo, Giappone)
  • Server Piano BandwagonHost $3.99/anno (CPU singolo core 2.0GHz, 128MB RAM, Los Angeles, USA)

Test1

raw_mode: faketcp cipher_mode: xor auth_mode: simple

image4

(La velocità inversa era simile e non caricata)

Test2

raw_mode: faketcp cipher_mode: aes128cbc auth_mode: md5

image5

(La velocità inversa era simile e non caricata)

wiki

Consulta la wiki per maggiori informazioni:

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

Scarica lo strumento