Wireshark数据包分析实战 - 学习笔记

一、数据包分析技术与网络基础
混杂模式
工作在这个模式的网卡,会捕获其所在网段的所有网络通信流量,而不仅仅是其发出或者收到(通过MAC地址区分)的流量。

集线器 - Hub
物理层转发,从一个口收到,会转发到所有口,包括自己;
交换机 - Switcher
MAC层转发,从一个口收到,会转发到所有口,但只有目标端口会接收(通过MAC地址区分);
路由器 - Router
层3转发,即在不同网段之间转发。

流量分类
广播
分为MAC层广播和层3广播。MAC层广播地址是FF:FF:FF:FF。层3广播地址是网段内最大的IP地址,比如网络192.168.156.xxx,网络掩码255.255.255.0,那么其广播地址就是192.168.156.255。
由于广播会产生大量的数据包,一般限制在网络内,即集线器和交换机会转发广播包,但路由器不会。
多播
多播工作在层3,通过使数据包的接收者加入到某个组地址来限制数据包的复制。
一般来说,224.0.0.0 - 239.255.255.255 之间的IP地址,很可能是多播地址。
单播
端到端通信,通过IP地址区分。

广播域
是数据包不经过路由器所能到达的网络边界。

二、监听网络线路
一旦数据包从网卡到达CPU后,就可以被数据包嗅探软件捕获并进行分析。

集线器连接的网络
这个已经比较少见了,因为会导致数据包的冲突,加重网络负担。
但这个环境对数据包分析师来说非常理想。

交换机连接的网络
将嗅探器软件连接到交换机的一个端口,将只能看到广播包和自己收发的包。
有4种方法:
1、端口镜像
交换机需要支持端口镜像,有些支持多个端口镜像到一个端口,需要考虑负载问题,可能丢包
被嗅探的机器不需要离线
网络不受影响
2、集线器接出
有集线器可用,通过集线器把目标机器和嗅探软件连接到交换机上;
被嗅探的机器需要暂时离线一下,以便连接;
被嗅探的机器会从全双工变成半双工;
3、网络分流器
被嗅探的机器需要暂时离线一下,以便连接;
分为聚合的、非聚合的。聚合的:收发在一个端口,非聚合的,收发为单独端口;
嗅探光纤通信时,这是唯一的选择; ???
就是为了网络分析设计的,但有时成本稍高;

4、ARP欺骗攻击
嗅探器作为目标机器和其上游路由器之间所有通信的中间人
Cain&Abel软件

路由器连接的网络
同交换机,但有时可能需要在不同点连接嗅探器才能定位到问题。

5、直接安装


三、Wireshark入门
http://www.wireshark.org
Ethereal -> Wireshark
#sudo apt install wireshark
#./config && make && make install

四、玩转捕获数据包
1.BPF语法
捕获过滤器应用于WinPcap,并使用BPF(Berkeley Packet Filter)语法,这个语法被广泛用于多种数据包嗅探软件,主要是由于大部分软件都依赖于使用BPF的libpcap/WinPcap库。
使用BPF语法创建的过滤器被称为表达式,包含一个或者多个原语,原语之间为逻辑运算符(&&, ||, !)。
每个原语包含一个或多个限定词,然后跟着一个ID名字或者数字。
限定词有三类:
- Type:host,net,port,默认为host
- Dir:src,dst,默认为 src and dst
- Proto:ether, ip, tcp, udp, http, ftp, icmp等
例如:
src 192.168.0.10 && port 80

2.协议域过滤器
可以指定每个字节/bit的值,比如
icmp[0:2]==0x0301,协议后面跟着[],格式为:proto[begin_offset:len] op value
tcp[13]&4==4 //tcp包是否设置了RST标志

3.显示过滤器
比较运算符:==,!=,>,<,>=,<=
逻辑操作符:and, or, xor, not(!)
例如:
!tcp.srcport==3389 // 和 tcp.srcport!=3389相同吗 ?
ip.src==192.168.156.2

五、wireshark高级特性
端点(endpoint)指网络通信中的能够发送或者接收数据包的设备。
会话(conversation)指网络通信中的双方,由地址标识。
MAC会话由一对MAC地址标识,IP会话由一对IP地址标识。

查看端点:Statistics -> Endpoints
查看网络会话:Statistics -> Conversations
名字解析:每次打开文件都需要解析,可能失败,占用系统资源;
- MAC地址解析
- 网络名字解析 - ip
- 传输名字解析 - port
更换解析器:选中packet,右键,Decode as,称为强制解码
跟踪TCP流:选中packet,右键,Follow TCP stream,文本形式显示内容

查看IO图:选中packet,Statistics -> IO Graphs
双向时间图:RTT(round-trip time),即发送数据包,到收到ack的时间,选中packet,Statistics -> TCP Stream Graph -> Round Trip Time Graph
数据流图:比较直观看出交互情况,Statistics -> Flow Graph
专家信息:Analyze -> Expert Info Composite

六、通用底层网络协议
七、常见高层网络协议
八、基础的现实世界场景
Twitter的登录虽然是加密的,但HTTP POST方法发布内容时,确可以看到明文,即使作者不想对外公布的。

IP和域名映射文件:
c:\windows\system32\drivers\hosts
/etc/hosts

在Packets Details中选择某个域,然后右击,选择Prepare a Filter,即可创建一个filter。

过滤出FTP包,比如是传输一个文件,可以Follow TCP Stream -> Save as,保存成文件,注意文件格式与期望写成一样,就可以得到其传输的内容。

九、让网络不再卡
1.TCP错误恢复
RTO:retransmission timeout,在重传包的Packet Details -> [SEQ/Ack analysis]里面能看到
RTT:
WIndows和Linux的最大重传次数都可以配置,一般windows 5次,Linux 15次;
TCP连续3次收到重复的Ack,就认为后续的包丢失了,启动快速重传,此时发送完重传包才继续发送其它包。
TCP/IP协议栈是否开启选择性确认(Selective Acknowlegement)特性,如果未开启,则一旦数据包丢失,后续所有包都要重传。而开启的情况,则只需要重传丢失的包。
2.TCP流量控制

十、安全领域的数据包分析
1.TCP SYN端口扫描
向对方的每个port发送SYN包,请求建立连接
- 如果对方有service运行于该port,那么回复SYN/Ack;
- 如果没有,则回RST;
- 如果没有开机,或者port关闭,则没有响应;
在wireshark中查看扫描结果,可以查看Statistics -> Conversations,里面有port,packets数量等可以用于识别结果。
2.操作系统指纹技术

十一、WLAN数据包分析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章