域横向网络&传输&应用层隧道技术

域横向网络&传输&应用层隧道技术
Yatming的博客- 代理和隧道技术区别?
- 代理只是为了解决网络通信问题,有些内网访问不到,可以用代理实现
- 隧道不仅是解决网络的通信问题,更大的作用是绕过过滤,突破防火墙/入侵检测系统。
- 隧道技术为了解决什么?
- 防火墙过滤问题、网络连接通信问题、数据回链封装问题
- 在数据通信被拦截的情况下,可以利用隧道技术封装改变通信协议进行绕过拦截。比如CS、MSF无法上线,数据传输不稳定无回显,出口数据被监控,网络通信存在问题等问题,都可以通过隧道技术解决。
- 隧道技术前期的必备条件?
- 在用隧道之前要先探测对应隧道协议是否支持,如果不支持,用这个隧道也没有任何意义!
隧道原理
- 在实际的网络中,通常会通过各种边界设备、软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异样,就会对通信进行阻断。那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式。防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙,与对方进行通信。当封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应服务器上。
常用的隧道技术有以下三种
- 网络层:IPv6 隧道、ICMP 隧道
- 传输层:TCP 隧道、UDP 隧道、常规端口转发
- 应用层:SSH 隧道、HTTP/S 隧道、DNS 隧道
网络传输应用层检测连通性
隧道有各种层面的,每个层面又分不同协议,你想要用哪个隧道,就需要先确定目标主机是否支持对应隧道协议。比如你想用一个网络层的 ICMP 隧道,这个时候你要去检测目标主机支不支持ICMP隧道的开启。怎么检测呢?可以使用ping命令去ping地址,看能不能正常通信,如果能的话就可以。
- TCP 协议
- 用“瑞士军刀”——netcat,执行 nc 命令:
nc <IP> <端口>
参考链接:https://www.runoob.com/linux/linux-comm-nc.html
1 | nc -vz 192.168.70.145 80 #vz检测TCP端口 |
1 | nc -uz 192.168.70.145 500 |
- HTTP 协议
- 用
curl
工具:curl <IP地址:端口>
- 如果远程主机开启了相应的端口,且内网可连接外网的话,就会输出相应的端口信息
1 | curl 192.168.70.145:80 |
- ICMP 协议
- 用
ping
命令:ping <IP地址/域名>
- DNS 协议
- 检测DNS连通性常用的命令是
nslookup
和dig
- nslookup 是windows自带的DNS探测命令
- dig是linux系统自带的DNS探测命令
网络层ICMP隧道ptunnel使用
网上介绍的大部分都是老牌工具,ptunnel工具几年前就没有更新了,不推荐使用。推荐pingtunnel,这个是一直在升级更新的一个工具。
- 老版本介绍(需自行编译):https://github.com/f1vefour/ptunnel
- 新版本介绍(二次开发版):https://github.com/esrrhs/pingtunnel
- pingtunnel是把tcp/udp/sock5流量伪装成icmp流量进行转发的工具.因为tcp、udp、sock5这几个协议受到防火墙和工具的拦截,这个工具就是把这些流量伪装成icmp进行数据传输!
1 | 新版: |
msf上线(反向):
1 | use exploit/multi/handler |
老版:
1 | 这里环境的话,没搞好 |
传输层转发隧道Portmap使用
lcx是一个端口转发工具,通过端口转发的形式,将内网服务器的某一个端口映射到公网另一台服务器的一个端口上去!
1 | https://pan.baidu.com/s/1EoGZYVejTrBHBAvhndHLuQ #提取码:fn9o |
环境:
1 | 受害者内网的主机(无法出网,但是能和内网的主机进行交互):192.168.80.x(内网ip) |
传输层转发隧道Netcat使用
- netcat工具是windows和linux都能利用,但是用的时候一定要确保nc是最新版,linux是自带这个命令,老版本有的不支持-e这个选项,很多功能会有限制。
- netcat称为瑞士军刀的原因就是它利用起来非常方便,反弹会话是有很多方式的,可以利用多种协议去实现控制,因为我们在实战过程中会有很多协议被封住被拦截,所以我们要掌握很多种控制的协议,实战中就不会掉链子!
- netcat使用的是TCP协议,所以如果受害主机没有过滤TCP协议,我们就可以尝试使用nc命令在传输层建立隧道连接实现与控制主机的通信。
1 | 环境准备:kali/web/域控 |
正向:
反向:
环境:
首先在hack靶机上使用lcx工具(模拟已经拿到该服务器的控制权了),使其自己的2222端口转发到3333端口上
然后在win7上执行:
使其流量转发(cmd)到hack靶机的2222端口
这时我再去连接hack靶机上的70.145的3333端口,就相当于可以接受到win7弹过来的cmd
应用层DNS隧道配合CS上线
当常见协议监听器被拦截时,可以换其他协议上线,其中dns协议上线基本通杀
云主机上启用udp的53端口,我这里是腾讯云的
然后在vps上安装cs,配置一下dns
在cs上配置dns时,提示53端口被占用
1 | netstat -aptn |
右击unknown主机,选择interact,启用命令。执行以下命令,等待一会儿就会上线成功
1 | beacon> checkin |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果