文章目录
前言
-
局域网中主机的通信通常使用: IP地址和MAC地址
-
什么是ARP协议
Addess Resoltion Protocol,地址解析协议
将一个已知的的IP地址解析成MAC地址
-
ICMP的协议
① ICMP是一个错误侦测与回馈机制。
② 通过IP数据包封装。
③ 用来发送错误和控制信息 。
④ ICMP属于网络层协议 -
ICMP数据封装过程;
帧头部——》上层数据——》帧尾部——》IP头部——》上层数据{ICMP】——》 ICMP头部——》ICMP数据
一 ARP
1.1 ARP的工作过程
- 主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
- 主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
- 当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
① 第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
② 第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
③ 第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
④ 第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
⑤ 第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。
1.2 ARP报文格式
一般说以太网地址就是指MAC地址
- 字段1是ARP请求的目的以太网地址,全1时代表广播地址。
- 字段2是发送ARP请求的以太网地址。
- 字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。
- 字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。
- 字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为
0x0800
。 - 字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。
- 字段8是操作类型字段,
值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。
- 字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。
- 字段10是发送ARP请求或应答的IP地址。
- 字段11和12是目的端的硬件地址和协议地址。
1.3 抓包分析
1.4 ARP请求报文
1.5 ARP应答报文
1.6 ARP表的分类
-
动态ARP表
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口down时会删除相应的动态ARP表项。 -
静态ARP表
静态ARP表项通过手工配置和维护,不会被老化,不会被动态ARP表项覆盖。
配置静态ARP表项可以增加通信的安全性。静态ARP表项可以限制和指定IP地址的设备通信时只使用指定的MAC地址,此时攻击报文无法修改此表项的IP地址和MAC地址的映射关系,从而保护了本设备和指定设备间的正常通信。
二、APR攻击原理
2.1攻击原理
其主要原理是局域网内的"攻击机"通过冒充同网络号下的"受害者主机"的物理地址(mac地址
),通过欺骗网关,让网关原来应该发给“受害者主机
”的数据包转而发给“攻击机”,这就导致了“受害者主机”无法收到应答的数据包,也就等于断网了。利用ARP欺骗管理网
2.2 通过长角牛软件监控机软件管理网络
1.设置监控范围
2.进行网络管理
3. 验证效果
2.3 ARP故障处理
- 使用ARP防火墙,自动抵御ARO的欺骗和攻击。
- —抓包法:利用wildpacks omnipeek 软件来实现.
- 原理是电脑在相互通信之间,首先要通过arp广播包查找要通信的地址,一台中了arp病毒的电脑,为了达到欺骗的目的,它必须与同一个网段的所有电脑建立会话,由此可以通过omnipeek软件的peek map功能就可以看到所需要的结果,一目了然。
2. 4 查找ARP的攻击的计算机
- MAC为真实计算机地址;
查看网络记录表迅速确定计算机 - 以MAC为虚假的地址;
查看交换机的MAC地址表,确认此MAC的所属端口。
2.5 ping的命令
-t | 意义 |
---|---|
-t | 参数会一直不停的执行ping的命令 调试故障或进行持续连通性测试时使用 |
– a | 机参数可以显示主机参数 |
I | 参数可以是ping的大小 单位为字节可用于简单测试通信质量 |
ctrt+c | 中断命令 |
三、TCP三次握手、四次挥手
TCP;传输控制协议
UDO 用户数据协议
- TCP:是面向链接的、可靠的进程到进程通信的协议。
- TCP提供全双工的,及数据可在同一时间双向传输。
- TCP报文段
TCP若干个字节构成一个分组,叫报文段。
TCP报文段封装在IP数据报中。
① 序号:发送端为每个字节进行编号,便于接受端正确重组。
② 确认号:用于确认发送端信息。
③ 窗口大小:用于说明本地可接收数据段的数目,窗口大小是可变的。
④ 校验码:校验数据的真实性。
⑥ SYN:同步序号时,TCO需要建立链接是该值为1。
⑦ ACK:确认序号位,当该位为1时,用于确认发送端的数据。
⑧ FIN:当TCP断开链接是该位置为1。
3.1TCP建立的过程称为三次握手
-
第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据。 -
第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态,在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
-
第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值表示已经收到了服务端的 SYN 报文,此时客户端处于ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于ESTABLISHED 状态,此时,双方已建立起了连接。确认报文段ACK=1,确认号ack=y+1,seq=x+1(初始为seq=x,第二个报文段所以要+1),ACK报文段可以携带数据,不携带数据则不消耗序号。发送第一个SYN的一端将执行主动打开(active open),接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。
在socket编程中,客户端执行connect()时,将触发三次握手。
3.2四次挥手
-
客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u,此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。
-
务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。
-
客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据),需要消耗一个序号。
-
服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
-
客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。
-
OLOS结束时、立马切断。
3.3UDP协议特点
1.无连接、不可靠的传输协议。
2. 花费开销小。
- 常用的UDP端口号
① 69:TFTP 简单文件协议。
② 111:RPC 远程过程调用。
③ 123:NTP 网络时间协议。