于是想到通过ICMP协议建立与外界的通信链路。在尝试了几个开源工具都宣告失败后,准备自己撸一个ICMP隧道。当然,这个隧道工具需要支持穿过NAT访问网络。...0x01 NAT对ICMP的限制通常来说,NAT对TCP和UDP支持都比较好,但对ICMP一般限制会比较多。...0x02 实现ICMP隧道的一些关键点连接管理ICMP协议与UDP协议类似,是不保证可靠传输的,需要上层逻辑进行连接的管理。...同时,由于NAT会检查ICMP PING和PONG的id与seq字段的一致性,这里保活时发送的PING包还可以起到穿透NAT的作用。...穿越NAT的特点做了适配。
2、NAT Network Address Translation,网络地址转换,一种将私有(保留)地址转化为合法IP地址的转换技术。...在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信时,可使用NAT方法。这种方法需要在专用网连接到因特网的路由器上安装NAT软件。...装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有专用网内部的想和因特网上的主机通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。...3、ICMP Internet Control Message Protocol,Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。
NAT技术原理 NAT技术是一种在IP数据包通过路由器或防火墙时修改其源或目标IP地址和端口号的技术。...NAT类型 NAT技术主要分为以下几种类型: 静态NAT 静态NAT将内部网络的某个私有IP地址永久映射到外部网络的某个公共IP地址。这种映射关系一旦建立,就不会改变。...静态NAT适用于需要在外部网络上公开服务的内部服务器,如Web服务器或邮件服务器。 动态NAT 动态NAT使用一个公共IP地址池来映射内部网络的私有IP地址。...这种方式极大地节省了公共IP地址资源,是目前应用最广泛的NAT类型。 NAT应用场景 NAT技术在各种网络环境中都有广泛应用,主要包括: 家庭网络 在家庭网络中,NAT技术通常被应用在路由器上。...此外,随着人工智能和机器学习技术的发展,NAT管理将越来越智能化。智能NAT管理系统可以自动调整NAT设备的配置和性能,以应对网络流量的变化和攻击威胁。
更多 dig 的使用方法参见:linux dig 命令使用方法 补充 – 关于 DNS 缓存: 在 Windows 系统中,可以使用 ipconfig /displaydns 命令来查看系统级别的 DNS...二、ICMP 协议 1....收到该 ICMP 包的主机 A 则分解 ICMP 的首部和数据域以后得知具体发生问题的原因。 4....ping 命令会先发送一个ICMP Echo Request 给对端,对端接收到之后会返回一个 ICMP Echo Reply。...【★,°:.☆( ̄▽ ̄)/$:.°★ 】那么本篇到此就结束啦,如果有不懂 和 发现问题的小伙伴可以在评论区说出来哦,同时我还会继续更新关于【Linux】的内容,请持续关注我 !!
ICMP ICMP用来传递差错控制,查询等信息。 ICMP Echo消息常用于诊断源和目的之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。...当网络设备无法保证访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备 type表示ICMP消息类型,code表示同一消息类型中的不同信息。 ICMP的一个典型应用是ping。...用户可以在ping命令中指定不同参数,如ICMP报文长度、发送ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行ping测试。...如果不指定源IP地址,将采用出接口的IP地址作为ICMP echo-request报文发送的源地址。 2、-c count指定发送ICMP echo-request报文次数。...缺省值是255 4、-t timeout指定发送完ICMP echo-request后,等待ICMP echo-replay的超时时间。 Tracert ICMP的另一个典型应用是Tracert。
ICMP协议的作用:ICMP协议是IP协议的一个辅助,它可以传递差错报文以及其他信息 Ping用到的是ICMP协议,不是端口。...Capture ICMP Packets With Tcpdump 3.ICMP差错报文: ICMP差错报文,即端口不可达报文。它是ICMP目的不可达报文的一种,这种差错报文是立刻返回的。...IP数据报=IP首部+ICMP报文 =IP首部+ICMP首部+ICMP报文数据部分 =IP首部+ICMP首部+产生差错的数据报IP首部+原始IP数据报中数据的前8个字节 IP首部中包含 了协议字段,所以...Exploring TCP Connection Time_Wait in Linux 8.ping执行打印的信息 输出字节数,是64;输出目的主机的IP地址,是通过DNS协议解析来的;输出icmp_seq...Linux Tcpdump: Filter ipv6 ntp ping packets ————————————————
前言:昨天有个同学碰到发送udp包时收到destination unreachable的icmp包问题,本文简单介绍一下linux5.9中icmp包的处理流程。...icmp包 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); kfree_skb(skb); return 0...icmp包结构如下。 ? 收到icmp包的处理流程 我们从收到ip包开始分析。...); success = icmp_pointers[icmph->type].handler(skb);} icmp_rcv根据icmp包的信息做进一步处理。...static const struct icmp_control icmp_pointers[NR_ICMP_TYPES + 1] = { ...
ICMP ICMP(Internet Control Message protocol)互联网信息控制协议,用于实现链路连通性测试和链路追踪,可以实现链路差错报告,属于UDP协议。...ICMP有多种类型的报文,同一类型的报文会有多个不同的Code。 ping、tracert 等命令的内部就是用的 icmp 协议。 ?...重定向 ICMP重定向报文是ICMP控制报文中的一种。...回应包,目标ip:10.10.10.10 源ip: 11.11.11.11 目标mac: MAC-AR4-0/0/1 源MAC: MAC-PC2 ICMP攻击 ICMP泛洪攻击是最常用的DOS...--flood 攻击模式,尽可能快的发送报文 -1 发送icmp报文 --ran-source 发送报文时,源IP为随机的IP地址 --icmptype 3 表示ICMP报文类型为目的不可达 --icmpcode
我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。...由于目前以云服务器为主,而云服务器基本上就不会使用系统自带的防火墙,而是使用安全组来代替了防火墙的功能,可以简单理解安全组就是web版的防火墙,我们主要从以下几个方面来讲解Linux防火墙: Linux...防火墙-什么是防火墙 Linux防火墙-4表5链 Linux防火墙-filter表 Linux防火墙-nat表(本章节) Linux防火墙-常用命令 Linux防火墙-案例(一) Linux防火墙-案例...(二) Linux防火墙-小结 上一小节,我们介绍了filter表,主要功能就是作为服务器入口,主要功能就是限制或者屏蔽服务器的端口,确保服务器的安全,今天就来介绍下nat表,实际上nat表和我们家庭的路由器有相似的功能...nat NAT (Network Address Translation) 表在 iptables 中用于实现网络地址转换的功能。
png 实体机的网络信息 本地实体机的IP4地址:192.168.92.2 子网掩码: 255.255.255.0 网关地址: 192.168.92.1 Linux...虚拟机的子网掩码,网关地址要和实体机一致 2.查看虚拟机的 虚拟网络编辑器 虚拟机NAT信息.png 3.在linux虚拟机上执行如下命令,修改Linux虚拟机的网络设置 vi /etc/sysconfig...192.168.92.81 GATEWAY=192.168.92.1 NETMASK=255.255.255.0 DNS1=192.168.92.1 IPV6INIT=no USERCTL=no 4.那么,linux...resolv.conf 修改成如下: nameserver 192.168.92.1 重启网卡: service network restart 执行: ping www.baidu.com 6.so,就可以从Linux
@linux-node1 ~]# iptables -t filter -A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type echo-request...-i 0.001 192.168.1.11 解决: [root@linux-node1 ~]# iptables -t filter -A INPUT -p icmp -m icmp --icmp-type...间歇性ping [root@linux-node1 ~]# iptables -F [root@linux-node1 ~]# iptables -A INPUT -p icmp -m icmp -...~]# iptables -P INPUT DROP [root@linux-node1 ~]# lsmod | grep nat_ftp [root@linux-node1 ~]# modprobe...ip_nat_ftp [root@linux-node1 ~]# lsmod | grep nat_ftp +---------------------------------
ping使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。...同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。...即先由IP地址,在网络层传输,然后再根据mac地址由数据链路层传送到目的主机 三、ICMP协议: ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。...在Unix/Linux,序列号从0开始计数,依次递增。而Windows ping程序的ICMP序列号是没有规律。...ICMP协议在实际传输中数据包:20字节IP首部 + 8字节ICMP首部+ 1472字节38字节 ICMP首部一般格式: 类型(8位) 代码(8位) 检验和(16位) 首部的其余部分(32位 不同类型
我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。...ICMP的作用与特点 ICMP的特点: ICMP本身是网络层的一个协议; ICMP差错报告采用路由器-源主机的模式,路由器在发现数据报传输出现错误时只向源主机报告差错原因; ICMP并不能保证所有的IP...可以知道,ping基于ICMP协议。 ICMP属于哪一层?...Exploring ICMP Port Number with Example ICMP差错报文 报告IP数据报在传输中的差错是ICMP报文最基本的功能,ICMP差错报文有如下特点: ICMP差错报文都是由路由器发送到源主机的...当路由器发送一份参数错误等的ICMP差错报文时,ICMP报文数据区始终包含产生ICMP差错报文的IP数据报的头部和其数据区的前8个字节(64位)。
#ctfhub 杂项 --icmp 技能树–流量分析–icmp–data 1.过滤icmp包 <img src="https://img-blog.csdnimg.cn/20200811134736342
所以我们就需要一种协议来完成这样的功能–ICMP协议。 ICMP协议的功能 ICMP协议的功能主要有: 1. 确认IP包是否成功到达目标地址 2....ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6 ICMP的报文格式 ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。...一个ICMP报文包括IP报头(至少20字节)、ICMP报头(至少八字节)和ICMP报文(属于ICMP报文的数据部分)。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。...ICMP报头如下图所示。 如下图: 字段说明: 类型 说明 类型 占一字节,标识ICMP报文的类型,从类型值来看ICMP报文可以分为两大类。...过程: 一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。
1、ICMP简介 ICMP全名为(INTERNET CONTROL MESSAGE PROTOCOL)网络控制消息协议。 ICMP的协议号为1。...ICMP报文就像是IP报文的小弟,总顶着IP报文的名头出来混。因为ICMP报文是在IP报文内部的,如图: ? 图:IP数据报 2、ICMP类型 ICMP报文主要有两大功能:查询报文和差错报文。...如果主机迟迟没有等到所有的分片报文,就会向源发送方发送一个ICMP超时报文,Code为1,表示分片重组超时了。...并向源发送方发一个ICMP源冷却报文(Type为4),告诉对方:“嘿,我这里客满了,你迟点再来。”...图:ICMP知识点思维导图 参考 http://www.rfc-editor.org/info/rfc792(RFC792)
LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡。可以提供高的吞吐率、一定的冗余能力、可扩展性。...LVS的类型 Network Address Translation (LVS—NAT)模型所有的流量都经过Director,所以后方的节点一般最多不会超过10个,后发的server可以是任意的操作系统...下面举一个小例子来说明一下LVS分发装置的NAT模型,来实现web的群集 image.png Server1 192.168.3.100 GW 192.168.3.354 Server2 192.168.3.200...提供用户访问的ip地址及服务 -s rr 轮询调度的算法 ipvsadm -a -t 192.168.2.100:80 -r 192.168.3.100 -m --增加后方的server -m 就是NAT
目标主机是Linux系统,目标主机防火墙有严格的限制,只允许80端口的流量进入。我们拿到了目标主机的Webshell并且拿到了SSH的账号密码。...现在我们的思路就是利用Linux的iptables防火墙的nat表的PREROUTING 链做端口复用,因为nat 表的 PREROUTING 链会在路由决策之前被处理。...22 #创建端口复用规则,将流量转发至 22 端口 iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1139...的列表中 iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1140 -m recent --name letmein...--remove -j ACCEPT #关闭开关,如果接收到一个长为 1140 的 ICMP 包,则将来源 IP 从 letmein 列表中去掉 iptables -t nat -A
ICMP隧道小记 一般的通信协议里,如果两台设备之间需要进行通信,肯定是需要开放端口的,但是ICMP协议不需要。...如果还是不可以的话,就只能用pip了 pip2 install impacket step 3 配置 因为icmpsh工具要代替系统本身的ping命令的应答程序,所以需要输入如下命令来关闭本地系统的ICMP...sysctl -w net.ipv4.icmp_echo_ignore_all=1 隧道利用完记得换回来1改成0就好 step 4 Run .
分析: 代码:linux-4.0.4/net/ipv4/icmp.c 1,在分析icmp之前,先分析一下:linux-4.0.4/net/ipv4/af_inet.c ?...icmp协议的handler是icmp_rcv: ? 2,icmp_echo icmp_rcv收到icmp request,回复icmp reply。 ?...或者找到ICMP_ECHO的handler,改成icmp_discard,再或者,在int icmp_rcv(struct sk_buff *skb)收到IP层传递过来包的时候,直接drop。...6,使用iptables iptables,一个运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的流动与转送。...在大部分的Linux系统上面,iptables是使用/usr/sbin/iptables来操作,文件则放置在手册页(Man page)底下,可以通过 man iptables 指令获取。
领取专属 10元无门槛券
手把手带您无忧上云