网络安全自学笔记05 - 网络协议基础与攻击

一、ARP协议

1、ARP协议概念

1、什么是ARP

  • address resollution protocol,地址解析协议。
  • 将一个已知的IP地址解析成MAC地址
  • ARP协议通过IP地址向MAC地址的转换,解决网际层和网络访问层的衔接问题(网际层是TCP/IP协议簇四层模型中的底层,是数据链路层和物理层的整合)
  • 由于IP地址和MAC地址定位方式不同,ARP协议成为数据传输的必备协议,主机发送信息前,必须通过ARP协议获取目标IP地址对应的MAC地址,才能正确的发送数据包。

2、为什么需要ARP协议

  • 在网络访问层中,同一局域网中的一台主机要和另一台主机进行通信,需要通过MAC地址进行定位,然后才能进行数据包发送。而在网络层中和传输层中,计算机之间是通过IP地址定位目标主机,对应的数据报只包含目标主机的IP地址,而没有MAC地址。因此,在发送之前需要根据IP地址获取MAC地址,然后才能将数据包发送到正确的目标主机,而这个获取过程是通过ARP协议完成的

3、ARP工作基本流程

  • ARP工作流程分为两个阶段。一个是ARP请求(ARP广播)过程,另一个是ARP响应过程
  • 主机A以广播形式向网络中所有主机发送ARP请求,请求中包含了目标IP地址如192.168.1.2,主机B收到请求,发现自己就是主机A要找的主机,返回响应,相应包中包含主机的MAC地址。则其他主机收到默认将丢弃
  • 当主机A发送广播时不知MAC地址则用6组0进行填充

2、ARP报文的格式

在这里插入图片描述

  • 以太网目的地址:是ARP请求的目的以太网地址,为全1时代表广播地址
  • 以太网源地址:是发送ARP请求的以太网地址
  • 帧类型:是后面的数据类型,ARP请求和ARP应答的这个值为0x0806
  • 硬件类型:表示硬件地址的类型,硬件地址不只以太网一种,当为以太网类型时此值为1
  • 协议类型:表示要映射的协议地址类型,要对IPv4地址进行映射,此值为0x0800
  • 硬件地址长度和协议地址长度:MAC地址占6字节,IP地址占4字节
  • op code:操作类型字段,值为1,表示进行ARP请求,值为2,表示进行ARP应答,值为3,表示进行RARP请求,值为4,表示进行RARP应答
  • 发送端以太网地址:发送端ARP请求或应答的硬件地址,这里是以太网地址,和以太网源地址相同
  • 发送端IP地址:发送ARP请求和应答的IP地址
  • 目的以太网地址:目的端的硬件地址
  • 目的IP地址:目的端的协议地址

3、ARP缓存

  • 为了避免重复发送ARP请求,每一太主机都有一个ARP告诉缓存。当主机的到ARP响应后,将目标主机的IP地址和物理地址存入本机ARP缓存中,并保留一定时间(两分钟),只要在这个时间范围内,下次请求MAC地址时,直接查询ARP缓存,而无需再发送ARP请求

1、使用ARP命令

  • windows系统中使用

    arp -a 				#显示当前ARP项
    arp -d				#清空ARP缓存,包括静态绑定
    arp -s IP地址 MAC地址	#添加静态绑定
    
  • 思科设备上使用

    show arp			#查看ARP缓存表
    clear arp-cache		#清除ARP缓存
    arp IP地址 MAC地址	#绑定静态ARP
    

4、ARP 攻击与欺骗

1、原理

(1)ARP攻击原理
  • 首先明确ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要通信时,会将目的的MAC地址设置成此虚假MAC地址导致无法正常通讯。
(2)ARP欺骗原理
  • ARP欺骗攻击
    • 目的不是为了让被攻击主机无法访问互联网,而是让被攻击主机访问互联网时的数据发送给攻击者,由攻击者将数据发送给网关,所以被攻击主机和网关收到的都是真实的MAC地址(攻击者的MAC地址)
(3)ARP防御手段
  • 绑定静态ARP
  • 使用ARP防火墙

2、使用kali linux攻击

  • arpspoof

    apt-get -y install dsniff		#安装
    
(1)ARP攻击
arpspoof -i eth0 -t 192.168.1.188 192.168.1.1
# -i 使用的接口
# -t 攻击主机目标地址 攻击主机网关地址
(2)ARP欺骗
	echo 1 >> /proc/sys/net/ipv4/ip_forward 	#末尾添加1,表示开启流量转发
	arpspoof -i eth0 -t 192.168.1.188 192.168.1.1
	#主机和网关地址可以调换,从而监控进或出流量

5、driftnet工具

  • driftnet工具负责显示某个网卡的流量转换成图片(ARP欺骗转发流量)

    apt-get -y install driftnet
    driftnet -i eth0
    

二、ICMP协议

1、ICMP协议概念

(1)什么是ICMP

  • internet control message protocol,控制报文协议。
  • 它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户的数据传递起着重要的作用
  • ICMP协议属于网络层协议,封装在传输层与网络层之间

2、ICMP报文格式

  • ICMP报文包含在IP数据报文中,IP头部就在ICMP报文的前面

在这里插入图片描述

  • ICMP头部中的类型域用于说明ICMP报文的作用及格式,此外还有一个代码域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面
  • type:报文类型
  • Code:类型代码
  • Cchecksum:校验和
  • [Cchecksum status:Good] :校验和状态
  • Iddentifier(BE):标识符大端
  • Iddentifier(LE):标识符小端
  • Sequence Number(BE):序列号大端
  • Sequence Number(LE):序列号小端
  • Data:数据字段

(1)13种ICMP报文类型

<
类型 代码 目的不可达 处理方法
0 0 回显应答 用户进程
3 0 网络不可达 无路由到达主机
3 1 主机不可达 无路由到达主机
3 2 协议不可达
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

imphoon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值