第1章 数据包分析技术与网络基础 1
1.1 数据包分析与数据包嗅探器 2
1.1.1 评估数据包嗅探器 2
1.1.2 数据包嗅探器工作过程 3
1.2 网络通信原理 4
1.2.1 协议 4
1.2.2 七层OSI参考模型 5
1.2.3 OSI参考模型中的数据流向 7
1.2.4 数据封装 8
1.2.5 网络硬件 11
1.3 流量分类 16
1.3.1 广播流量 16
1.3.2 组播流量 17
1.3.3 单播流量 17
1.4 小结 17
第2章 监听网络线路 18
2.1 混杂模式 19
2.2 在集线器连接网络中嗅探 20
2.3 在交换式网络中进行嗅探 22
2.3.1 端口镜像 22
2.3.2 集线器输出 24
2.3.3 使用网络分流器 26
2.3.4 ARP缓存污染 28
2.4 在路由网络环境中进行嗅探 33
2.5 部署嗅探器的实践指南 35
第3章 Wireshark入门 37
3.1 Wireshark简史 37
3.2 Wireshark的优点 38
3.3 安装Wireshark 39
3.3.1 在微软Windows系统中安装 40
3.3.2 在Linux系统中安装 41
3.3.3 在Mac OS X系统中安装 43
3.4 Wireshark初步入门 44
3.4.1 第一次捕获数据包 44
3.4.2 Wireshark主窗口 45
3.4.3 Wireshark首选项 46
3.4.4 数据包彩色高亮 48
3.4.5 配置文件 50
3.4.6 配置方案 51
第4章 玩转捕获数据包 53
4.1 使用捕获文件 53
4.1.1 保存和导出捕获文件 54
4.1.2 合并捕获文件 55
4.2 分析数据包 56
4.2.1 保存和导出捕获文件 56
4.2.2 标记数据包 57
4.2.3 打印数据包 58
4.3 设定时间显示格式和相对参考 59
4.3.1 时间显示格式 59
4.3.2 数据包的相对时间参考 60
4.3.3 时间偏移 61
4.4 设定捕获选项 61
4.4.1 输入标签页 61
4.4.2 输出标签页 62
4.4.3 选项标签页 64
4.5 过滤器 65
4.5.1 捕获过滤器 65
4.5.2 显示过滤器 71
4.5.3 保存过滤器规则 75
4.5.4 在工具栏中增加显示过滤器 76
第5章 Wireshark高级特性 77
5.1 端点和网络会话 77
5.1.1 查看端点统计 78
5.1.2 查看网络会话 79
5.1.3 使用端点和会话定位最高用量者 80
5.2 基于协议分层结构的统计 83
5.3 名称解析 84
5.3.1 开启名称解析 84
5.3.2 名称解析的潜在弊端 86
5.3.3 使用自定义hosts文件 86
5.4 协议解析 88
5.4.1 更换解析器 88
5.4.2 查看解析器源代码 90
5.5 流跟踪 91
5.6 数据包长度 94
5.7 图形展示 95
5.7.1 查看IO图 95
5.7.2 双向时间图 98
5.7.3 数据流图 99
5.8 专家信息 100
第6章 用命令行分析数据包 103
6.1 安装TShark 104
6.2 安装Tcpdump 105
6.3 捕获和保存流量 106
6.4 控制输出 108
6.5 名称解析 111
6.6 应用过滤器 112
6.7 TShark里的时间显示格式 114
6.8 TShark中的总结统计 114
6.9 TShark VS Tcpdump 117
第7章 网络层协议 119
7.1 地址解析协议 120
7.1.1 ARP头 121
7.1.2 数据包1:ARP请求 122
7.1.3 数据包2:ARP响应 123
7.1.4 Gratuitous ARP 124
7.2 互联网协议 125
7.2.1 互联网协议第4版(IPv4) 125
7.2.2 互联网协议第6版(IPv6) 133
7.3 互联网控制消息协议 144
7.3.1 ICMP头 144
7.3.2 ICMP类型和消息 145
7.3.3 Echo请求与响应 145
7.3.4 路由跟踪 148
7.3.5 ICMP第6版(ICMPv6) 150
第8章 传输层协议 151
8.1 传输控制协议(TCP) 151
8.1.1 TCP报头 152
8.1.2 TCP端口 153
8.1.3 TCP的三次握手 155
8.1.4 TCP链接断开 158
8.1.5 TCP重置 160
8.2 用户数据报协议 161
第9章 常见高层网络协议 163
9.1 动态主机配置协议DHCP 163
9.1.1 DHCP头结构 164
9.1.2 DHCP续租过程 165
9.1.3 DHCP租约内续租 170
9.1.4 DHCP选项和消息类型 171
9.1.5 DHCP Version6(DHCPv6) 171
9.2 域名系统 173
9.2.1 DNS数据包结构 174
9.2.2 一次简单的DNS查询过程 175
9.2.3 DNS问题类型 177
9.2.4 DNS递归 177
9.2.5 DNS区域传送 181
9.3 超文本传输协议 184
9.3.1 使用HTTP浏览 184
9.3.2 使用HTTP传送数据 186
9.4 简单邮件传输协议(SMTP) 188
9.4.1 收发邮件 188
9.4.2 跟踪一封电子邮件 190
9.4.3 使用SMTP发送附件 197
9.5 小结 199
第10章 基础的现实世界场景 200
10.1 丢失的网页内容 201
10.1.1 侦听线路 201
10.1.2 分析 202
10.1.3 学到的知识 206
10.2 无响应的气象服务 206
10.2.1 侦听线路 207
10.2.2 分析 208
10.2.3 学到的知识 211
10.3 无法访问Internet 211
10.3.1 网关配置问题 212
10.3.2 意外重定向 215
10.3.3 上游问题 218
10.4 打印机故障 221
10.4.1 侦听线路 221
10.4.2 分析 221
10.4.3 学到的知识 224
10.5 分公司之困 224
10.5.1 侦听线路 225
10.5.2 分析 225
10.5.3 学到的知识 228
10.6 生气的开发者 228
10.6.1 侦听线路 228
10.6.2 分析 229
10.6.3 学到的知识 232
10.7 结语 232
第11章 让网络不再卡 233
11.1 TCP的错误恢复特性 234
11.1.1 TCP重传 234
11.1.2 TCP重复确认和快速重传 237
11.2 TCP流控制 242
11.2.1 调整窗口大小 243
11.2.2 用零窗口通知停止数据流 244
11.2.3 TCP滑动窗口实战 245
11.3 从TCP错误控制和流量控制中学到的 249
11.4 定位高延迟的原因 250
11.4.1 正常通信 250
11.4.2 慢速通信——线路延迟 251
11.4.3 通信缓慢——客户端延迟 252
11.4.4 通信缓慢——服务器延迟 253
11.4.5 延迟定位框架 253
11.5 网络基线 254
11.5.1 站点基线 255
11.5.2 主机基线 256
11.5.3 应用程序基线 257
11.5.4 基线的其他注意事项 257
11.6 小结 258
第12章 安全领域的数据包分析 259
12.1 网络侦察 260
12.1.1 SYN扫描 260
12.1.2 操作系统指纹 265
12.2 流量操纵 268
12.2.1 ARP缓存污染攻击 268
12.2.2 会话劫持 273
12.3 漏洞利用 276
12.3.1 极光行动 277
12.3.2 远程访问特洛伊木马 283
12.4 漏洞利用工具包和勒索软件 290
12.5 小结 296
第13章 无线网络数据包分析 297
13.1 物理因素 297
13.1.1 一次嗅探一个信道 298
13.1.2 无线信号干扰 299
13.1.3 检测和分析信号干扰 299
13.2 无线网卡模式 300
13.3 在Windows上嗅探无线网络 302
13.3.1 配置 AirPcap 302
13.3.2 使用AirPcap捕获流量 303
13.4 在Linux上嗅探无线网络 304
13.5 802.11数据包结构 306
13.6 在Packet List面板增加无线专用列 307
13.7 无线专用过滤器 308
13.7.1 筛选特定BSS ID的流量 309
13.7.2 筛选特定的无线数据包类型 309
13.7.3 筛选特定频率 310
13.8 保存无线分析配置 311
13.9 无线网络安全 311
13.9.1 成功的WEP认证 312
13.9.2 失败的WEP认证 313
13.9.3 成功的WPA认证 314
13.9.4 失败的WPA认证 316
13.10 小结 318
附录A 延伸阅读 319
附录B 分析数据包结构 325