Tunna工具实战:基于HTTP隧道的RDP端口转发技术
工具概述
Tunna是一款利用HTTP/HTTPS隧道进行TCP通信的渗透测试工具,由SECFORCE团队开发并开源。该工具主要应用于需要绕过防火墙限制的场景,通过Webshell实现内网服务的端口转发,特别适合在仅开放80/443端口的环境中建立TCP连接。
项目地址:GitHub - SECFORCE/Tunna: Tunna is a set of tools which will wrap and tunnel any TCP communication over HTTP. It can be used to bypass network restrictions in fully firewalled environments.
实验环境搭建
设备 | IP地址 | 角色说明 |
---|---|---|
靶机(Win Server) | 192.168.21.2 | 部署IIS+解析aspx文件 |
攻击机(win7) | 192.168.21.3 | 运行Tunna脚本 |
测试机(Win10) | 192.168.21.4 | RDP连接验证 |
工具安装与配置
-
下载工具
git clone https://github.com/SECFORCE/Tunna.git
cd Tunna
工具结构说明Tunna/
├── proxy.py # 客户端主程序
├── webshells/ # 服务端脚本
│ ├── conn.aspx # ASP.NET版本
│ ├── conn.jsp # JSP版本
│ └── conn.php # PHP版本
└── README.md # 说明文档
实战操作步骤
第一步:部署Webshell
-
将
webshells/11.aspx
(conn.aspx)上传至目标服务器Web目录 -
通过浏览器访问确认webshell可用:
http://192.168.21.2/11.aspx
第二步:建立端口转发
在攻击机上执行以下命令:
python proxy.py -u http://192.168.21.2/11.aspx -l 1234 -r 3389 -s -v
参数说明:
-
-u
:webshell访问URL -
-l
:本地监听端口 -
-r
:目标服务端口 -
-s
:启用预检测 -
-v
:详细输出模式 -
第三步:连接RDP服务
-
在Win10测试机上打开远程桌面连接
-
输入地址:
192.168.21.3:1234
(192.168.21.2:3389) -
使用靶机凭证
技术要点解析
1. 工作原理示意图
2. 关键优势
-
隐蔽性强:流量伪装成正常HTTP/HTTPS通信
-
绕过限制:可在仅开放Web端口的环境中使用
-
灵活部署:支持多种Web环境(ASPX/JSP/PHP)
3. 使用限制
-
PHP兼容性差:需要目标开启socket模块
-
性能损耗大:HTTP封装导致延迟增加
-
稳定性问题:长时间连接可能自动断开
防御检测建议
1. 检测指标
-
异常的HTTP Content-Length波动
-
非标准HTTP交互模式
-
高频长连接请求
-
Web进程异常网络连接
2. 防御措施
替代方案对比
工具名称 | 协议支持 | 隐蔽性 | 适用场景 | 安装复杂度 |
---|---|---|---|---|
Tunna | HTTP | ★★★☆ | 老旧系统 | 低 |
Chisel | TCP/HTTP | ★★☆☆ | 现代网络 | 中 |
FRP | 多协议 | ★★☆☆ | 高性能 | 高 |
Ngrok | HTTP/TLS | ★★★★ | 云环境 | 低 |
总结与建议
Tunna作为一款经典的HTTP隧道工具,在特定环境下仍具有实用价值:
适用场景:
-
目标系统较旧(.NET/JSP环境)
-
网络限制严格(仅开放Web端口)
-
需要快速建立临时通道
使用建议:
-
优先尝试ASPX/JSP版本
-
添加
-s
参数提高连接稳定性 -
配合Proxychains增强隐蔽性
-
完成操作后及时清理webshell
防御建议:
-
实施严格的Web文件监控
-
配置WAF检测异常HTTP隧道特征
-
对管理服务实施多因素认证
-
定期审计服务器网络连接
通过本文的实战演示,我们可以看到Tunna工具在内网渗透中的独特价值,同时也提醒防御方需要加强对HTTP隧道的检测能力。