特别声明:本文仅供在校大学生个人学习信息安全知识,不可用于其他用途。转载本文须声明来源,并引述本声明。
网络数据分析利器——Wireshark 1
我们从Wireshark的安装开始讲起……
1.0 安装Wireshark
Wireshark提供了适于各类系统的安装版本,如果你看了本系列的第1个教程,那么当你装好Kali时,wireshark已经在Kali中了,如果你想在windows下使用wireshark也可以安装windows版本(从https://www.wireshark.org/download.html下载),Windows下的安装过程很简单,运行安装程序然后执行所有默认设置就行啦,这里就不多说了。在这里,我们还是进入Kali,以用户root登录,点击kali左上角的“应用程序”—“Kali Linux”—“Top 10 Security Tools”—“wireshark”。这时会报错,提示你用root这种超级用户登录使用wireshark可能是有害系统健康的。我的选择是先不管这些,危险就危险吧,谁让我用的是虚拟机呢?如果不放心,可以使用虚拟机的克隆功能,把当前kali系统克隆一个,用坏了克隆的还有原始的。大家可以试试。
打开后,kali中的wireshark界面如图:
下面开始讲使用,先介绍最基本的,那就是启动wireshark抓取网卡上流过的每个数据包。
1.1 抓包
在打开的wireshark中间偏左位置看到“Capture”项,下面有“InterfaceList”即网卡列表,其中一个以“eth”开头的表示以太网卡,由于90%以上的LAN均用以太网技术,所以我们的电脑一般都是以太网卡,如果你的网卡是用无线的那么请找含“wireless”的接口,选择接口后,点“Start”或绿色鱼翅图标,就可以开始抓包了。点击Capture Options可以配置高级属性,但现在还不需要。
当然如果你没没联网,wireshark显然什么都抓不到。保证你的虚拟机联网,如下图蓝色标注指示的图标,需要它处于连接状态。联网时,正常情况下你会看到下列界面中红色区在不停滚动。这表示你的网卡在不断收发着各种网络数据包。
如果你的网卡被设置为“混杂模式”那么,同一广播域内的所有数据包你都会看到,不管是不是发给你的。
红色区的每一行对应一个网卡上流过的数据包。默认情况下,显示Time抓取时间、source来源、destination目的地、协议Protocol、长度Length和信息Info。单击一行,该数据包的详情会在绿色区显示,点击“+”会展开,我们书本中所学的网络协议都会在这里变得十分具体,所以wireshark对学习和理解计算机网络数据意义重大。紫色区域会显示该数据包的十六进制形式和对应的ASCII码。需要停止抓包,可以点击上方黑色区的红色“Stop”方块。
Wireshark里数据包的色彩,有特定含义。红色区域中不同颜色的行,表示不同协议的数据包,你可以在上方黑色区域的“View”—“Coloring Rules”中了解各种颜色的默认含义。
有的同学没有联网条件,或者觉得自己所在网络中的数据包没什么意思,可以去Wireshark的wiki站里下载样本,然后学习。打开一个抓取文件相当简单,在“FILE”-“Open”选择打开文件即可。也可以在Wireshark里保存自己的抓包文件并打开。
用Wireshark抓包时,上面的红色区会因瞬时数据包滚动的很快,会使人应接不暇。如果当前只想观察符合某个特定要求的数据包,那么可以使用Wireshark提供的多种过滤器,使问题得到聚焦。
最直接的方式是利用上图黑色区下方的“Filter”过滤器,例如输入“TCP”,Wireshark就只显示最近收到的TCP数据包。如果你想设立较为复杂的过滤条件,可以点击“Fileter”框右边的“Expression”表达式,这样可以根据自己的需要设立复杂的逻辑条件,对抓到的数据包进行过滤。例如,我想抓一些由IP=202.106.95.6发给我的数据包,那么我可以点击“Expression”,在弹出的对话框中(如下图),在“Filed Name”即过滤条件字段名中找到“IPv4”(我们学过的IP协议哦),然后点开“+”,选择“ip.addr-Source or Destination Address”,然后选择“Relation”关系运算符“==”(和c语言中的关系运算、逻辑运算很像),然后在“Value”框中键入202.106.95.6,然后确定。当条件出现在“Filter”中时,再按一次回车就可以只看到与ip地址为202.106.95.6的机器之间的数据包了。
也可以点击Analyze菜单并选择DisplayFilters来创建新的过滤条件,这与“Expression”中完全一样。
除了过滤抓包,还可以对一些有状态的协议数据包进行跟踪,有状态的协议中最常见的就是TCP协议了,对于抓到的某个TCP数据包,你可以右键点击该包所在行,然后选择“Follow TCP Stream”,你会看到在这个TCP连接(服务器和客户端之间)所有的TCP会话交互过程。如下图所示。
关闭这个窗口后,跟踪该TCP连接的过滤条件会自动应用,Wireshark会显示构成该TCP连接的所有数据包。
选中一个报文之后,就可以深入挖掘它的内容了。本节先讲到这里。
Wireshark是一个非常之强大的工具,上面只介绍了最基本的用法。网络专家和黑客都会用它来发现网络协议实现细节,检查安全问题。如果上面提到的一些知识你并不熟悉,那么请看看计算机网络的基础教材,掌握一些IP协议、TCP协议等基础知识,你会发现原来抽象的东西现在如此的简单具体。