wireshark分析
# 数据包分析与网络基础
# 1.1 数据包分析与数据包嗅探器
数据包分析方法:
了解网络特征
查看网络上的通信主体
确认谁或者是哪些应用在占用网络带宽
识别网络使用的高峰时间
识别可能的攻击或恶意活动
寻找不安全以及滥用网络资源的应用
相似的数据包嗅探器
tcpdump、omnipeek、wireshark、科来网络分析
工作原理:
收集
转换
分析
# 1.2 网络通信原理
# 1.2.1 协议
发起连接
协商连接参数
数据格式
错误检测与校正
关闭连接
# 1.2.2 七层OSI参考模型
应用层>表示层>会话层>传输层>网络层>数据链路层>物理层
# 1.2.3 数据封装
OSI参考模型不同层次上的协议在数据封装的帮助下进行通信传输。协议栈中的每层协议都负责在传输数据上增加一个协议头部或尾部,其中包含了使协议栈之间能够进行通信的额外信息。例如,当传输层从会话层接收数据时,它会在将数据传递到下一层之前,增加自己的头部信息数据。
数据封装过程将创建一个协议数据单元(PDU),其中包括正在发送的网络数据,以及所有增加的头部与尾部协议信息。随着网络数据沿着OSI参考模型向下流动,PDU逐渐变化和增长,各层协议均将其头部或尾部信息添加进去,.直到物理层时达到其最终形式,并发送给目标计算机。接收计算机收到PDU后,沿着OSI参考模型往.上处理,逐层剥去协议头部和尾部,当PDU到达OSI参考模型的最上层时,将只剩下原始传输数据。
我们从客户端计算机的应用层开始,在我们浏览一个网站时,所使用的应用层协议是HTTP,通过此协议发出请求命令,从google.com下载index.html文件。一旦我们的应用层协议已经确定我们要完成的任务,我们现在关心的是数据包如何发送到目的地。数据包中封装的应用层数据将沿着协议栈传递给传输层。HTTP是一个使用TCP(或在TCP协议之上)的应用层协议,因此传输层中将使用TCP协议来确保数据包的可靠投递。所以-一个包括序列号和其他数据的TCP协议头部将被创建,并被添加到数据包中,以确保数据包能够被正确交付。
在完成这项工作之后,TCP协议将数据包交给IP协议,也就是在第3层上负责为数据包进行逻辑寻址的协议。IP协议创建一个包含有逻辑寻址信息的头部,并将数据包传递给数据链路层上的以太网,然后以太网物理地址会被添加并存储在以太网帧头中。现在数据包已经完全封装好,然后传递给物理层,在这里数据包变成0、1 信号通过网络完成传输。
封装好的数据包将穿越网络线缆,最终到达Google的Web服务器。Web服务器开始读取数据包,从下往上,这意味着它首先读取数据链路层,从中提取到所包含的物理以太网寻址信息,确定数据包是否是发往这台服务器的。一旦处理完这些信息,第2层头部与尾部的信息将被剥除,并进入第3层的信息处理过程中。
读取IP寻址信息的方式和第2层相同,目的是确认数据包被正确转发,以及数据包未进行分片处理。这些数据也同样被剥离,并交到下一层进行处理。
现在第4层TCP协议信息被读取,以确保数据包是按序到达的。然后第4层报头信息被剥离,留下的只有应用层数据。这些数据会被传递到Web服务器应用程序。为了响应客户端发过来的这个数据包,服务器应该发回一个TCP确认数据包,使客户端知道它的请求已经被接收,并可以等待获取index.html文件内容了。
所有数据包都会以这个例子中描述的过程进行创建和处理,而无论使用的是哪种协议。
但同时,请牢记并非每个网络数据包都是从应用层协议产生的,所以你会进一步看到只包含第2层、第3层或第4层协议信息的数据包。
# 1.2.4 网络硬件
# 1.3 流量分类
# 1.3.1 广播流量
广播数据包会被发送到一个网段上的所有端口,而无论这些端口连接在集线器还是交换机上。但并非所有的广播流量都是以相同方式构建的,而是包括第2层广播流量和第3层广播流量两种主要形式。例如,在第2层,MAC地址FF:FF:FF:FF:FF:FF是保留的广播地址,任何发送到这-地址上的流量将会被广播到整个网段。第3层也有-.些特定的广播地址。
在一个IP网络范围中最大的IP地址是被保留作为广播地址使用的。例如,在一个配置了192.168.0.XXX的IP范围,以及子网掩码是255.255.255.0的地址网络中,广播IP地址是192.168.0.255。
# 1.3.2 多播流量
多播是一种将单一来源数据包同时传输给多个目标的通信方式。多播的目的是为了简化这个过程,并使用尽可能少的网络带宽。多播流量通过避免数据包的大量复制来达到优化效果,而处置多播流量的方式则高度依赖于不同网络协议的实现细节。 实施多播的主要方法是通过一种将数据包接收者加入多播组的编址方案,这也是IP多播的工作原理。这种编址方案确保数据包不会被传送到未预期的目的地。事实上IP协议将一整段的地址都赋予了多播,如果你在网络上看到在224.0.0.0到239.255.255.255 IP范围内的地址,它很有可能就是多播流量。
# 1.3.3 单播流量
# 监听网络线路
进行高效的数据包分析的-一个关键决策是在哪里放置数据包嗅探器,以恰当地捕捉网络数据。数据包分析师通常把这个过程称为监听网络线路。简而言之,这是将数据包嗅探器安置在网络上恰当物理位置的过程。
# 2.1 混杂模式
# 2.2 在集线器连接的网络中进行嗅探
# 2.3 在交换式网络中进行嗅探
在一个交换式网络中从一个目标设备捕获网络流量的基本方法:
- 端口镜像
- 使用网络分流器
- ARP欺骗攻击
# 2.3.1 端口镜像
访问交换机,设置端口镜像的功能,强制交换机将一个端口上的所有通信都镜像到另一端口上,然后将嗅探分析器接入此端口
# 2.3.2 集线器输出
# 2.3.3 使用网络分流器
# 2.3.4 ARP欺骗
ARP欺骗是--种在交换式网络中进行监听的高级技术。它通常由攻击者用于向客户端系统发送虚假地址的数据包,以截获特定的网络流量或者对目标进行拒绝服务(DoS) 攻击。然而,它也可以是一-种在交换式网络中捕获目标系统数据包的合法方式。
# wireshark入门
# 3.1 wireshark捕获数据包
Packet List (数据包列表)
Packet Details (数据包细节)
Packet Bytes (数据包字节)
# 玩转捕获数据包
# 4.1 使用捕获文件
# 4.2 分析数据包
# 4.2.1 查找数据包
display filter
not ip
ip.addr == 192.168.1.1
arp
2
3
hex value
00:ff
ff:ff
00:AB:B1:f0
2
3
string
Workstation1
UserB
domain
2
3
# 4.2.2 标记数据包
# 4.2.3 打印数据包
# 4.3 设定时间显示格式和相对参考
# 4.4 设定捕获选项
捕获文件设定
按文件大小、按时间保存文件
# 4.5 使用过滤器
# 4.5.1 捕获过滤器
捕获过滤器的BPF语法
type 指出名字或者数字所代表的意义 host,net,port
dir 指明传输方向是前往还是来自名字或者数字 src,dst
proto 限定所要匹配的协议 ether,ip,tcp,udp,http,ftp
dst host 192.168.1.1 && tcp port 80
连接运算符 && 选择运算符 || 否定运算符 !
src 192.168.1.1 && port 80
主机名和地址过滤器
host 192.168.1.1 ether host 00-1a-a0-52-e2-a0 src host 192.168.1.1 dst host 192.168.1.1 dst 192.168.1.1
端口和协议过滤器
port 80 !port 80
# 4.5.2 显示过滤器
过滤器表达式
ip.addr == 192.168.1.1
frame.len<=128
ip.addr == 192.168.1.1 or ip.addr==192.168.1.2
!tcp.port==3389
tcp.flags.syn==1
tcp.flags.rst=1
!arp
http
tcp.port==23||tcp.port 21
smtp||pop|imap
2
3
4
5
6
7
8
9
10
# wireshark高级特性
# 5.1 网络端点和会话
# 5.2 基于协议分层结构的统计数据
# 5.3 名字解析
# 5.4 协议解析
# 5.5 跟踪TCP流
# 5.6 数据包长度
# 5.7 图形展示
# 通用底层网络协议
# 6.1 地址解析协议
arp ip > mac
# 6.2 互联网协议
ip地址
# 6.3 传输控制协议
tcp
# 6.4 用户数据报协议
udp
# 6.5 互联网控制消息协议
icmp tracert
# 常见高层网络协议
# 7.1 动态主机配置协议DHCP
# 7.2 域名系统
# 7.2.1 dns数据包结构
DNS ID号 :用来对应DNS查询和DNS响应
查询、响应 QR :用来指明这个数据包是DNS查询还是响应。
操作代码(OpCode):用来定义消息中请求的类型。
权威应答(AA):如果响应数据包中设定了这个值,则说明这个响应是由域内权威域名服务器发出的。
截断(TC):用来指明这个响应由于太长,无法装入数据包而被截断。
期望递归(RD):当响应中设定了这个值,说明DNS客户端在目标域名服务器不含有所请求信息的情况下,要求进行递归查询。
可用递归(RA):当响应中设定了这个值,说明域名服务器支持递归查询
响应代码(Response Code):在DNS响应中用来指明错误。
问题计数(Question Count):在问题区段中的条目数。
回答计数 (Answer Count): 在回答区段中的条目数。
域名服务器计数(Name Server Count):在权威区段的域名资源记录数。
额外记录计数(Additional Records Count):在额外信息区段中其他资源记录数。 问题区段(Question section): 大小可变,包含有被发送到DNS服务器的一条或多条的信息查询的部分。 回答区段(Answer section): 大小可变,含有用来回答查询的一-条或多条资源记录。 权威区段(Authority section): 大小可变,包含指向权威域名服务器的资源记录,用以继续解析过程。 ~额外信息区段(Additional Information section):包含资源记录且大小可变的区段,这些资源记录用来存储完全没有必要回答的查询相关的额外信息。
# 7.2.2 DNS问题类型
A IPv4主机地址
NS 权威域名服务器
CNAME 规范别名
MX 邮件交换
TXT 文本字符串
AAAA IPv6主机地址
IXFR 增量区域传送
AXFR 完整区域传送
# 7.2.3 递归查询
由于互联网的DNS结构是层级式的,为了能够回答客户端提交的查询,DNS服务器必须能够彼此通信。我们的内部DNS服务器知道我们本地局域网服务器的名字和IP地址的映射,但不太可能知道谷歌或者戴尔的IP地址。 当DNS服务器需要查找-一个IP地址时,它会代表发出请求的客户端向另一个DNS服务器查询。实际上,这个DNS服务器与客户端的行为相同。这个过程叫做递归查询。
# 7.2.4 DNS区域传送
区域传送指出于冗余备份的需要,在两台设备之间传送区域数据。举例来说,在拥有多个DNS服务器的组织中,管理员通常都会配置一台备用DNS服务器,用来维护-份主服务器DNS信息的拷贝,以防止主DNS服务器不可用。主要存在两种区域传送。
# 7.3 超文本传输协议
HTTP
# 基础的现实世界场景
# 让网络不再卡
# 9.1 TCP的错误恢复特性
# 9.2 TCP流控制
# 9.3 从TCP错误控制和流量控制中学到的
# 9.4 定位高延迟的原因
# 9.4.1 正常通信
# 9.4.2 线路延迟
# 9.4.3 客户端延迟
# 9.4.4 服务器延迟
# 9.4.5 延迟定位框架
# 9.5 网络基线
安全领域的数据包分析
# 10.1 网络侦察
# 10.1.1 SYN扫描
# 10.1.2 操作系统指纹术
# 10.2 漏洞利用
# 10.2.1 极光行动
# 10.2.2 ARP缓存中毒攻击
# 10.2.3 远程访问特洛伊木马
# 无线网络数据包分析
11.1 物理因素
11.1.1 一次嗅探一个信道
11.1.2 无线信号干扰
11.1.3 检测和分析信号干扰
11.2 无线网卡模式
11.3 在windows上嗅探无线网络
11.4 在linux上嗅探无线网络
11.5 802.11 数据包结构
11.6 无线专用过滤器
11.7 无线网络安全