这里是普通文章模块栏目内容页
Udp2raw-Tunnel:一款功能强大的UDP隧道工具

今天给大家介绍的是一款功能强大的UDP隧道工具,该工具可以利用原始套接字并通过伪造的TCP/UDP/ICMP流量来帮助研究人员绕过UDP防火墙(或不稳定的UDP环境)。

a.png

a.png

支持的平台

Linux主机,需拥有root访问权,其中包括桌面端Linux、Android手机/平板、OpenWRT路由器或树莓派。

对于Windows/macOS平台,我们发布了一个预装了udp2raw的虚拟镜像,大家可以直接使用VMware/VirtualBox来加载装。虚拟镜像会自动获取IP,其中的dup2raw可以在启动完成之后立即运行(请确定虚拟机网络模式设置为桥接)。

功能介绍 发送/接收UDP数据包(伪造的TCP/ICMP头)

伪造的TCP/ICMP头可以帮助我们绕过UDP屏蔽、UDP QOS或其他不正确的UDP NAT行为。除此之外,该工具还支持包含了UDP头的元数据包、在UDP Header模式下,它跟普通的UDP隧道一样,你可以直接使用其他功能。

模拟TCP握手

模拟三次握手过程,包括seq和ack_seq。MSS、sackOk、TS、TS_ack、wscale等TCP选项都可以模拟。工具可以保证数据包实时传递,在使用OpenVPN时不存在TCP连接问题。

加密、反重放和MITM

-使用AES-128-CBC加密通信流量。

-通过MD5或CRC32保护数据完整性。

-利用反重放窗口机制防御重放攻击,与IPSec和OpenVPN类似。

-手动认证,无中间人攻击

工具使用 安装

大家可以从【这里】下载源码。

工具运行

假设你的UDP已被屏蔽,假设你的服务器IP为44.55.66.77,你有一个服务在监听udp端口7777。

# Runat server side: ./udp2raw_amd64-s -l0.0.0.0:4096 -r 127.0.0.1:7777  -a-k "passwd" --raw-mode faketcp  # Runat client side ./udp2raw_amd64-c -l0.0.0.0:3333  -r44.55.66.77:4096 -a-k "passwd" --raw-mode faketcp

服务器端输出

b.png

b.png

客户端输出

c.png

c.png

此时,已成功通过TCP端口4096在客户端和服务器端之间建立了一条经过加密的通信隧道。在客户端通过UDP端口3333连接,等同于在服务器端连接端口7777。

如果你需要在Android端运行的话,请参考【这篇教程】

帮助菜单

udp2raw-tunnel version:Aug 18 2017 00:29:11 repository:https://github.com/wangyu-/udp2raw-tunnel   usage:     run as client : ./this_program -c -llocal_listen_ip:local_port -r server_ip:server_port  [options]     run as server : ./this_program -s -lserver_listen_ip:server_port -r remote_ip:remote_port  [options]   commonoptions, these options must be same on both side:     --raw-mode            <string>        avaliable values:faketcp(default), udp,icmp     -k, --key              <string>        password to gen symetric key,default:"secret key"     --cipher-mode         <string>        avaliable values:aes128cbc(default),xor, none     --auth-mode           <string>        avaliable values:md5(default), crc32,simple, none     -a, --auto-rule                        auto add (and delete)iptables rule     -g, --gen-rule                         generate iptables rulethen exit     --disable-anti-replay                 disable anti-replay, notsuggested clientoptions:     --source-ip           <ip>            force source-ip for raw socket     --source-port         <port>          force source-port for raw socket,tcp/udp only                                           thisoption disables port changing while re-connecting otheroptions:     --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 kernelspace filter, most time its not necessary                                          unless you suspect there is a bug     --sock-buf            <number>        buf size for socket, >=10 and <=10240,unit:kbyte, default:1024     --seqmode             <number>        seq increase mode for faketcp:                                          0:dont increase                                          1:increase every packet                                           2:increase randomly,  about every 3 packets (default)     --lower-level         <string>        send packet at OSI level 2,  format:'if_name#dest_mac_adress'                                          ie:'eth0#00:23:45:67:89:b9'.Beta. -h, --help                             print this helpmessage

IPTABLES规则 #p#分页标题#e#

该程序可通过元套接字发送数据包。在FakeTCP模式下,iptables规则会在通信双方两端屏蔽掉Linux内核的TCP数据包处理进程,你可以使用-a选项在工具启动和退出的时候自动自动添加/删除iptables规则。除此之外,你还可以使用-g选项手动生成并添加一条iptables规则。

加密模式和认证模式

我们建议大家使用aes128cbc + md5来最大程度地实现安全性。如果你想要在路由器上使用该工具,你可以尝试xor + simple,在普通情况下这样足以绕过大部分防火墙的数据报审计功能,不过这种方法无法抵御其他严重攻击。

Seq模式

FakeTCP模式的工作机制并不是跟真实的TCP连接完全一样,因为互联网服务提供商能够区分模拟TCP流量和真实TCP流量。Seq模式可以帮助我们进一步提升模拟TCP流量的真实程度。

收藏
0
有帮助
0
没帮助
0