文章目录
一、实验题目
包嗅探和欺骗是网络安全中的两个重要概念;它们是网络通信中的两大威胁。能够理解这两种威胁对于理解网络中的安全措施至关重要。有许多包嗅探和欺骗工具,如Wireshark、Tcpdump、Netwox等。其中一些工具被安全专家以及攻击者广泛使用。能够使用这些工具对学生来说很重要,但对于网络安全课程的学生来说,更重要的是了解这些工具是如何工作的,即包嗅探和欺骗是如何在软件中实现的。
本实验的目标是让学生掌握大多数嗅探和欺骗工具的基本技术。学生们将使用一些简单的嗅探和欺骗程序,阅读它们的源代码,修改它们,并最终对这些程序的技术方面有深入的了解。在本实验结束时,学生应该能够编写自己的嗅探和欺骗程序。
二、实验步骤及结果
Lab Task Set 1: Using Scapy to Sniff and Spoof Packet
这部分主要是利用工具来嗅探数据包,这里用的是 scapy
简单测试一下,构造了一个IP数据包并打印其的一些信息
Task 1.1A
下面是使用 scapy来嗅探数据包的一个例子
将下图id添加到上述py文件中
先使用 chmod a+x sniffer.py 添加执行权限,然后使用root权限运行上面的程序 sudo ./sniffer.py, 结果如下,可以看到其成功嗅探到了不同协议的数据包,图中只包括ICMP包。
Ping 10.9.0.5后嗅探到数据包,其中只包括ICMP包
然后使用普通权限运行该程序 ./sniffer.py。结果如下,可以看到报错了,提示无权限。
Task 1.1B
一般在嗅探包时我们只对特定类型的数据包感兴趣,所以我们需要对数据包进行一些过滤。scapy的过滤机制使用BPF的语法,这部分我们需要实现几个过滤的方法。
① 只捕捉ICMP数据包
上面的代码就是只捕捉icmp的数据包,略修改如下:
运行结果如下,可以看到捕获到了14个ICMP数据包:
② 只捕捉来自特定IP,且目标端口号为23的TCP数据包
查看自己的IP地址如下:
这里随意拿个IP来测试, 我们使用 10.9.0.8 , 嗅探代码如下:
发送数据包的代码如下:
运行嗅探的程序,再运行发送数据包的程序(可以多试几次), 结果如下:
③ 捕捉来自或发送到特定子网的数据包
这里我们使用的子网为128.230.0.0/16.嗅探代码如下: