内网安全学习笔记-Ⅲ:隐藏通信隧道技术

工具列表

工具 操作系统 功能 下载链接 使用参考
socat Linux IPV6隧道工具,socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。 http://www.dest-unreach.org/socat/download/
icmptunnel Linux icmptunnel是一个将IP流量封装到ICMP echo请求和回复(ping)包中的隧道工具,是在允许ping的网络中进行拓展、绕过防火墙的一种半隐蔽方式。icmptunnel是通过创建虚拟网卡,将所有流量都经过这个虚拟网卡,所以需要高级权限才能使用此工具。 https://github.com/DhavalKapil/icmptunnel https://xiaix.me/li-yong-icmp-sui-dao-chuan-tou-fang-huo-qiang/
PingTunnel Linux、Windows 网络层,利用ICMP协议。把tcp/udp/sock5流量伪装成icmp流量进行转发。为避免滥用为隧道设置密码。 http://freshmeat.sourceforge.net/projects/ptunnel/ https://mp.weixin.qq.com/s/LguEfKVg_adzQRyho-sYKw
LCX Windows 传输层,Linux版是portmap。基于socket套接字实现的端口转发工具。
netcat Linux、Windows 传输层。简称nc,网络瑞士军刀 http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download
PowerCat Windows nc的Powershell版 https://github.com/besimorhino/powercat/
SSH(MobaXterm) MobaXterm for Windows 应用层,利用SSH协议 https://mobaxterm.mobatek.net/download.html
reduh JAVA环境 内网服务器的端口通过http或https隧道转发到本机,形成一个TCP连通回路,用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部端口的工具 https://github.com/sensepost/reDuh
reGeorg Python环境 应用层,利用HTTP协议,reduh升级版。把内网服务器端口的数据通过HTTP隧道转发到本机,实现基于HTTP协议的通信。 https://github.com/sensepost/reGeorg
meterpreter 应用层,利用HTTP协议
tunna Python环境 应用层,利用HTTP协议 https://github.com/SECFORCE/Tunna
冰蝎 Linux、Windows、Mac OS 应用层,利用HTTP协议 https://github.com/rebeyond/Behinder
dnscat2 Linux、Windows 应用层,利用DNS协议。dnscat2是基于DNS协议的通信工具,一般的通信工具基于TCP等的传输方式非常容易被防火墙拦截,但是dnscat2基于DNS的查询与响应报文一般不会被拦截,而且可以完成信息传输。 https://github.com/iagox86/dnscat2 https://www.anquanke.com/post/id/183761
iodine Linux、Windows、Mac OS 应用层,利用DNS协议。Iodine是一款DNS隧道制造工具,通过一台DNS服务器就可以为我们建立一个IPv4的数据通道,该工具常被渗透测试人员用于防火墙绕过等场景。 https://github.com/Al1ex/iodine https://www.freebuf.com/articles/system/178214.html
frp Linux、Windows、Mac OS frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 https://github.com/fatedier/frp/ https://mp.weixin.qq.com/s/ai8IFbSlr7gkLRj8xNaESg
NPS Linux、Windows 支持tcp,udp,socks5,http等几乎所有流量转发,可以访问内部网网站,本地支付接口调试,ssh访问,远程桌面的一个轻量级,高性能,功能强大的内网扩展代理服务器。 ,内网dns解析,内网socks5代理等等……,并具有功能强大的内网渗透代理服务器,并具有功能强大的网络管理终端。 https://github.com/ehang-io/nps/ https://mp.weixin.qq.com/s/pB7mVZfDebMBb4rRXqM6FA
EarthWorm Linux、Windows、Mac OS SOCKS 5。Earthworm(简称EW)是一套轻量便携且功能强大的网络穿透工具,基于标准C开发,具有socks5代理、端口转发和端口映射三大功能。 https://github.com/rootkiter/EarthWorm https://www.freebuf.com/sectool/234254.html
sSocks Linux、Windows、Mac OS (ShadowSOCKS、影梭) http://sourceforge.net/projects/ssocks/ https://shadowsockshelp.github.io/Shadowsocks/
SocksCap64 Windows Shadowsocks 的全局代理并非真正的全局代理,它只应用于本身支持 Socks5 代理的应用程序。若应用程序本身不支持,则不走代理。与 SocksCap64 搭配使用后,无论软件是否支持,都走代理。 http://www.sockscap64.com/ https://blog.augustdoit.men/sockscap64/
Proxifier Linux、Windows、Mac OS Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持 64位系统,支持Xp,Vista,Win7,MAC OS ,支持socks4,socks5,http代理协议,支持TCP,UDP协议,可以指定端口,指定IP,指定域名,指定程序等运行模式,兼容性非常好。 https://www.proxifier.com/ https://blog.csdn.net/u013066730/article/details/88788191
ProxyChains Linux SOCKS 4、SOCKS 5。ProxyChains是一个开源代理工具,能够强制使任何应用的TCP连接使用SOCKS4、SOCKS或者HTTP(S)代理进行连接。 http://proxychains.sourceforge.net/ https://www.fujieace.com/kali-linux/proxychains.html
ngrok Linux、Windows、Mac OS 反向代理。ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服务。ngrok1.x开源,ngrok2.x不开源。 https://ngrok.com/download https://luozm.github.io/ngrok

隧道原理

隐藏隧道技术通常用于在访问受限的网络环境中追踪数据流向和在非受信任的网络中实现安全的数据传输。

隧道是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙允许的数据包类型或端口进行封装,然后穿过防火墙,与对方通信。当被封装的数据包到达目的地时,对数据包进行还原,并将还原后的数据包发送到相应服务器。

内网穿透:利用各种隧道技术,以网络防火墙允许的协议,绕过网络防火墙的封锁,实现访问被封锁的目标网络

常用的隧道:

网络层:IPv6隧道、ICMP隧道、GRE隧道;

传输层:TCPD隧道、UDP隧道、常规端口转发;

应用层:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道、SOCKS隧道。

最后附上 hackingday AnonySec大佬的思维导图:

image-20201228160947627