第3章网络嗅探技术
3.1 网络嗅探技术概述
由来:
- 正面:
网络嗅探,作为发展已经比较成熟的一项技术,在协助网络管理员监测网络传输数据,排除网络故障等面具有不可替代的作用,所以一直备受网络管理员的青睐。
- 反面:
然而,另一方面,网络嗅探也给 Interngt安全带来了极大的隐患,许多的网络入侵往往都直接或间接借助了网络嗅探的手段,从而造成口令失窃,敏感数据被截获等连锁性安全事件,是黑客们常用的手段之一。
概念:
网络嗅探(Network sniffing)又叫做网络监听顾名思义,这是一种在他方未察觉的情况下捕获其通信报文或通信内容的技术。
网络嗅探技术的能力范围目前仅局限于局域网,在目前以以太网为主的局域网环境下,网络嗅探技术具有原理简单,易于实现、难以被察觉的优势。
以太网连接方式:
1. 共享式网络嗅探原理
在共享传输介质的以太网中,网络中的任何一个节点都会接收到在信道中传输的数据帧。接下来节点将如何处理该数据帧,取决于数据帧的真实目的地址和节点网卡的接收模式。
网卡接收模式:
1. 广播模式
该模式下的网卡能够接收网络中所有类型为广播。 报文的数据帧。
2. 组播模式
该模式下的网卡能够接收特定的组播数据。
3. 单播模式
该模式下的网卡在工作时只接收目的地址区配本机MAC地址的数据帧。
4. 混杂模式
在这种模式下,网卡对数据帧中的目的MAC地址不加任何检查,全部接收。
共享式以太网
正常模式:
正常情况下,网卡一般工作在前面的三种模式下,一个网络接口应该只响应与本机MAC地址相匹配的数据帧和广播数据帧,对于其他数据帧都直接进行简单的丢弃处理。
监听模式:
但如果将共享式局域网中的某一台主机的网卡设置成混杂模式,那么,对这台主机的网络接口而言,在这个局域网内传输的任何信息都是可以被听到的。
2. 交换式以太网工作原理
交换式以大网是用交换机或其他非广播式交换设备组建成的局域网。这些设备根据收到的数据帧中的MAC地址决定数据帧应发向交换机的哪个端口。
由于端口间的帧传输彼此屏蔽,在很大程度上解决了网络嗅探的困扰,但随着嗅探技术的发展,交换式以太网中同时存在网络嗅探的安全隐患。
一、溢出攻击
交换机在工作时要维护一张MAC地址与端口的映射表,但是用于维护这张表的内存是有限的,如果向交换机发送大量的MAC地址错误的数据帧,交换机就可能出现溢出。 这时交换机就会退回到HUB的广播方式,向所有的端口发送数据包。一旦如此,网络嗅探就同共享式网络中的嗅探一样容易了。
二、ARP欺骗
通过ARP欺骗,改变这个表中P地址和MAC地址的对应关系,攻击者就可以成为被攻击者与交换机之
间的“中间人”,使交换式局域网中的所有数据包都先流经攻击者主机的网卡,这样就可以像共享式局域网一样截获分析网络上的数据包了。
3.2 Wireshark
Wireshark简介:
Wireshark,原名 Ethereal,是目前世界上最受欢迎的协议分析软件,利用它可将捕获到的各种各样协议的网络二进制数据流翻译为人们容易读懂和理解的文字和回表等形式,极大地方便了对网络活动的监测分析和教学实验。
主界面:
嗅探器的使用:
wireshark是捕获机器上的某一块网卡的网络包当你的机器上有多块网卡的时候,你需要选择一个网卡。点击捕获->选项。出现下面对话框,选择正确的网卡。然后点击“开始”按钮,开始抓包。
Wireshark主界面:
封包列表
在封包列表的面板中显示所有抓到的数据包,包括编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。
封包列表详细信息:
Frame:物理层的数据帧概况
Ethernet Ⅱ:数据链路层以太网帧头部信息
Internet protocol Version4:互联网层IP包头部信息
Transmission controlprotocol: 传输层的数据段头部信息,此处是TCP。
Hypertext franster protocol:应用层的信息,此处是HTTP协议。
wirshark中的两种过滤器
如果过滤的语法正确则品示绿色,如果语法错误则品示红色。
捕获过滤器是wireshark的第一层过滤器,他确定了捕获哪些封包,舍弃哪些封包;显示过滤器是wireshark是第二层过滤器,他在捕获过滤器的基础上只显示符合的规则的封包信息。
捕获过滤器的作用:
他可以决定什么样的信息记录会品示在捕获结果中注意:这个过滤器需要在开始捕获前设置。
语法规则:
协议 方向 主机/端口
- protocol: 可能值为http、https、ftp、udp、tcp、ipv4、ipv6、arp、icmp等协议。如果没有特别说明是什么协议,则默认使用所有支持的协议。
- direction: 可能的值为 src、dst、src and dst、 src or dst 默认的话就是两个方向的src or dst。
- host (s):可能的值 net、port、host、portrange默认是host。
- logical operation(逻辑运算):not and or not具有最高优先级,and or优先级相同, 运算从左向右。
例子:
比如要显示tcp协议,目标端口3128的封包,可以输入tcp src port 3128。 比如要显示ip协议,来源为10.1.1.1的封包,可以输入ip src host 10.1.1.1。
显示过滤器
显示过滤器是wireshark的第二层过滤器,显示过滤器能很快的过滤出我们需要的封包数据。它的功能比捕获过滤器更为强大,而且在想修改过滤器条件时,并不需要重新捕捉一次。
语法规则:
逻辑操作符:
and、or、not(没有条件满足)、xor(有且仅有一个条件满足)
IP地址:
像ip,addr指的是来源ip地址或者目标沪地址,ip.src指的是来源ip地址,ip,dst指的是目标ip地址。
协议过滤: 可以使用arp、ip、icmp、udp、tcp、bootp、dns等协议名称。
注意:
显示过滤器输入之后要按回车才会生效,在大文件里应用过滤显示器会有延迟。
根据以上语法规则,我们就可以在显示过滤器里手动输入规则;或者通过书签管理器直接调用已经存 在的规则。
例子:
当我们只想显示snmp或者dns或者icmp协议的封包时,可以输入 snmp || dns || icmp; 当我们只想显示来源或者目标地址为10.1.1.1的封包时,可以输入ip. addr == 10.1.1.1。