数据包分析称为数据包嗅探,协议分析,我们捕获和解析网络上传输数据包的一个过程。为了更好的了解网络上发生了什么事情,数据包整个分析的过程,是由数据包嗅探器来分析的。通过数据包嗅探器,我们可以了解网络上的特征,查看网络上通信的主体,确认那些应用在占用网络带宽。比如,我们的单位突然感觉网络特别慢,可以通过分析,直接抓到是那台IP,还可以识别网络使用的高峰时间,通过数据包分析,在那个时间段的网络带宽里面,占用的比较大,还可以识别出可能的攻击、恶意活动。比如,有人进入你的内网进行ARP欺骗了,我们可以通过抓包去分析,还可以寻找不安全,滥用网络安全的应用
嗅探器是在网络上捕获原始数据包的嗅探器。我们搞web安全,也涉及到网络安全、内网安全、应用安全,学代码主要是为了白盒审计,不要掉到其中,出不来了
Wireshark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协议除错,普通使用者使用Wireshark来学习网络协议的相关知识。当然,有的人也会“居心叵测”的用它来寻找一些敏感信息,比如说账号密码
(1)确定Wireshark的物理位置。如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据。
(2)选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
(3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获数据。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。
(4)使用显示过滤器。 通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包更细致,此时使用显示过滤器进行过滤。
(5)使用着色规则。 通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。
(6)构建图表。 如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。
(7)重组数据。 当传输较大的图片或文件时,需要将信息分布在多个数据包中。这时候就需要使用重组数据的方法来抓取完整的数据。Wireshark 的重组功能,可以重组一个会话中不同数据包的信息,或者是重组一个完整的图片或文件。
本文章主要分析以下几种协议类型。
ARP 协议
ICMP 协议
TCP 协议
UDP 协议
DNS 协议
HTTP 协议
启动 WireShark
选择我们的网卡
双击网卡之后就会自动进行抓包
我们可以点击停止捕获>开始捕获>保存,选择tcpdump/…-pcap的格式,在命令行和图形化,都可以使用
我们抓到包了,可以把这个包拷贝到另外一个机器,交给另外一个人分析,你抓到这个包,存在什么问题
1、混杂模式概述:混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC 地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。
2、关闭和开启混杂模式方法
关闭和开启混杂模式前,需要停止当前抓包。如下,停止捕获。
在程序的工具栏中点击“ 捕获 ”—>“ 选项 ”
在选项设置界面中的“ 输出 ”设置栏的左下方勾选“ 在所有接口上使用混杂模式 ”
这样就开启了。默认就是开启混杂模式。普通模式只接收发送给kali的数据包,包括广播包
编辑>首选项>外观
可以设置列显示的内容,可以添加和删除,根据实际的内容去选择
直接用鼠标,就可以拖动列的顺序
可以在外观>布局,选择自己喜欢的布局
时间显示格式默认选择,距离上一个捕获分组经过的秒数,可以在view>时间显示格式,当中进行选择自己喜欢的时间格式
捕获过滤器,通过捕获>选项,输入
host 192.168.42.128
这种方式是只捕获跟这个IP地址,相关的IP数据包,其它无关的都不会捕获
src host 192.168.42.128
//捕获所有kali发送出去的数据包,源主机
把显示过滤器上的内容给无视掉,他不影响我们理解这个命令
dst host 192.168.42.128
//目标是kali的数据包
port 80
//捕获80端口的,不管是源还是目标,都是80
tcp
//只捕获tcp协议
捕获过滤器和显示过滤器,写法不同
我们开启混淆模式来做一下感受,我们再次捕获—在所有接口上使用混杂模式就可以直接进行抓包了
下面我们打开浏览器访问一下百度。
访问完成后点击停止抓包即可,我们不需要抓太多的数据包。
我们可以看到有很多数据包但是我们怎么才能找到对应的数据包类型呢?
这里就是我们的显示过滤器,我们可以根据自己的条件筛选自己想要的数据包。
例 1:使用过滤器筛选 TCP 的数据包
注意:筛选条件我们都使用小写就好了,大写的话会不识别。
例 2:使用过滤器筛选 arp 的数据包
点击+号,可以添加标签
直接就可以筛选出来了,如果我们显示过滤器的条件,比较复杂,那么添加标签的方式,就特别方便
例 3:使用过滤器筛选 udp 的数据包
我们使用过滤器输入“udp”以筛选出 udp 报文。但是为什么输入 udp 之后出现那么多种协议呢?原因就是 oicq、DHCP 以及 dns 都是基于 udp 的传输层之上的协议
扩展:客户端向 DNS 服务器查询域名,一般返回的内容都不超过 512 字节,用 UDP 传输即可。不用经过三次握手,这样 DNS 服务器负载更低,响应更快。理论上说,客户端也可以指定向 DNS 服务器查询时用 TCP,但事实上,很多 DNS 服务器进行配置的时候,仅支持 UDP 查询包。
例 4:使用过滤器筛选 http 的数据包
例 5:使用过滤器筛选 dns 的数据包
其实我们不仅可以对协议类型进行筛选,我们还有跟多的筛选条件,比如源地址目的地址等等
例 6:筛选源地址是 192.168.42.128 或目的地址是 192.168.42.138
在终端 ping 192.168.42.138
然后修改筛选器条件为:
ip.src_host == 192.168.42.128 or ip.dst_host == 192.168.42.138
ip.src_host == 192.168.42.128 表示源 IP 地址
ip.dst_host == 192.168.1.1 表示目的地址
这个判断条件是什么意思呢?
我们中间用 or 进行了拼接,表示或,当然我们也可以使用 and 表示与,or 表示满足左右其中一个条件就会显示符合条件的数据包,and 表示左右 2 个条件都满足才会显示
or
and
我们可以很直观的看到结果的不同。
右键>对话着色>选择协议,就可以看到颜色了
wireshark学完之后,比如一些工具的原理,nmap、fping,要想深入的去研究,可以结合wiershark抓包,去分析他的探测基础,特别是nmap的各种探测方式,他是怎么探测的,他向目标发送了那些数据包,得到了那些响应
协议分析的时候我们关闭混淆模式,避免一些干扰的数据包存在。比如用python写一些工具,我们就要明白其它工具的原理,分析数据包,获取底层原理,借鉴其它工具的原理,或者把多工具优势的原理研究明白了,把多工具的优势集合在一起,在加一点自己的工具,就可以了
地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在 IPv4 中极其重要。ARP 是通过网络地址来定位 MAC 地址。
开始抓包—过滤 arp
我们使用 nmap 来基于 ARP 协议进行扫描
nmap -sn 192.168.42.138
我们看一下我们抓取到的数据包
分析第一个请求包
查看 Address Resolution Protocol (request) ARP 请求包内容: