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请求大小
(向右滑动,查看更多)
--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
精彩推荐