当前位置:网站首页>【Pingtunnel工具教程】利用ICMP隧道技术进行ICMP封装穿透防火墙
【Pingtunnel工具教程】利用ICMP隧道技术进行ICMP封装穿透防火墙
2022-07-22 00:55:00 【低危表演艺术家】
前言
web搞太多了,发现csdn上面很少内网的内容,所以今天来整点内网的隧道技术,ICMP隧道。
由于网络上很多人用的是老工具Ptunnel,现在最新的是Pingtunnel了,所以我就打算用最新的Pingtunnel工具来做这个ICMP隧道技术实验。
提示:以下是本篇文章正文内容,下面案例可供参考
一、ICMP隧道概念
在一些网络环境中,如果不经过认证,TCP和UDP数据包都会被拦截。如果用户可以ping通远程计算机,就可以尝试建立ICMP隧道,将TCP数据通过该隧道发送,实现不受限的网络访问。用户需要在受限制网络之外,预先启动该工具建立代理服务器。再以客户端模式运行该工具,就可以建立ICMP隧道。为了避免该隧道被滥用,用户还可以为隧道设置使用密码。
一、imcptunnel可以将IP流量封装进ICMP的ping数据包中,旨在利用ping穿透防火墙的检测,因为通常防火墙是不会屏蔽ping数据包的。
二、请求端的ping工具会在ICMP数据包后面附加上一段随机的数据作为payload,而响应端则会拷贝这段payload到ICMP响应数据包中返还给请求端,用于识别和匹配ping请求。
三、在使用pingtunnel进行内网穿透时,客户端会将IP帧封装在ICMP请求数据包汇总发送给服务端,而服务端则会使用相匹配的ICMP响应数据包进行回复。这样子在旁人看来,网络中传播的仅仅只是正常的ICMP数据包。
二、复现前的准备工作&相关环境介绍
首先,先看网络拓扑图:
假设,主机A是黑客主机,A与B能通信,B与C能通信,但是A与C不能,这里我在主机C上放了一个hello文件,当访问它时,就会显示以下内容:
为了方便复现,我选择了3台kali系统的虚拟机来做测试,从左往右,分别代表拓扑图里的主机A、B、C。
访问C主机的80端口,hello文件,会出现hello this is : 192.168.25.138
这些内容,而192.168.25.138就是C主机的ip地址。
所以到这里来做个小结:
kali_主机A(左边第一台):192.168.25.130
kali_主机B(左边第二台):192.168.25.137
kali_主机C(左边第三台):192.168.25.138
主机B成功访问C的80端口hello文件:
主机A则访问不到:
怎么样设置主机A不能访问主机C呢?下面的命令就是禁止主机A通过tcp协议来访问主机C的命令。
-s 参数后面的ip地址是主机A的地址
iptables -A INPUT -p tcp -s 192.168.25.130 -j DROP
查看当前防火墙策略:
iptables -L
清空还原默认的防火墙策略:
iptables -F
因为ICMP隧道的核心就是防火墙没有拦截ICMP协议,所以可以用ping命令来做测试,如果A能ping通C,则可以使用ICMP隧道。
各个主机之间的测试:
A与B(通):
B与C(通):
A与C(通):
三、复现步骤
由于三者之间都能ping通的,说明防火墙没有拦截ICMP协议。接下来就要用到ICMP协议的工具,pingtunnel。
这个工具是github上面的项目,支持多种系统版本,只需要找到自己版本的下载就行:
https://github.com/esrrhs/pingtunnel/releases/tag/2.6
下载完成之后,就可以进行后续的操作了。
在主机B上执行:
./pingtunnel -type server -key 1234 #设置密码
-key参数后面跟的是密码,我设置的是1234
在主机A上执行:
pingtunnel.exe -type client -l :4455 -s 192.168.25.137 -t 192.168.25.138:80 -tcp 1 -key 1234 #监听本地的 4455 端口,发送到4455端口的流量将通过 ICMP 隧道转发到 47.244.96.168 服务器的 80 端口
所以所以所以,在执行完上面两条命令之后,在主机A上访问http://localhost:4455即可访问C的目标80端口。
nice!没毛病,这个时候加上hello文件试试:
完美。这样我们就突破了防火墙的限制,直接访问到了。
三、总结
隧道是一个非常有魅力的技术,无论是我刚学那会还是我现在做总结,两次给我的感觉都非常美妙,ICMP隧道是所有隧道里面最简单理解登录,后面我还会写一些dns的和其他协议的隧道,当做补充吧。
文章原创,欢迎转载,请注明文章出处: 【Pingtunnel工具-隧道技术】利用ICMP隧道技术进行ICMP封装穿透防火墙.。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
边栏推荐
- Interface automation testing - how to improve the stability of interface automation scripts?
- BERTopic
- MMD PMX import unit related data
- From 20s to 500ms, I used these three methods
- day3·文件与目录
- 树莓派——云服务器部署——内网穿透——cpolar工具使用
- 需求:如何将含有公有图床图片的md文件以图文形式导入到语雀?-2022.7.17(已解决)
- Grpc MagicOnion库 之 客户端和服务端 (案例版)
- 51单片机外设篇:LED点阵
- 慧通编程第5关 - 魔法学院第7课
猜你喜欢
Ardunio开发——水泵操作过程
微服务架构 | 服务注册发现中心/配置中心/消息总线 - [nacos] TBC...
MySQL index classification and its application examples
Kubernetes scheduling concept and workflow
3. ZABBIX installation
Ardunio开发——舵机控制
Conception d'un système de consommation de supermarchés sans pilote basé sur stm32
The way to practice and play strange: the method of detecting data types in JS
Summer precipitation Web Learning - SQL injection (Boolean blind injection & time blind injection)
1. Monitoring concept
随机推荐
Redis分布式锁,没它真不行!
5. ZABBIX create a custom key
Classification de l'index MySQL et exemples d'utilisation
4. Deploy agent2
慧通编程第5关 - 魔法学院第7课
Summary of common APIs of OpenCV (quick query)
8. ZABBIX distributed
Which Hong Kong cloud server or physical server is more prone to downtime?
Comparison between official raspberry pie PI Pico and yd-rp2040
kube-scheduler的调度上下文
RPC核心模块汇总
[daily question 1] 814. Binary tree pruning
Go语言 Go命令行工具
day3·文件与目录
Go language go command line tool
MFC 使用注册窗口信息的方式获取CFindReplaceDialog控件消息
英国天气过热导致谷歌云、Oracle云服务中断
Ardunio開發——水泵操作過程
Raspberry pie - Cloud Server Deployment - intranet penetration - use of cpolar tool
暑期沉淀web学习——SQL注入(布尔盲注&时间盲注)