WireShark作为简明的网络嗅探工具一直受到广大程序员的追捧,为了更好学习网络,所以准备学习一下这个神奇的工具,现总结如下。
一、网络嗅探器工作原理
- 收集:从网卡上收集二进制信息(将网卡设置成混杂模式完成抓包)
- 转换:将捕获的二进制信息转换成可读形式。
- 分析:对捕获和转换后的数据进行分析。
二、七层OSI模型
OSI参考模型是由国际化标准组织ISO提出的,OSI参考模型只是一个行业建议标准,协议开发并不需要严格遵守此参考模型。
1. 应用层:OSI参考模型的最上层,为用户访问网络资源提供一种手段,是离用户最近的一层
2. 表示层:把数据转换为能与接收者的系统格式兼容并适合传输的格式。
3. 会话层:负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
4. 传输层:把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。
5. 网络层:决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。网络表头包含了网络数据。
6. 数据链路层:负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成了帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符 串。
7. 物理层:OSI参考模型的底层传输网络的物理媒介,定义了所使用的物理设备的电气属性等。
三、封装
每一层都有自己的头部信息,在数据从一台电脑传输到另一台电脑的过程中先从一台电脑从协议栈的最上层一层一层加自己的头部信息(和尾部信息)直到最后一层,另一台电脑收到信息后从最后一层开始一层一层剥除每一层的头部,直到传递给最上层原始信息。
四、网络硬件
- 集线器:工作在OSI参考模型物理层的设备,它从一个端口接收到数据包,然后将数据包传输到其他端口上(采用广播形式)。
- 交换机:工作在数据链路层,和集线器功能类似,只是它的方式不采用广播形式,而是将从CAM表中取出机器的第二层地址,交换机仅将数据定向发送到指定的端口。
- 路由器:工作在网络层,它负责在两个或多个网络之间转发数据包。
五、流量分类
- 广播数据:会被发送到网段上的所有端口,而无论这些端口连接在集线器上还是交换机上。
- 多播流量:将单一数据来源同时传输给多个目标进行通信。
- 单播流量:数据包从一台计算机传输到另一台计算机。
六、小知识点
- 混杂模式:能够允许网卡查看所有流经网络线路数据包的驱动模式。
- 广播域(网络段):其中任何一台计算机都可以无需经过路由器,直接传送数据到另一台计算机。
- 可视范围:表示在数据包嗅探器中能够看到通信流量的主机范围。
- 集线器嗅探:只需要在某台集线器的端口上安装网络嗅探设备就可以获得一个不受限制的可视范围(同一广播域)。
- 全双工:同时可以发送和接收数据
- 交换式网络中嗅探的基本方法:端口镜像、集线器接出、使用网络分流器、ARP欺骗攻击。
七、端口镜像
最简单的交换式网络数据包捕获方式
1. 条件:有交换机控制权、交换机支持镜像交换功能
2. 方法:设置某一端口的数据包镜像到嗅探器安装端口,进行数据分析
3. 注意:在进行多个端口同时镜像到一个端口的时候注意单个端口的流量负载能力。
八、集线器输出
就是将原本接在交换机上的网线拔出接到交换机上=、=
九、使用网络分流器
- 分类:聚合(3个端口)、非聚合(4个端口)
- 聚合:一个输入端口、一个输出端口、一个监视端口
- 非集合:一个输入端口、一个输出端口、一个输入监视端口、一个输出监视端口
十、ARP欺骗
由于交换机是在OSI参考模型的第二层上工作,它们只认识第二层的MAC地址,因此网络设备必须在它们创建的数据包中包含这些信息,当这些设备不知道MAC地址的情况下需要通过第三层的IP地址进行查询,这样才能通过交换机将流量传输给相应设备。这些翻译在第二层的ARP协议来完成,发起通信的计算机先通过检查自己的ARP缓存来查找是否有相应IP的ARP缓存,如果没有就会在数据链路层的广播地址发送一个广播地址FF:FF:FF:FF:FF发送一个ARP广播请求包,就会询问特定以太网中某个IP的MAC地址是什么?每台着被收到之后发现如果是自己的IP就会给一个应答,告诉发送者,我是某某IP,我的MAC地址是某某,如果发现不是自己的IP就将数据包丢弃。
ARP欺骗就是不断发送包含虚假MAC地址的ARP数据包,用以劫持数据包的过程,在这里我使用dsniff这个工具中的arpspoof进行ARP欺骗,使用也非常简单,使用arpspoof -i wlp15s0 -t 192.168.30.121 192.168.30.2这条命令就可以对192.168.30.121这台主机发送包含虚假MAC地址的ARP包,告诉它我现在是192.168.30.2这台主机。