后面会进行一些隧道穿越的实验,因此在本篇中这里先介绍一些有关隧道穿越的技术知识点
隧道和隧道穿透
隧道是一种通过互联网基础设施在网络之间传递数据的方式,设计从数据封装、传输到解包的全过程,使用隧道传递的数据(或者负载)可以使用不同协议的数据包或者帧
假设我们获得了一台内网主机的权限,希望将这台主机作为跳板,通过外网主机访问内网进行后续渗透和利用,我们可以寻找防火墙等防护设备允许与外界通信的端口,将数据包混杂在正常流量中,通过正常端口发送到外网攻击机来实现绕过防火墙的目的。
这种技术就叫做隧道穿透,而这个数据包在传输过程中所经历的逻辑路径就叫做隧道
正向连接
正向连接是指的本地主机向目标主机的web服务发起访问请求,目标主机收到请求后两者互相建立通信的连接的过程,正向连接常用于目标主机不出网或者目标有公网ip地址且没有防火墙的情况,可以利用web正向连接搭建代理隧道
如下图:
反向连接
反向代理是指的我们获取目标服务器权限后,使其主动发起请求去访问攻击者所使用的具有公网ip的主机,从而建立两者之间连接的过程,反向连接常常用于目标主机出网的情况。
如下图:
端口转发
端口转发指的是将某个端口接收到的流量转发到另外一个本地端口或者其他网络端口的过程。
在红蓝对抗中,红队人员会根据实际的目标网络状态选择端口转发的利用方式
假设在红蓝对抗中
-
红队人员获取到web服务器的权限
-
通过信息收集的方式发现web服务器具有双网卡
-
并且可以和内网靶机主机之间进行通信
-
如果想要使攻击机能通过DRP的方式远程登录到内网靶机,可以通过端口转发的方式,将内网靶机的3389端口转发到web服务器的80端口上
-
攻击机再通过访问web服务器的80端口就可以直接访问到内网靶机的3389端口的RDP服务,从而达到通信的目的
如图:
端口复用
端口复用指的是在目标主机的某个端口上建立多个通信连接,而不是指在一个端口上开放多个服务。端口服务和通信连接可以进行多个连接,可以互不干扰。
假设服务器上的80端口开放了apache服务,如果继续在端口上指定添加某项服务,会有以下两种结果:
-
添加服务失败
-
apache服务出错
而使用端口复用的方法开通过在80端口上建立特通道连接,绕过放哪个胡强限制,因为防火墙端口限制,因为防火墙两端的数据包封装在他所允许通过的数据包类型或者端口(这里就是80端口)上,然后再穿过防火墙与处在防火墙后面的主机进行通信,当封装的数据包到达目的地时候。再将数据包还原并且交送到相应的服务。
内网穿透
内网的ip地址无法通过互联网直接访问,但是在实际的应用场景中我们又非常的希望自己部署在内网中的服务可以通过互联网进行访问,这时就可以让内网设备访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内外网的通道,实现外网设备访问内网设备,这种方式救被称为“内网穿透”
代理和隧道的区别
代理是指的一种特殊的网络服务,它与允许一个网络终端通过代理服务与另外一个网络终端进行非直接的连接,它扮演了服务器与客户端的中间人的角色。
攻击者可以通过受控主机设置代理服务,去访问目标内网中的其他主机服务。
隧道的主要作用就是解决数据包无法传输的问题。隧道技术一般会被用来绕过一些安全设备的监控,如防火墙过滤,网络连接通信,数据回链封装等。
如果安全防护设备对我们发送的流量进行了拦截,我们就可以使用隧道技术来绕过防火墙的拦截,隧道技术就是使用不同的协议和技术来建立通信连接,当然,隧道技术中也涉及到了一些代理技术
常见的转发场景
在红蓝对抗中,红队成员需要根据内网的实际场景来判断如何绕过安全防护策略限制来进行隧道穿透
转发场景 | 具体描述 |
---|---|
目标处于网络边界 | 内网和外网都可以访问网络,网络边界主机未安装防火墙。所有端口都对互联网开放 |
目标处于内网 | 允许特定的应用层协议(如HTTP、SSH、DNS)出网(3389 22 445 53 80 443) |
目标处于内网,并且不能访问外网 | 可以访问边界主机,防火墙策略限制外部网络直接访问内网的敏感端口(3389、22/445等) |
常见隧道穿透分类
隧道穿透技术主要应用在应用层、传输层、网络层这三层:
隧道利用方式 | 隧道类型 |
---|---|
应用层隧道 | SSH、HTTP、HTTPS、DNS |
传输层隧道 | TCP、UDP |
网络层隧道 | IPV6、ICMP、GRE |