如何使用Tunna实现信道封装和TCP通信并绕过网络防火墙限制
2023-3-3 19:14:47 Author: FreeBuf(查看原文) 阅读量:8 收藏

 关于Tunna 

Tunna是一个由多种工具组成的工具箱,Tunna可以通过HTTP来封装和传输任何TCP流量,值得一提的是,Tunna的所有流量支持绕过部署了完整防火墙系统的网络环境中的任何网络安全限制。毫无疑问,该工具对红队和蓝队研究人员的渗透测试与安全研究活动将非常有用。

简而言之,Tunna就是一个可以通过HTTP来隧道TCP连接的强大工具。

 工具运行机制 

在一个完全防火墙(入站和出站连接受限-Web服务器端口除外)环境中,Webshell可以用来连接到远程主机上的任何服务,这种连接使用的是远程主机中的本地端口和本地连接,因此防火墙将允许此类连接通过。

Webshell将从服务端口读取数据,并通过HTTP将其封装,并将其作为HTTP响应发送到本地代理。接下来,本地代理了将会对数据进行拆封,并将数据写入其本地端口,客户端程序将连接到该端口。当本地代理在本地端口上接收数据时,它会将它们作为HTTP Post发送到Webshell。然后,Webshell将从HTTP Post读取数据,并将其放在服务端口上,并不断重复上述操作。

整个过程中,只有Web服务器端口需要被打开(一般为80/443)。至此,所有的操作都是通过HTTP协议完成的。

 项目架构 

Webshells:

conn.jsp     已在Apache Tomcat上测试 (windows + linux)

conn.aspx 已在IIS 6+8上测试 (windows server 2003/2012)

conn.php 已在LAMP + XAMPP + IIS上测试 (windows + linux)

WebServer:

webserver.py   已在Python 2.6.5环境中测试

Proxies:

proxy.py      已在Python 2.6.5环境中测试

 工具下载 

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/SECFORCE/Tunna.git

(向右滑动,查看更多)

 工具使用 

python proxy.py -u <remoteurl> -l <localport> [options]

(向右滑动,查看更多)

 工具选项 

常用选项

--help, -h 显示工具帮助信息和退出--url=URL, -u 远程webshell的URL地址--lport=LOCAL_PORT, -l 本地监听端口--verbose, -v Verbose模式--buffer=BUFFERSIZE, -b BUFFERSIZE*  设置HTTP请求大小

(向右滑动,查看更多)

无SOCKS选项

--no-socks, -n 不使用SOCKS代理--rport=REMOTE_PORT, -r webshell要连接的远程服务端口--addr=REMOTE_IP, -a webshell要连接的远程webshell IP地址 (默认为 127.0.0.1)

(向右滑动,查看更多)

上游代理选项

--up-proxy=UPPROXY, -x 设置上游代理 (http://proxyserver.com:3128)--auth, -A  上游代理开启身份验证

(向右滑动,查看更多)

高级选项

--ping-interval=PING_DELAY, -q ping线程时间间隔 (默认为 0.5)--start-ping, -s 开始ping线程--cookie, -C 设置请求Cookie--authentication, -t  开启基础身份验证

(向右滑动,查看更多)

 工具使用样例 

下列命令将在端口8000上开启一个本地SOCKS代理服务器,连接将通过HTTP进行封装,并在远程服务器解封:

python proxy.py -u http://10.3.3.1/conn.aspx -l 8000 -v

(向右滑动,查看更多)

下列命令将在端口8000上开启一个本地SOCKS代理服务器,工具将会通过一个本地代理(https://192.168.1.100:3128)建立连接,并在访问远程Tunna Webshell时要求进行身份验证:

python proxy.py -u http://10.3.3.1/conn.aspx -l 8000 -x https://192.168.1.100:3128 -A -v

(向右滑动,查看更多)

下列命令将在webshell和远程主机RDP(3389)服务之间初始化一个连接,RDP客户端可以连接localhost:4444,连接同样通过HTTP封装:

python proxy.py -u http://10.3.3.1/conn.aspx -l 4444 -r 3389 -b 8192 -v --no-socks

(向右滑动,查看更多)

 许可证协议 

本项目的开发与发布遵循GNU开源许可证协议。

 项目地址 

Tunna

https://github.com/SECFORCE/Tunna

精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651218138&idx=4&sn=b44bc38ebc6b5eb11ffae8b79a7c972d&chksm=bd1df2518a6a7b47f28345478c521f82321f990db6c9381f21849f4bef7917ea175a4888fbc2#rd
如有侵权请联系:admin#unsafe.sh