隧道技术解决的是网络通信问题,因为在内网环境下,我们不同的内网主机管理员会进行不同的网络配置,我们就需要使用不同的方式去控制我们的内网主机。隧道技术是一个后渗透的过程,是可以是我们已经取得了一定的权限,在这个权限下,我们通过后门将权限转交到msf或者cs服务器上,因为这两个平台上有很多的渗透手段可以帮助我们进行进一步的渗透测试
隧道技术和代理
技术
先解释一下两个容易混淆的概念--隧道技术和代理技术
代理技术:就是一个内网域里面一个主机不能上网,我们通过外网无法访问到这个主机,但是这个内网域中又有一个可以连接外网的主机,我们可以利用这个可以与外网通信的主机作为跳板来连接那个没有外网的主机,这就是代理技术
隧道技术:协议被限制使用隧道技术进行协议转换 例如我们不能访问网页 但是可以使用qq,就是本主机的http协议被限制了,但
ICMP隧道技术--pingtunnel
案例分析--内网可以ping通外网但是无法访问网站
是qq走的是其他协议为此就就可以继续使用
(后渗透技术主要目的是进行权限的维持)
使用ICMP隧道技术的前提条件:内网的主机在防火墙设置的时候限制了TCP/IP协议,这是一个基于ICMP协议的一个上层协议,但是禁用了TCP/IP协议没有禁用ICMP协议的话我们就可以使用ICMP协议去连接
msf进行上线
先生成一个本地的后门
ps:隧道技术需要一个较高权限的用户权限(管理员权限)
将本地的3333端口流量转化为出网IP的4444端口流量
现将tcp流量发送到本地的4444端口,因为外网的tcp协议发送不出去。工具将本地的3333端口流量转化为 跳板主机4444端口的icmp数据流量(代理客户端)
执行木马(双击木马或者直接在cmd中执行木马)
网站依旧无法访问但是我们已经 通过ICMP流量进行了数据传输
控制端收到了流量回连(代理服务端)
msf也受到了数据回连
原理就是使用这个程序先使用后门将tcp数据传输到本地的3333端口,然后使用工具将3333端口的数据转到攻击目标主机的4444端口并且以icmp数据报的形式进行传输数据,传输到监听的攻击机器的时候工具会再次将icmp的数据转化为tcp形式的数据进行监听
本地3333(tcp)->利用工具转发到攻击端的4444端口(icmp)->数据到达4444端口后再 还原成tcp数据流量
cs进行上线
木马生成模式选择(选择stageless模式)
先设置两个两个监听器一个用于监听本地的5555端口,生成一个5555端口的密码,在设置一个6666端口的监听器用于数据转发
创建端口生成后门
在受控主机上执行代理工具和后门
执行后门就可以实现上线
生成的是ICMP1的后门,但是上线主机是ICMP2,就是因为使用了代理转发(生成的5555端口的流量但是上线的是6666端口的监听器)
补充--
DNS隧道技术
由于我没有域名服务器,下面的实验截图来源于小迪视频
前提条件:防火墙已经封杀了所有的tcp协议
跳板机:这里解释一下我理解的跳板机,就是我们在外网攻击一个内网的时候,我们很有可能是无法访问内网的一些主机的资源的,因为这些主机的出网做了限制,为此如果内网中有一台出网主机,我们就可以借助这台主机去连接内网的其他主机,这个主机就充当了访问内网的跳板作用,我们称之为跳板机
前提条件:需要使用一个域名
ns记录是一个与dns服务器相关的一条记录,他指定了该域名应该由那一个DNS服务器进行解析 一般把ns记录指定的dns服务器叫做该域名的权威服务器
ns.xiaosedi.fun 会解析为cs.xiaosedi.com
ns2.xioasedi.fun也会解析为cs.xiaosedi.com(这个是备用的域名解析地址)
cs.xiaosedi.fun 会解析为47.94.236.117这个公网IP
当我们封杀了tcp协议使用原来的tcp反向连接的后门就会失效
然后生成后门将其放到目标服务器上执行
返回来一个没有数据的会话,我们将会话中的输入mode dns-txt
数据回显正常
SSH隧道技术
管理人员为了方便Linux服务器的管理,通常会在服务器端开启ssh服务,我们可以借助这个服务来建立目标主机和控制端的通信
利用kali作为跳板机去获取内网主机的流量
将流量转发到远程的服务器
将流量转发到本地
将本地的8080端口流量转发到1122
我们直接访问8080可以看到主机上有一个网页
当我们执行那个命令之后,我们访问1122端口,可以发现有同样的网页
证明我们的流量转发成功
文件共享协议SMB上线(445端口)
当内网主机对于流量做了较为严格的限制,但是一般会开启icmp协议,因为icmp协议是打印机的底层协议,一般情况下,如果内网主机需要与其他主机进行通信,基本上都会开启这个协议,这样的话,只可以使用icmp协议进行上线,这种情况比较符合实际环境,因为如果限制条件更为严格的话,内网主机就无法与其他主机进行通信,我们也就无法发现这个主机,也就没有后期的上线流程操作。
创建一个监听器SMB监听器,这个监听执行后门执行后不会有反应,一位这个监听器只是一个特殊的管道,不会有其他的通信操作,所以不用使用这个监听器生成后门上线,要使用横向移动进行上线
因为这种检测较为严格,我们先使用跳板机进行端口检测发现主机
发现目标主机(445端口开放的主机)
使用psexec64横向移动
然后填写提前收集到的主机账号和密码或者是套用账号密码
监听器选择上面生成的beacon监听器,会话要选择同一网段下的会话进行操作
执行上线,而且获得的是system权限
因为构建环境出现问题,所以最终没有上线,收集信息的时候管理员密码出现问题
在Linux中与这个相同的服务协议是ssh协议进行ssh隧道技术进行上线
多协议隧道技术--Spp
支持的协议:tcp udp icmp http kcp quic
支持的类型:正向连接反向连接 sockets5正向连接 sockets反向连接
服务端:监听本地的ICMP数据
这样做做的 目的是如果数据直接以tcp流量的数据进行传递的话,由于防火墙的设置流量会被封锁,但是我们将tcp流量转发到本地其他端口(出网端口)变为了icmp数据出网
生成的tcp协议的木马,先生成一个tcp的本地后门,利用项目本地tcp流量转化为icmp的流量进行出网,生成的是8082的后门上线的8081
在服务端运行spp
整个流程就是服务端监听icmp的流量,客户端生成本地的tcp木马,利用工具将tcp木马转化为icmp流量出去,为此我们生成木马是本地端口的木马,监听木马是转发目标主机的ip和端口
因为没有Linux主机的公网主机,以下截图取自小迪课堂
生成两个监听器
生成本地木马
执行上线