危险漫步博客
有时候,正是那些意想不到之人,成就了无人能成之事。
文章1443 浏览13839206

什么是嗅探网络流量?

获取目标系统访问权限的另一个十分流行的技术是网络嗅探(network sniffing)。嗅探即截获并查看进出某一网络的流量的过程。目前,有些很常用的协议仍然会在未经加密的情况下通过网络发送敏感、重要的信息。未经加密发送的网络流量一般称为明文(clear text),因为人们无需解密即可阅读。对明文网络流量进行嗅探虽然琐碎,却也是获取系统访问权限的有效途径。

在我们开始对流量进行嗅探之前,有必要先了解一下基本的网络信息。我们首先来看一下混杂(promiscuous)和非混杂(nonpromiscuous)网络模式之间的区别。

默认情况下,大部分网卡都运行在非混杂模式下,这就意味着网络接口卡(NIC,即网卡,又叫网络适配器)只会传递指向本机地址的特定网络流量。如果网卡接收到的流量与本机地址相匹配,网卡将会把流量传递给CPU进行处理。如果与地址不相符,网卡会直接将数据包丢弃。从很多方面来看,非混杂模式下的网卡就像是电影院的检票员。除非你手上拿的票正好是即将放映的场次,否则检票员是不会让你进场的。

而混杂模式则是用来强制网卡接收流入的所有数据包。在混杂模式下,所有网络流量都会被传递给CPU进行处理,不管它们的目的地是否指向本机。

为了能顺利嗅探到目的地址最初并非指向你的计算机的流量,首先必须确保你的网卡已运行在混杂模式下。

我们可能会觉得奇怪,如果流量的目的地址根本没有指向某台计算机,怎么可能会到达该计算机呢?有几种情况可能会导致这类现象的发生。首先,广播流量会发送给网络中所有连接的设备。另外一种情况是,网络使用集线器(hub)来路由流量,而不用交换机(switch)。

集线器将其接收到的任何数据不做任何处理直接发送给所有连接到它的物理端口的设备。如果你的网络使用集线器,网卡会不断地将目的地址不指向自己的数据包丢弃掉。例如,假设我们有个小型的8口集线器,同时连接8台计算机。在这种情况下,如果1号端口的计算机想向7号端口的计算机发送一条信息,这条信息(即网络流量)实际上会发送给其他所有连接到这个集线器的计算机。而如果所有计算机都以非混杂模式运行,2~6号和8号端口的计算机会直接丢弃这条数据。

许多人相信,只要把集线器简单换成交换机就能解决这个问题。这是因为相比于集线器会把所有流量广播给所有端口而言,交换机会分别将包含不同目的地址的流量发往不同的端口。当计算机连上交换机之后,计算机上网卡的MAC地址将会在交换机上注册。之后,交换机会利用计算机MAC地址到交换机端口号的对应信息,将流量智能地从某台特定的计算机发送到另一台特定的计算机。回到刚才的例子,如果一台交换机从1号计算机向7号计算机发送信息,则它会对网络流量进行处理,参考MAC地址和端口号的匹配表,然后只将信息发送给连接到7号端口的计算机,2~6号和8号端口的计算机都不会收到这条数据。

相关推荐