Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)

本文介绍了Python黑帽编程中关于嗅探器的实现,主要探讨了以太网网卡的工作模式,特别是混杂模式和监听模式在数据捕获中的作用。通过设置网卡为混杂模式,可以实现对网络数据的监听和捕获。文中还提到了在Linux环境下使用ifconfig和iwconfig配置网卡,并展示了如何在Python中创建Raw Socket以开启混杂模式,实现简单的嗅探功能。
摘要由CSDN通过智能技术生成


Python黑帽编程 4.1 Sniffer(嗅探器)之数据捕获(上)

网络嗅探,是监听流经本机网卡数据包的一种技术,嗅探器就是利用这种技术进行数据捕获和分析的软件。

编写嗅探器,捕获数据是前置功能,数据分析要建立在捕获的基础上。本节就数据捕获的基本原理和编程实现做详细的阐述。

4.1.1 以太网网卡的工作模式

以太网网卡是我们日常生活中见得最多的网卡,我们的电脑通过网线或者wifi接入网络,使用的都是以太网网卡。

图2

常用的以太网卡支持以下工作模式:广播模式、多播模式、直接模式和混杂模式。

1.广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。它将会接收所有目的地址为广播地址的数据包,一般所有的网卡都会设置为这个模式。

2.多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。当数据包的目的地址为多播地址,而且网卡地址是属于那个多播地址所代表的多播组时,网卡将接纳此数据包,即使一个网卡并不是一个多播组的成员,程序也可以将网卡设置为多播模式而接收那些多播的数据包。

3.直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己Mac地址的帧。只有当数据包的目的地址为网卡自己的地址时,网卡才接收它。

4.混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。网卡的缺省工作模式包含广播模式和直接模式,即它只接收广播帧和发给自己的帧。如果采用混杂模式,网卡将接受同一网络内所有主机发送的数据包。

利用网卡混杂模式的特性,就可以到达对于网络信息监听捕获的目的。

需要注意的是,并不是任何情况下,网络中的数据都会流经你的网卡,比如交换机网络,交换机会绑定端口和MAC,此时就需要上一章讲到的ARP欺骗了。

4.1.2 设置网卡为混杂模式

在Kali Linux中,我们可以通过ifconfig和iwconfig配置网络接口的信息。

正常情况下输入ifconfig,虚拟机中显示如下:

图3

通过命令

ifconfig eth0 promisc

可以将eth0设置为混杂模式。

图4

图四中圈红的部分,表示当前网卡处于混杂模式。

通过ifconfig eth0 -promisc

可以取消网卡的混杂模式。

图5

ifconfig同样适用于无线网卡。

4.1.3 无线网卡的监听模式

对于无线网卡,我们可以使用iwconfig的mode参数来配置混杂模式,mode的选项值如下:

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值