目录
- 前言
- wireshark的使用
- 拦截本地回环数据
- 界面说明介绍
- 对数据包的过滤
- 着色规则
- 数据包的大致结构
- 数据流的追踪
- 专家信息说明
- 数据包的统计分析
- 数据包分析小技巧
因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。
前言
对于我们刚开始接触wireshark来说,看见它把所有数据包都拦截下来觉得强无敌,但往往面对一大堆的数据却又不知所措。一是界面,一堆窗口,什么作用什么区别看不懂;二是捕获,显示过滤器什么的表示看不出有什么规律。今天在此介绍下子,方便今后运用。wireshark是一个非常好用的免费的抓包工具,它使用winpcap作为接口,直接与网卡进行数据报文的交换。
wireshark的使用
wireshark的安装就不介绍了,跟windows程序一样默认下一步,路径自定义。下载地址:https://www.wireshark.org/#download 本次所用为kali自带的wireshark
拦截本地回环数据
这里需要注意的是,本机访问本机的回环数据是不经过网卡的,自然也就不能被捕获了。比如我们在本机访问搭建在本机上的web服务,有要抓取这个回环数据包加以分析的需求,在windows下就需要添加一条路由,让其通过网关进行转发。而在linux中则不用,因为linux中网卡菜单中有lo选项。
添加路由操作如下:
a、首先查看自己的网关信息
b、用命令:`route add <your_IP> mask 255.255.255.255 <gateway_IP> metric 1`添加路由条目
c、route print 查看是否添加成功
d、route delete <your_ip> 删除路由
界面说明介绍
首先这是打开的第一个界面
选择网卡后进入拦截界面。这里1号窗口表示wireshark捕获到的所有数据包的列表,注意最后一列info是组织说明列,不一定是该数据包中的原始内容;2号窗口是1号窗口中选定的数据包的分层协议展示;3号窗口表示1号窗口中选定的数据包的原始数据,其中左侧十六进制表示,右侧ascii码表示。在2号窗口选中某层,3号窗口对应位置会高亮。
停止抓包后,我们可以选择抓取到的数据包。选择文件——另存为——选择存储路径,然后保存为.pcap格式的文件,双击就可以直接用wireshark打开了。
对数据包的过滤
数据包的过滤是wireshark一个非常实用的功能,通常我们会抓取到经过网卡的所有的数据包,然而这里面有很对都是无用的数据包,所以我们就要对其进行过滤。数据包的过滤可以分为抓取时过滤和抓取后过滤。这两种过滤的语法不同。
抓取时过滤
通过点击捕获——捕获过滤器,里面是wireshark默认的一些捕获过滤器,我们可以参照其语法,自己在左下角添加或删除捕获过滤器。
在我们想抓取时对数据包进行过滤,就选择——捕获——选项,然后选择抓取的网卡,下面再选择过滤器。设置好后就可以开始抓包。
抓取后的过滤一般情况下,我们都是抓取完数据后进行过滤的,在上方输入相应的语法,对数据包进行筛选。
过滤的语法
初次相识,都会被这个过滤的语法搞懵逼。这里总结一下格式:
一条基本的表达式由过滤项、过滤关系、过滤值组成。
而其中难点就在于过滤项,过滤项模式为:协议+.+协议字段 。
比如:ip.addr==192.168.10.10 其中ip为协议,addr为协议字段,==为过滤关系,192.168.10.10为过滤值。
以下给出以下语法参考:
过滤地址
ip.addr==192.168.10.10 或 ip.addr eq 192.168.10.10 #过滤地址
ip.src==192.168.10.10 #过滤源地址
ip.dst==192.168.10.10 #过滤目的地址
过滤协议,直接输入协议名
icmp
http
过滤协议和端口
tcp.port==80
tcp.srcport==80
tcp.dstport==80
过滤http协议的请求方式
http.request.method=="GET"
http.request.method=="POST"
http.request.url contains admin #url中包含admin的
http.request.code==404 #http请求状态码的
连接符
&&
||
and
or
通过连接符可以把上面的命令连接在一起,比如:
ip.src==192.168.10.10 and http.request.method=="POST"
着色规则
另外我们捕获的数据包都会呈现出不同的颜色,那么我们怎么知道代表什么意思呢?可以通过视图——着色规则来查看
数据包的大致结构
第一行:数据包整体概述,
第二行:链路层详细信息,主要的是双方的mac地址
第三行:网络层详细信息,主要的是双方的IP地址
第四行:传输层的详细信息,主要的是双方的端口号。
第五行:域名系统相关信息
数据流的追踪
我们的一个完整的数据流一般都是由很多个包组成的,所以当我们想查看某条数据包对于的数据流的话。可以选中数据,右键选择追踪流。里面就会有tcp流、udp流、ssl流、http流。数据包属于哪种流就选择对应的流。
当我们选择了追踪流时,会弹出该流的完整的数据流还有这个数据流中包含的数据包,顶部的过滤器就是该流的过滤规则。
专家信息说明
专家信息可以对数据包中特定的状态进行警告说明,在分析——专家信息。
错误(errors)
警告(Warnings)
标记(notes)
对话(chats)
数据包的统计分析
在统计一栏中,可以对抓取的数据包进一步的分析。比如数据包的属性、已解析的地址、协议分级等。这里就不一一罗列。
数据包分析小技巧
大量404请求——> 目录扫描
大量 select....from 关键字请求——> SQL注入
连续一个ip的多端口请求或多个ip的几个相同端口请求——> 端口扫描
黑客爆破账户和密码,则是post请求 http.request.method==POST
黑客修改文件, ip.addr==219.239.105.18 and http.request.url matches "edit|upload|modify"
如果是用菜刀连接的包,则是post请求 ip.addr==219.239.105.18 and http.request.method==POST