今天给大家介绍的是一款功能强大的UDP隧道工具,该工具可以利用原始套接字并通过伪造的TCP/UDP/ICMP流量来帮助研究人员绕过UDP防火墙(或不稳定的UDP环境)。
支持的平台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此时,已成功通过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该程序可通过元套接字发送数据包。在FakeTCP模式下,iptables规则会在通信双方两端屏蔽掉Linux内核的TCP数据包处理进程,你可以使用-a选项在工具启动和退出的时候自动自动添加/删除iptables规则。除此之外,你还可以使用-g选项手动生成并添加一条iptables规则。
加密模式和认证模式我们建议大家使用aes128cbc + md5来最大程度地实现安全性。如果你想要在路由器上使用该工具,你可以尝试xor + simple,在普通情况下这样足以绕过大部分防火墙的数据报审计功能,不过这种方法无法抵御其他严重攻击。
Seq模式FakeTCP模式的工作机制并不是跟真实的TCP连接完全一样,因为互联网服务提供商能够区分模拟TCP流量和真实TCP流量。Seq模式可以帮助我们进一步提升模拟TCP流量的真实程度。
上一篇: 暗云系列Bootkit木马最新动态