Course4-网络嗅探与协议分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n 在Windows不同操作系统平台下有所不同
o 不同sniffer采用的技术不同
n WinPcap是一个重要的抓包工具,它是 libpcap的Windows版本
19
WinPcap
o WinPcap包括三个部分
n 第一个模块NPF(Netgroup Packet Filter),是一个虚拟设备驱 动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传 给用户态模块,这个过程中包括了一些操作系统特有的代码 第二个模块packet.dll为win32平台提供了一个公共的接口。不同 版本的Windows系统都有自己的内核模块和用户层模块。 Packet.dll用于解决这些不同。调用Packet.dll的程序可以运行在 不同版本的Windows平台上,而无需重新编译 第三个模块 Wpcap.dll是不依赖于操作系统的。它提供了更加高层、 抽象的函数。 packet.dll直接映射了内核的调用 Wpcap.dll提供了更加友好、功能更加强大的函数调用
22
WinPcap的优势
o 提供了一套标准的抓包接口
n 与libpcap兼容,可使得原来许多类UNIX平 台下的网络分析工具快速移植过来 n 便于开发各种网络分析工具
o 除了与libpcap兼容的功能之外,还有
清华大学计算机系 计算机网络安全技术课程 4. 网络嗅探与协议分析
诸葛建伟 副研究员 清华大学网络中心! zhugejw@cernet.edu.cn
1
课堂实践:使用Wireshark 进行网络嗅探与协议分析
o 课堂实践内容:使用wireshark监听本机 浏览器访问www.facebook.com的过程
用户态缓冲 2
用户态代码
用户态
用户态缓冲 1
直接调用 BPF
Libpcap库
核心态缓冲1
核心态缓冲2
Hold buffer
Hold buffer Store buffer Berkeley Packet Filter
核心态
Store buffer
其它协 议栈
过滤器1
过滤器2
网络分流器
网卡驱动
网络
数据包
6
以太网的工作机制
o 载波侦听/冲突检测(CSMA/CD: 802.3, carrier sense multiple access with collision detection)技术
n 载波侦听:是指在网络中的每个站点都具有同等的权利, 在传输自己的数据时,首先监听信道是否空闲 o 如果空闲,就传输自己的数据 o 如果信道被占用,就等待信道空闲 n 而冲突检测则是为了防止发生两个站点同时监测到网络 没有被使用时而产生冲突
o BSD数据包捕获
n BPF是一个核心态的组件,支持数据包“过滤”抓取 n Network Tap接收所有的数据包 n Kernel Buffer,保存过滤器送过来的数据包 n User buffer,用户态上的数据包缓冲区 n Libpcap是用户态的一个抓包工具 n Libpcap几乎是系统无关的
3
网络嗅探
o 网络嗅探(Sniff)
n 网络监听、网络窃听 n 类似于传统的电话线窃听
o 网络嗅探技术定义
n 利用计算机网络接口截获目的地为其他计算机的数据报文 n 监听网络流中所包含的用户账户密码或私密信息等
o 网络嗅探器(Sniffer)
n 实现嗅探的软件或硬件设备 n 嗅探获得数据à二进制格式数据报文 n 解析和理解二进制数据,获取各层协议字段和应用层传输数据 à 网络协议分析
o 802.11网络安全机制
n n n 完全开放式: 无加密,可直接嗅探监听 WEP: 存在缺陷的加密协议,可以很快破解并监听内容 WPA/WPA2: 目前还算安全,但如果设置弱密码,也能被彩虹 表破解
o 课程7:详细介绍WiFi网络攻击
11
星巴克肯德基上免费WiFi的风险
12
网络嗅探技术的具体实现机理
o ARP欺骗 –课程5中详细介绍
n 利用IP地址与MAC地址之间进行转换时的协议漏洞 n 攻击机通过ARP欺骗声称为嗅探目标主机甚至网关
10
802.11 (WiFi) 网络中的嗅探
o WiFi: 空中永不消逝的电波 o 802.11 定义了无线通讯标准的物理层和Mac层
n 802.11b(DSSS), 802.11a(OFDM), 802.11g (OFDM), 80211n(MIMO) n MAC:带冲突避免的载波侦听多路访问CSMA/CA
struct pcap_pkthdr { // 数据包捕获信息结构 struct timeval ts; // 捕获的 时间戳 bpf_u_int32 caplen; // 捕获数据长度 bpf_u_int32 len; // 数据包长度 };
18
Windows平台下的抓包技术
o 内核本身没有提供标准的接口 o 通过增加一个驱动程序或者网络组件来访问 内核网卡驱动提供的数据包
n BPF虚拟机机器语言的解释器,比较/算术等操作
o Libpcap(一个抓包工具库)支持BPF o BPF是一种比较理想的抓包方案
n 在核心态,所以效率比较高 n 目前类UNIX系统的标准抓包内核模块
14
BPF和libpcap
应用程序
用户态代码 调用libpcap 用户态代码 调用libpcap
15
关于libpcap抓包库
o 用户态下的抓包库 o 系统独立的接口,C语言接口
n 多种其他高级编程语言包装接口: Perl, Python, Ruby, Tcl, Java, …
o 广泛应用于
n 网络统计软件 n 入侵检测系统 n 网络调试
o 支持过滤机制,BPF
16
BPF过滤器
n 分析DNS请求中得到的www.facebook.com 的IP地址是什么? n IP地址所属地区是哪? n DNS请求应答包中有何异样? n 你认为无法访问www.facebook.com从技 术角度是什么原因造成的?
2
内容
1. 网络嗅探技术 2. 网络协议分析技术 3. 课堂实践:使用Wireshark! 4. 作业2之选题2-解码网络扫描/网 络扫描攻防作业!
o Man tcpdump ( http://www.tcpdump.org/ tcpdump_man.html)
n 善用过滤器规则是网络报文分析的关键
o Examples:
n 达到某主机或从某主机发出的流量: tcpdump host HOST n 每个TCP会话的首包和尾包(SYN包/FIN包): tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0‘ n 除echo requests/replies之外的所有ICMP包(i.e., 非 ping包的ICMP报文): tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'
17
libpcap/tcpdump文件格式
标准格式:tcpdump/libpcap的pcap文件格式
0 23 24 39
Pcap 文件头
数据 数据 数据 数据包1 数据包2 数据包3 包1头 包2头 包3头 内容 内容 内容 部 部 部
……
struct pcap_file_header { //pcap文件头结构 bpf_u_int32 magic; // pcap文件magic标识,0xa1b2c3d4 u_short version_major; // pcap文件版本号 u_short version_minor; // pcap文件小版本号 bpf_int32 thiszone; // 时区修正(未使用) bpf_u_int32 sigfigs; // 精确时间戳(未使用) bpf_u_int32 snaplen; // 抓包最大长度(抓全数据包长度: 0x0000ffff,tcpdump缺省68) bpf_u_int32 linktype; // 链路层类型:一般都是1(以太网) };
4
网络嗅探的危害与作用
o 攻击者:内网渗透技术
n 窃取机密信息 n 为发起进一步攻击收集信息
o 防御者
n 管理员可以用来监听网络的流量情况,定位网络故障 n 为网络入侵检测系统提供底层数据来源基础
o 其他作用
n 开发网络应用的程序员可以监视程序的网络行为,排除 程序错误
5
网络嗅探技术与工具分类
o 链路层网络进行分类
n n n n 以太网嗅探 WiFi嗅探 … 目前一些著名嗅探器支持多种链路层网络嗅探, wireshark*, Sniffer Pro…
o 工具形态
n 软件嗅探器 n 硬件嗅探器(协议分析仪): 专用设备, 速度快, 额 外功能(如流量记录与重放等), 价格昂贵
o 网络嗅探的理论基础
n 以太网、WiFi网络所使用的共享传输介质
o 标准网络协议栈实现
n 控制网卡驱动只获取发往本机地址的数据包
o 网络嗅探技术实现
n 类Unix平台:BPF/libpcap n Windows平台:NPF/Winpcap
o 网络嗅探软件工具
13
BPF(Berkeley Packet Filter)
o 以太网采用了CSMA/CD技术,由于使用了广播 机制,所以,所有在同一媒介信道上连接的工作站 都可以看到网络上传递的数据
7
以太网卡的工作模式
o 网卡的MAC地址(48位) n 通过ARP来解析IP地址到MAC地址的映射 n 用ipconfig/ifconfig可以查看MAC地址 o 正常情况下,网卡应该只接收这样的包 n MAC地址与自己相匹配的数据帧 n 广播包 o 网卡完成收发数据包的工作,两种接收模式 n 混杂模式Leabharlann Baidu不管数据帧中的目的地址是否与自己的地址匹配, 都接收下来 n 非混杂模式:只接收目的地址相匹配的数据帧,以及广播数据 包(和组播数据包) o 为了监听网络上的流量,必须设置为混杂模式
主机C
交换机
第3步
路由器
主机C
9
交换式网络中的嗅探攻击
o MAC地址洪泛攻击
n 向交换机发送大量虚构MAC地址和IP地址数据包 n 致使交换机“MAC地址-端口映射表”溢出 n 交换机切换入所谓的“打开失效”模式- “共享式”
o MAC欺骗
n 假冒所要监听的主机网卡,将源MAC地址伪造成目标主机的 MAC地址 n 交换机不断地更新它的“MAC地址-端口映射表” n 交换机就会将本应发送给目标主机的数据包发送给攻击者
用户态缓冲2 wpcap.dll
packet.dll
核心态缓冲1 核心态缓冲2
统计引擎
核心态
过滤器1
过滤器2
过滤器3
其它协 议栈
网络分 流器
NPF
网卡驱动
21
网络
数据包
NPF在Windows网络结构中位置
o NDIS(Network Driver Interface Specification, 网络驱动接口规范)描述了网络驱动与底层网卡之间的接口 规范,以及它与上层协议之间的规范 o NPF作为一个核心驱动程序而提供的
20
n
n
o packet.dll和Wpcap.dll
n n
WinPcap和NPF
应用程序
用户态代码 调用WinPcap 用户态代码 调用WinPcap 用户态代码 调用WinPcap 用户态代码 1.直接调用 NPF 2.调用 packet.dll wpcap.dll
用户态
用户态缓冲1 wpcap.dll
8
共享式网络和交换式网络
o 共享式网络
n n n 通过Hub(集线器)连接 总线方式: 通过网络的所有数据包 主机A 发往每一个主机 能够嗅探整个Hub上全部网络流量
第1步 第3步 第2步
集线器
主机B
第3步
路由器
第2步
o 交换式网络
n n n n n
通过Switch(交换机)连接 由交换机构造一个“MAC地址-端 口”映射表 第1步 发送包的时候,只发到特定端口上 主机A 只能监听同一端口上流量 可通过流量映像口监听(SPAN) 主机B
o 不同sniffer采用的技术不同
n WinPcap是一个重要的抓包工具,它是 libpcap的Windows版本
19
WinPcap
o WinPcap包括三个部分
n 第一个模块NPF(Netgroup Packet Filter),是一个虚拟设备驱 动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传 给用户态模块,这个过程中包括了一些操作系统特有的代码 第二个模块packet.dll为win32平台提供了一个公共的接口。不同 版本的Windows系统都有自己的内核模块和用户层模块。 Packet.dll用于解决这些不同。调用Packet.dll的程序可以运行在 不同版本的Windows平台上,而无需重新编译 第三个模块 Wpcap.dll是不依赖于操作系统的。它提供了更加高层、 抽象的函数。 packet.dll直接映射了内核的调用 Wpcap.dll提供了更加友好、功能更加强大的函数调用
22
WinPcap的优势
o 提供了一套标准的抓包接口
n 与libpcap兼容,可使得原来许多类UNIX平 台下的网络分析工具快速移植过来 n 便于开发各种网络分析工具
o 除了与libpcap兼容的功能之外,还有
清华大学计算机系 计算机网络安全技术课程 4. 网络嗅探与协议分析
诸葛建伟 副研究员 清华大学网络中心! zhugejw@cernet.edu.cn
1
课堂实践:使用Wireshark 进行网络嗅探与协议分析
o 课堂实践内容:使用wireshark监听本机 浏览器访问www.facebook.com的过程
用户态缓冲 2
用户态代码
用户态
用户态缓冲 1
直接调用 BPF
Libpcap库
核心态缓冲1
核心态缓冲2
Hold buffer
Hold buffer Store buffer Berkeley Packet Filter
核心态
Store buffer
其它协 议栈
过滤器1
过滤器2
网络分流器
网卡驱动
网络
数据包
6
以太网的工作机制
o 载波侦听/冲突检测(CSMA/CD: 802.3, carrier sense multiple access with collision detection)技术
n 载波侦听:是指在网络中的每个站点都具有同等的权利, 在传输自己的数据时,首先监听信道是否空闲 o 如果空闲,就传输自己的数据 o 如果信道被占用,就等待信道空闲 n 而冲突检测则是为了防止发生两个站点同时监测到网络 没有被使用时而产生冲突
o BSD数据包捕获
n BPF是一个核心态的组件,支持数据包“过滤”抓取 n Network Tap接收所有的数据包 n Kernel Buffer,保存过滤器送过来的数据包 n User buffer,用户态上的数据包缓冲区 n Libpcap是用户态的一个抓包工具 n Libpcap几乎是系统无关的
3
网络嗅探
o 网络嗅探(Sniff)
n 网络监听、网络窃听 n 类似于传统的电话线窃听
o 网络嗅探技术定义
n 利用计算机网络接口截获目的地为其他计算机的数据报文 n 监听网络流中所包含的用户账户密码或私密信息等
o 网络嗅探器(Sniffer)
n 实现嗅探的软件或硬件设备 n 嗅探获得数据à二进制格式数据报文 n 解析和理解二进制数据,获取各层协议字段和应用层传输数据 à 网络协议分析
o 802.11网络安全机制
n n n 完全开放式: 无加密,可直接嗅探监听 WEP: 存在缺陷的加密协议,可以很快破解并监听内容 WPA/WPA2: 目前还算安全,但如果设置弱密码,也能被彩虹 表破解
o 课程7:详细介绍WiFi网络攻击
11
星巴克肯德基上免费WiFi的风险
12
网络嗅探技术的具体实现机理
o ARP欺骗 –课程5中详细介绍
n 利用IP地址与MAC地址之间进行转换时的协议漏洞 n 攻击机通过ARP欺骗声称为嗅探目标主机甚至网关
10
802.11 (WiFi) 网络中的嗅探
o WiFi: 空中永不消逝的电波 o 802.11 定义了无线通讯标准的物理层和Mac层
n 802.11b(DSSS), 802.11a(OFDM), 802.11g (OFDM), 80211n(MIMO) n MAC:带冲突避免的载波侦听多路访问CSMA/CA
struct pcap_pkthdr { // 数据包捕获信息结构 struct timeval ts; // 捕获的 时间戳 bpf_u_int32 caplen; // 捕获数据长度 bpf_u_int32 len; // 数据包长度 };
18
Windows平台下的抓包技术
o 内核本身没有提供标准的接口 o 通过增加一个驱动程序或者网络组件来访问 内核网卡驱动提供的数据包
n BPF虚拟机机器语言的解释器,比较/算术等操作
o Libpcap(一个抓包工具库)支持BPF o BPF是一种比较理想的抓包方案
n 在核心态,所以效率比较高 n 目前类UNIX系统的标准抓包内核模块
14
BPF和libpcap
应用程序
用户态代码 调用libpcap 用户态代码 调用libpcap
15
关于libpcap抓包库
o 用户态下的抓包库 o 系统独立的接口,C语言接口
n 多种其他高级编程语言包装接口: Perl, Python, Ruby, Tcl, Java, …
o 广泛应用于
n 网络统计软件 n 入侵检测系统 n 网络调试
o 支持过滤机制,BPF
16
BPF过滤器
n 分析DNS请求中得到的www.facebook.com 的IP地址是什么? n IP地址所属地区是哪? n DNS请求应答包中有何异样? n 你认为无法访问www.facebook.com从技 术角度是什么原因造成的?
2
内容
1. 网络嗅探技术 2. 网络协议分析技术 3. 课堂实践:使用Wireshark! 4. 作业2之选题2-解码网络扫描/网 络扫描攻防作业!
o Man tcpdump ( http://www.tcpdump.org/ tcpdump_man.html)
n 善用过滤器规则是网络报文分析的关键
o Examples:
n 达到某主机或从某主机发出的流量: tcpdump host HOST n 每个TCP会话的首包和尾包(SYN包/FIN包): tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0‘ n 除echo requests/replies之外的所有ICMP包(i.e., 非 ping包的ICMP报文): tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'
17
libpcap/tcpdump文件格式
标准格式:tcpdump/libpcap的pcap文件格式
0 23 24 39
Pcap 文件头
数据 数据 数据 数据包1 数据包2 数据包3 包1头 包2头 包3头 内容 内容 内容 部 部 部
……
struct pcap_file_header { //pcap文件头结构 bpf_u_int32 magic; // pcap文件magic标识,0xa1b2c3d4 u_short version_major; // pcap文件版本号 u_short version_minor; // pcap文件小版本号 bpf_int32 thiszone; // 时区修正(未使用) bpf_u_int32 sigfigs; // 精确时间戳(未使用) bpf_u_int32 snaplen; // 抓包最大长度(抓全数据包长度: 0x0000ffff,tcpdump缺省68) bpf_u_int32 linktype; // 链路层类型:一般都是1(以太网) };
4
网络嗅探的危害与作用
o 攻击者:内网渗透技术
n 窃取机密信息 n 为发起进一步攻击收集信息
o 防御者
n 管理员可以用来监听网络的流量情况,定位网络故障 n 为网络入侵检测系统提供底层数据来源基础
o 其他作用
n 开发网络应用的程序员可以监视程序的网络行为,排除 程序错误
5
网络嗅探技术与工具分类
o 链路层网络进行分类
n n n n 以太网嗅探 WiFi嗅探 … 目前一些著名嗅探器支持多种链路层网络嗅探, wireshark*, Sniffer Pro…
o 工具形态
n 软件嗅探器 n 硬件嗅探器(协议分析仪): 专用设备, 速度快, 额 外功能(如流量记录与重放等), 价格昂贵
o 网络嗅探的理论基础
n 以太网、WiFi网络所使用的共享传输介质
o 标准网络协议栈实现
n 控制网卡驱动只获取发往本机地址的数据包
o 网络嗅探技术实现
n 类Unix平台:BPF/libpcap n Windows平台:NPF/Winpcap
o 网络嗅探软件工具
13
BPF(Berkeley Packet Filter)
o 以太网采用了CSMA/CD技术,由于使用了广播 机制,所以,所有在同一媒介信道上连接的工作站 都可以看到网络上传递的数据
7
以太网卡的工作模式
o 网卡的MAC地址(48位) n 通过ARP来解析IP地址到MAC地址的映射 n 用ipconfig/ifconfig可以查看MAC地址 o 正常情况下,网卡应该只接收这样的包 n MAC地址与自己相匹配的数据帧 n 广播包 o 网卡完成收发数据包的工作,两种接收模式 n 混杂模式Leabharlann Baidu不管数据帧中的目的地址是否与自己的地址匹配, 都接收下来 n 非混杂模式:只接收目的地址相匹配的数据帧,以及广播数据 包(和组播数据包) o 为了监听网络上的流量,必须设置为混杂模式
主机C
交换机
第3步
路由器
主机C
9
交换式网络中的嗅探攻击
o MAC地址洪泛攻击
n 向交换机发送大量虚构MAC地址和IP地址数据包 n 致使交换机“MAC地址-端口映射表”溢出 n 交换机切换入所谓的“打开失效”模式- “共享式”
o MAC欺骗
n 假冒所要监听的主机网卡,将源MAC地址伪造成目标主机的 MAC地址 n 交换机不断地更新它的“MAC地址-端口映射表” n 交换机就会将本应发送给目标主机的数据包发送给攻击者
用户态缓冲2 wpcap.dll
packet.dll
核心态缓冲1 核心态缓冲2
统计引擎
核心态
过滤器1
过滤器2
过滤器3
其它协 议栈
网络分 流器
NPF
网卡驱动
21
网络
数据包
NPF在Windows网络结构中位置
o NDIS(Network Driver Interface Specification, 网络驱动接口规范)描述了网络驱动与底层网卡之间的接口 规范,以及它与上层协议之间的规范 o NPF作为一个核心驱动程序而提供的
20
n
n
o packet.dll和Wpcap.dll
n n
WinPcap和NPF
应用程序
用户态代码 调用WinPcap 用户态代码 调用WinPcap 用户态代码 调用WinPcap 用户态代码 1.直接调用 NPF 2.调用 packet.dll wpcap.dll
用户态
用户态缓冲1 wpcap.dll
8
共享式网络和交换式网络
o 共享式网络
n n n 通过Hub(集线器)连接 总线方式: 通过网络的所有数据包 主机A 发往每一个主机 能够嗅探整个Hub上全部网络流量
第1步 第3步 第2步
集线器
主机B
第3步
路由器
第2步
o 交换式网络
n n n n n
通过Switch(交换机)连接 由交换机构造一个“MAC地址-端 口”映射表 第1步 发送包的时候,只发到特定端口上 主机A 只能监听同一端口上流量 可通过流量映像口监听(SPAN) 主机B