我主要学习了TCP状态机的实现,TCP的输出进程的实现,部分TCP流窗口控制。同时,我利用已学到的协议知识尝试简单的
HACK,以下是我尝试在自己构建的局域网内自己做的ARP攻击实验。
首先我在虚拟机上运行两台linux系统称为主机A主机B,与我的真实主机C组建成一个局域网,网络号为192.168.244.0。然后主
机B(IP:192.168.244.4)利用PING命令与主机C(IP:192.168.244.1)进行通信,结果如图1,可以看到其中的icmp_seq字段是连续
的,没有数据包丢失,也就是说此时B和C之间是可以正常通信的。
然后我利用抓包工具对网卡进行抓包,看到了B和C之间的ARP请求是首先B主机在局域网内发送who is 192.168.244.1的ARP报
文。接着主机C发送ARP报文192.168.244.1 is at xx:xx:xx:xx:xx:xx(C的硬件地址),这样两台主机就可以进行正常通信了。
这时我利用主机A(IP:192.168.244.3)在局域网内发送广播ARP报文192.168.244.4 is at xx:xx:xx:xx:xx:xx(根本就不存在的
硬件地址),然后通过抓包工具进行检测,结果
可以看到在主机检测到192.168.244.4的IP地址对应不同的硬件地址。在局域网中产生了通信混乱。这时我再尝试在主机B上
PING主机C,结果
通过上图可以看到icmp_seq字段变的不连续,整体的丢包率达到了86%,也就是说B主机与C的通信几乎是被中断了,成功验证
了ARP攻击的原理。