3.1 基础知识
隧道是一种绕过端口屏蔽的通信方式,防火墙两端的数据包通过防火墙所允许的数据包类型或者端口进行封装,然后穿过防火墙,与对方进行通信。当被封装的数据包到达目的地时,将数据包还原,并将还原的后的数据包发送到响应的服务器上。
常用的隧道举例:
- 网络层:IPv6,ICMP,GRE
- 传输层:TCP,UDP,常规端口转发
- 应用层:SSH,HTTP,HTTPS,DNS
判断内网连通性
- ICMP协议:
ping <IP地址或域名>
- TCP协议:
nc <IP地址 端口号>
- HTTP协议:
curl <IP地址:端口号>
- DNS协议:
nslookup
,dig
3.2 网络层隧道技术
一、IPv6隧道
1.简介
通过IPv4隧道传送IPv6隧道数据报文。将IPv6报文整体封装到IPv4数据报文中,使IPv6报文能够穿过IPv4还用,到达IPv6小岛。
- 当前的边界设备、防火墙甚至入侵防御系统还无法识别IPv6的通信数据
- 即使设备支持IPv6,也可能无法正确分析封装了IPv6报文的IPv4数据包
- 只有在执行隧道功能的节点的IPv6地址是IPv4兼容地址时,自动隧道才是可行的
- 配置隧道方法则要求隧道末端节点使用其他机制来获得IPv4地址
- 常用工具:socat,6tunnel,nt6tunnel
2.防御方法
了解IPv6的具体漏洞,结合其他协议,通过防火墙或其他防御系统过滤IPv6通信。
二、ICMP隧道
一般通信协议下,两台设备要进行通信,就需要开放端口,而ICMP协议则不需要。
将TCP/UDP数据封装到ICMP的ping数据包中,从而穿过防火墙
常用工具
- icmpsh
- PingTunnel
- icmptunnel
- powershell icmp
防御方法
- 检查同一来源的ICMP数据包的数量
- 注意Payload大于64bit的ICMP数据包
- 寻找响应数据包中的Payload与请求数据包中的Payload不一致的ICMP数据包
- 检查ICMP数据包的协议标签
3.3 传输层隧道技术
一、端口转发
- 内网端口转发
- 本地端口映射
二、常用工具
- lcx
- netcat
- PowerCat
3.4 应用层隧道技术
一、SSH协议
- 本地转发
- 远程转发
- 动态转发
二、HTTP/HTTPS协议
三、DNS协议
- 查看DNS连通性
- dnscat2
- iodine
3.5 SOCKS代理
SOCKS是一种代理服务,可以简单的将一端连接另一端。其标准端口为1080,SOCKS能够与目标内网计算机进行通信,避免多次使用端口转发
它在服务端监听一个端口,当有新的连接请求出现时,会先从SOCKS协议中解析出URL的目标端口,再执行lcx的具体功能
常用工具
- EarthWorm
- reGeorg
- sSocks
- Sockscap64
- Proxifier
- proxyChains
3.6 压缩数据
- RAR
- 7-Zip
3.7 上传和下载
- FTP
- VBS
- Debug
- Nishang
- bitsadmin
- PowserShell