misc之流量分析

互联网五层模型

防火墙截取的网络攻击流在公安机关对网络攻击的取证中,流量分析往往是非常重要的一个环节,通过分析流量,我们能获得许多线索。在学习流量分析之前,我们需要明白一些网络的基础知识。

常见的网络五层模型,自下而上为物理层、数据链路层、网络层、传输层、应用层(osi七层模型里把应用层扩展为会话层、表示层和应用层)

实际上它并不是一个层次关系,而是包含关系,即每一层都包含所有上层信息

在我们使用抓包软件进行流量分析的时候,抓到的包往往含有数据链路层、网络层、传输层和应用层四个部分,其中每一部分在传递到不同的层面的时候会被利用并丢弃。Wireshark抓的包工作在数据链路层,而burpsuite抓的http包则工作在应用层。

物理层传输方式:WIFI无线通信通过电磁波传输、网线通过网线里的金属芯进行传输信息,光纤通过光导纤维传输信息。

由于不同的物理传输方式就导致网络通信之间需要一个统一的标准,这里的标准就是网络的标准,网络的标准就是将物理层的信号调制解调成标准的以太网的传输格式,之后就可以在本地局域网进行传输,不同的局域网互相连接形成了大千世界的互联网。

物理层传输到的信息会被计算机把里面的物理信号调制解调成数据链路层的信号也就是以太帧这样的信号,当信号传到物理层后,物理层的那一部分被剥去,然后传递到数据链路层,剥去数据链路层的信息,传给网络层,剥去网络层信息,传给传输层,剥去传输层信息,传给应用层

2

用户访问网站基本流程及原理(史上最全,没有之一)

物理层

当两台计算机相连直接通信的时候,发挥主要作用的是物理层。
计算机将信号发送到网线上,另外一台计算机负责接收。
假如我们将第三台电脑通过集线器(hub)相连,相当于三台计算机同时连接在同一根导线上,一台计算机发送的信号,会被其他两台计算机同时收到,但是容易被黑客监听,不够安全,也有可能发生信号冲突

image-20210205234806315

image-20210205234811050

数据链路层

当多台计算机通过交换机(switch)相连的时候,他们采用的通信方式是数据链路层的协议,如下图所示,每一台计算机都分配了对应的MAC地址,当某台计算机想通过给另外一个计算机发送消息时,需要在以太帧头中指明发送方和接收方的地址,交换机在接收到信号之后会根据这个地址正确将信号转发至某一端口(即网线),从而避免了网络内所有计算机都能收到信号。以太帧中的数据包是我们想要传输的信息,包括接下来的IP数据包。(每台电脑上面的网卡都有一个独一无二的MAC地址,网卡生产出来之后,这个物理地址就确定了),交换机相当于打通了一个数据链路。发送给一个电脑,目的mac地址写相应MAC地址,相当于单播如果想发送给其他所有电脑,目的man地址可以写全都是0,相当于广播地址。路由器既能广播发送,也能分别发送,这样就提高了安全性,虽然提高了安全性,但也存在一个问题,如果某台电脑网卡坏了,换一个网卡,那么MAC地址就会变化,那么路由器又要问这台电脑mac地址并在缓存里面刷新一次,这样就非常麻烦,因此就出现了网络层(IP地址网络协议)

image-20210205234831058

image-20210205234836584

网络层

给每个电脑都分配一个虚拟地址也就是IP地址,IP地址和MAC地址的关系可以是一对多也可以多对一,一个mac地址可以分配给多个IP,或者同一个IP可以被多个MAC地址所使用。比如我电脑的网卡坏了,我去换了个新的网卡,IP我还是用原来的IP,于是就根据原来的IP,把这个IP转换成mac地址,再进行通信,这样的话就不用告诉交换机我的MAC地址就能直接通信了。完成IP地址转换成MAC地址的协议叫ARP协议,即将网络地址转换成物理地址。

当我们计算机的网络较为大且复杂的时候,我们使用简单的MAC地址并不能很好的管理网络,因为MAC地址是和硬件绑定的,因为假如我们更换了计算机设备,那么就需要重新配置网络的信息。这个时候IP地址网络协议就诞生了。IP地址和MAC地址通过Arp协议进行转换。其中路由器的存在使得计算机之间能够跨网段访问。如图所示的网络的三个区域的网段分别是192.168.0.0/24、 192.168.1.0/24、 192.168.2.0/24,网关则是路由器连接每个网段的接口,比如192.168.0.1、192.168.1.1、192.168.2.1,计算机想要跨网段通信时,需要把消息转发给路由器上面的网关,路由器再根据IP地址接着转发。

