tcpdump 抓包分析

抓取 arp 包分析

  1. 主机1:192.168.152.128
    主机2:192.168.152.129
    使用 arp -n 查看本机 arp 缓存。在执行抓包分析前,需要清除相应 arp 缓存,使用命令 arp -d IP地址。
  2. 在主机1上执行如下命令,在敲下命令回车后,主机1 监听两主机间数据包的传输。此时我们采用在主机2上ping 主机1,使用 ping 包
    分析 arp 包。因为在发出 ping 包之前,需要对端 MAC 地址。
[root@yangzhen ~]# tcpdump -i ens33 -X -ent '(dst 192.168.152.128 and src 192.168.152.129) or (dst 192.168.152.129 and src 192.168.152.128)'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
00:0c:29:bb:ac:d3 > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 192.168.152.128 tell 192.168.152.129, length 46
	0x0000:  0001 0800 0604 0001 000c 29bb acd3 c0a8  ..........).....
	0x0010:  9881 0000 0000 0000 c0a8 9880 0000 0000  ................
	0x0020:  0000 0000 0000 0000 0000 0000 0000       ..............
00:0c:29:85:6e:73 > 00:0c:29:bb:ac:d3, ethertype ARP (0x0806), length 42: Reply 192.168.152.128 is-at 00:0c:29:85:6e:73, length 28
	0x0000:  0001 0800 0604 0002 000c 2985 6e73 c0a8  ..........).ns..
	0x0010:  9880 000c 29bb acd3 c0a8 9881            ....).......
00:0c:29:bb:ac:d3 > 00:0c:29:85:6e:73, ethertype IPv4 (0x0800), length 98: 192.168.152.129 > 192.168.152.128: ICMP echo request, id 7124, seq 1, length 64
	0x0000:  4500 0054 c604 4000 4001 c251 c0a8 9881  E..T..@.@..Q....
	0x0010:  c0a8 9880 0800 0ea4 1bd4 0001 e31d a85c  ...............\
	0x0020:  0000 0000 7639 0d00 0000 0000 1011 1213  ....v9..........
	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
	0x0050:  3435 3637                                4567
00:0c:29:85:6e:73 > 00:0c:29:bb:ac:d3, ethertype IPv4 (0x0800), length 98: 192.168.152.128 > 192.168.152.129: ICMP echo reply, id 7124, seq 1, length 64
	0x0000:  4500 0054 2f5e 0000 4001 98f8 c0a8 9880  E..T/^..@.......
	0x0010:  c0a8 9881 0000 16a4 1bd4 0001 e31d a85c  ...............\
	0x0020:  0000 0000 7639 0d00 0000 0000 1011 1213  ....v9..........
	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
	0x0050:  3435 3637                                4567

为便于包分析,查看两主机ip地址
主机1

[root@yangzhen ~]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:85:6e:73 brd ff:ff:ff:ff:ff:ff
    inet 192.168.152.128/24 brd 192.168.152.255 scope global dynamic ens33
       valid_lft 1017sec preferred_lft 1017sec
    inet6 fe80::20c:29ff:fe85:6e73/64 scope link 
       valid_lft forever preferred_lft forever

主机2

[root@yz ~]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:bb:ac:d3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.152.129/24 brd 192.168.152.255 scope global dynamic ens33
       valid_lft 1699sec preferred_lft 1699sec
    inet6 fe80::20c:29ff:febb:acd3/64 scope link 
       valid_lft forever preferred_lft forever
  1. arp 包分析
    在进行任何抓包分析之前,首先需要了解下 arp 包格式。arp 包如下:
    在这里插入图片描述
    字段说明:
    帧类型:对 arp 协议来讲,值为 0x0806。对于 RARP,值为0x8035。
    硬件类型:表示硬件地址的类型。值为1 时表示以太网地址,即 arp 不仅仅应用于以太网协议,还支持别的链路层协议。
    协议类型:表示协议地址类型,对于 IPv4,值为 0x0800。
    硬件地址长度:与硬件类型对应的硬件地址长度,以字节为单位,如果是以太网协议,是 6 字节。
    协议地址长度:与协议地址对应的协议地址长度,以字节为单位,如果是 IPv4,则是 4 字节。
    操作类型:arp请求为1,arp应答为2,rarp请求为3,rarp应答为4。
    发送端硬件地址:如果是以太网,则是源主机以太网地址。
    发送端协议地址:表示源主机 IP 地址。
    目标硬件地址:如果是 arp 请求,则为0即可。arp应答的话,需要填充该字段。
    目标协议地址:表示目的 IP 地址。

ping 包分析
还根据上述抓包来分析 ping 数据包。ping 数据包封装在 ip 数据包中。ip数据包头部字节大小为 20。ping 数据包格式如下
ping 报文格式
字段分析
类型:ping 请求报文类型是8,应答是0。
代码:字段为 0。
8为类型和8位代码一起决定了ICMP报文类型。
类型8, 代码0,表示 ping 请求。类型 0,代码 0,表示 ping 应答。类型 11, 代码 0, 表示超时。
校验和:表示数据在内的整个 ICMP 数据包的校验和。和 IP 头部计算校验和一样。
标识符:占 2 字节,用于标识本 ICMP 进程。但仅用于回显请求和回显应答报文。对于目标不可达和超时 ICMP 报文,该字段为 0。
表示发起方 ping 进程。

IP 报文分析
IP 数据包是一种可变长分组,它由首部和数据负载两部分组成。首部长度一般 20 至 60 字节,其中后 40 字节是可选的,长度不固定,前
20 字节是固定的。数据负载部分长度可变,整个 IP 数据包最大长度 65536 字节。
报文格式
在这里插入图片描述
字段分析
版本号:长度 4 比特位,IPv4 的值为 0100,IPv6 的值为 0110。
首部长度:如果首部长度是 20 字节,则为 5。
服务类型:实际应用中很少用,路由器通常忽略该值。
总长度:指 IP报文总长度,在以太网中允许的最大的包长为 1500 字节,超过允许的最大长度时需要将数据分片。
标识符:在ip分片以后,用来标识同一片分片的。方便ip分片的重组。
标志:长度为 3 位,三位从左到右分别为MF、DF、未用。MF=1表示后面还有分段的数据包,MF=0表示没有更多分片(即最后一个分片)
DF=1表示路由器不能对该数据包分段,DF=0表示数据包可以被分段。
生存时间:初始值由操作系统设置,每经过一个路由器转发后其值就减 1,减至0后丢弃该包。这种机制可以避免数据包找不到目地时不断
被转发,堵塞网络。linux 默认是64,windows默认是128。
协议:标识上层所使用的的协议。
首部校验和:只对IP数据包首部进行校验,不包含数据部分。数据包每经过一个中间节点都要重新计算首部校验和,对首都进行检验。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值