image-20210205234853733

下图是arp协议将物理地址转化为网络地址

image-20210205234910913

网络层还有很多其他的用途,比如我想广播一段数据,我广播的数据只有我这个网段能听到,别的网段听不到,比如说一家公司有财务部、技术部、市场部等等,我广播的数据只希望财务部听到而技术部听不到,但是我又想让技术部的人听到,那么我这个电脑会访问路由器,也就是对于我们的网络层新加了路由器这个设备,发送信息时首先会对照一下我传的这个IP它跟我是不是同一个网段的,发现不是同一个网段的就发给路由器,路由器充当一个网关的角色,发给路由器之后路由器会重复ARP的工作寻找哪个电脑的IP是我要发送的,然后那台电脑收到了这个响应之后就会回复路由器,然后路由器就把消息转发给它,路由器相当于做了一个跨网段转发的工作。

为什么家庭网络没有叫做交换机或者集线器(hub)的说法呢?原因是我们家用的路由器里面既集成了交换机也集成了路由器同时还集成了一些WIFI-AP(WirelessAccessPoint无线接入点)的这种功能也就是将有线网络转换成无线网络。

传输层

在网络层的基础上,我们完成了数据通过IP地址的传送,但是我们仍然要确保数据传输的可靠性。Tcp就是这样的一种协议,他具有多种特性,如使用三次握手的方法确保连接畅通,通过端口的方法来区分不同的连接。

大致流程如下:
客户端向服务端发送一个请求连接包 ,标识符为SYN序号为 J
服务端、收到请求连接包,并对SYN J进行确认,然后发送一个回复包,标识符为SYN K, ACK J+1
客户端向服务端发一个确认收到回复包,标识符为ACK K+1
这样就完成了三次握手。

1

三次握手在wireshark中抓包如下

image-20210206144006690

UDP协议也是传输层的一种,但它是不可靠的,因为它是一个非连接的协议,它的数据包发出去后不管后续情况有没有收到,是不能确定对方是否收到的一种数据包。但是TCP是面向连接的协议,在收发数据前必须和对方建立可靠的连接。

加密的HTTPS协议本质上是TCP协议,它是在HTTP协议与TCP协议之间添加SSL/TLS层,利用SSL/TLS来加密数据

应用层

HTTP协议是最典型的应用层协议之一,应用层还有很多其他协议,比如SSH,SMTP等等,它们都是基于TCP或者UDP协议或者说传输层协议来做的

HTTP报文由请求报文和响应报文组成。常见的HTTP报文类型有GET/POST

image-20210206144908023

wireshark中http请求报文

image-20210206144954047

http响应报文

image-20210206145121136

Wireshark的基本使用

进入wireshark,首先选择需要监听的网卡,之后wireshark会进入监听状态,可以点击任意数据包查看相关数据内容

image-20210206145746206

在wireshark上方过滤器中通过输入相应规则来过滤流量,最简单的就是各种协议名比如http数据包,当然https协议外层有tls封装,所以我们只能抓到https的加密流量。

image-20210206153638995

Wireshark里搜索tls或者ssl,来获取https协议的流量,因为https是加密的,加密协议即为tls。

可以使用如下方法导出wireshark中所有的http包的数据

image-20210206162445938

也可以在某个tcp包上面选择右键-follow tcp stream(追踪流),从而获取一整个tcp连接的数据

image-20210206162508909

可以用nc(netcat)或者ncat来实现TCP传输数据,下面贴上国光大佬的教程,写的很详细。

nc命令教程|国光

另外比较有意思的是,ncat有个监听模式选择叫–chat,可以当作一个聊天服务器拿来用,比如在服务器上执行ncat -lk 8888 –chat,然后自己用电脑连ncat 服务器IP 8888即可,我没有服务器,所以只能自己开个虚拟机玩玩了,没有多人聊天的感觉。

image-20210206154921598

使用wireshark嗅探出了大量的数据之后,可以把这些流量保存为一个pcapng格式的文件

image-20210206162630004

在常见的ctf赛题中,往往是给出一个pcapng文件,需要我们读取这个流量文件,然后从中寻找flag。如果是较为简单的题,直接查找(Ctrl+F选择字符串)即可获得flag

image-20210206163245033

参考资料

https://www.bilibili.com/video/BV1VA411u7Tg?p=4

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2020-2021 Blog of Tianze

请我喝杯咖啡吧~

支付宝
微信