项目1网络封包分析工具Wireshark 视频讲解 1.1Wireshark简介 Wireshark是目前流行的网络封包分析工具,可以帮助我们获得网络连接中的各项数据。以前上网、访问网页对于人们来说,只是一个抽象的概念,我们并不知道到底是如何浏览那些网络信息的,而利用Wireshark可以将这些概念实体化,各项数据直观地展现了网络连接、网页访问的全过程。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与其他很多网络工具一样,Wireshark也使用Npcap来进行封包捕捉,并可破解局域网内QQ、邮箱、MSN等账号密码。 网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查安全的相关问题,开发者使用Wireshark来为新的通信协议找错,普通使用者使用Wireshark来学习网络协议的相关知识。当然,有的人也会“居心叵测”地用它来寻找一些敏感信息。 1.2Wireshark工作流程 (1) 确定Wireshark的位置。如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据。 (2) 选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据; 否则,捕获到的其他数据对自己也没有任何帮助。 (3) 使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其他数据的干扰,而且,还可以为用户节约大量的时间。 (4) 使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包更细致,此时使用显示过滤器进行过滤。 (5) 使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出地显示某个会话,可以使用着色规则高亮显示。 (6) 构建图表。如果用户想要更明显地看出一个网络中数据的变化情况,使用图表的形式可以很方便地展现数据分布的情况。 (7) 重组数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是重组一个完整的图片或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个图片或文件,需要使用重组数据的方法来实现。 1.3Wireshark安装 可到官网下载Wireshark,网址为https://www.wireshark.org/download.html,网站界面如图1.1所示。 图1.1打开Wireshark的官网 选择3.4.2版本,单击Windows Installer(64bit)下载,可以下载到任意目录,下载的文件为Wiresharkwin643.4.2.exe,执行该文件,显示结果如图1.2所示。 图1.2安装Wiresharkwin643.4.2.exe 单击Next按钮,显示许可协议,如图1.3所示。 图1.3显示许可协议 单击Noted按钮,选择安装的组件,这里将所有的复选框都选中,如图1.4所示。 图1.4选择安装的组件 单击Next按钮,显示其他任务,默认安装,如图1.5所示。 单击Next按钮,选择安装的路径,如图1.6所示。 单击Next按钮,Wireshark需要Npcap或WinPcap来捕获实时网络数据,安装Npcap和WinPcap,继续安装,如图1.7所示。 单击Next按钮,安装USB Capture, 如图1.8所示。 单击Install按钮,开始安装,如图1.9所示。 安装时跳出的窗口如图1.10所示,开始安装Npcap插件,Npcap是WinPcap的改进版。 单击I Agree按钮,继续安装,如图1.11所示。 单击Install 按钮,显示如图1.12所示。 图1.5安装的任务 图1.6选择安装的路径 图1.7继续安装 图1.8安装USB Capture 图1.9开始安装 图1.10安装Npcap插件 图1.11继续安装Npcap插件 图1.12完成Npcap 插件的安装 单击Finish按钮,完成Npcap的安装。如图1.13所示,显示安装完成。 图1.13显示安装完成 单击Next按钮,Wireshark安装完成,重启系统,如图1.14所示。 图1.14安装完成,重启系统 1.4Wireshark 基本应用 1. 界面介绍 打开Wireshark程序,Wireshark 3.4.2启动界面如图1.15所示。 图1.15Wireshark启动界面 首先选择要抓包的网卡,这里选择以太网。然后单击左上角蓝色的按钮,开始捕获分组,如图1.16所示。 1号窗口是数据包列表,显示捕获的数据包,第一列为捕获的序列号,第二列为捕获的时间,第三列为源IP地址,第四列为目标IP地址,第五列为协议,第六列为长度,第七列为说明信息。 2号窗口是数据包详细信息,在1号窗口数据包列表中选择指定数据包,在2号窗口数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息是非常重要的,可用来查看协议中的每一个字段。各行信息分别说明如下。 (1) Frame: 物理层的数据帧概况。 (2) Ethernet Ⅱ: 数据链路层以太网帧头部信息。 (3) Internet Protocol Version 4: 网络层IP包头部信息。 (4) Transmission Control Protocol: 传输层的数据段头部信息,此处是TCP。 (5) Hypertext Transfer Protocol: 应用层的信息,此处是HTTP。 3号窗口是1号窗口中选定的数据包字节区,其中左侧是十六进制表示,右侧是ASCII码表示。另外,在2号窗口中选中某层或某字段,3号窗口对应位置也会被高亮。 图1.16抓包结果 2. 设置数据列表颜色 从图1.16看到,数据包列表中不同的协议功能使用了不同的颜色区分。如需更改颜色,选择菜单栏“视图(V)”→“着色规则”,选择某个规则,使用下面的按钮更改前景色和背景色,如图1.17所示。 图1.17数据包列表中颜色的设置 3. 设置网卡 如需重新选择网卡,应选择菜单栏“捕获(C)”→“选项”,打开“捕获选项”对话框,在Input选项卡中选择网卡后,单击“开始”按钮,开始抓包,如图1.18所示。 图1.18更换网卡抓包 4. 显示过滤器 在捕获时未设置捕获规则直接通过网卡抓取所有数据包,如图1.19所示,可看到抓取了所有协议的数据包。 图1.19抓取所有数据包 显示过滤器用于在抓取数据包后设置过滤条件,从而过滤数据包。通常在抓取数据包时设置条件相对宽泛,抓取的数据包内容较多时,使用显示过滤器设置条件过滤,以方便分析,如果只抓取TCP的数据包,则在显示过滤器中输入TCP,如图1.20所示。 图1.20显示过滤器中输入TCP抓包 1.4.1数据链路层过滤 按照MAC地址进行筛选: 格式: eth.src == MAC地址 【例11】如筛选MAC地址为e0:d5:5e:ac:eb:71的数据包,则应该在显示过滤器中输入eth.src == e0:d5:5e:ac:eb:71,然后单击右侧的箭头按钮,如图1.21所示。 图1.21按照MAC地址筛选 注意: 等号必须输入两个,如果输入一个等号则语法错误。输入框为红色表示错误,为绿色表示正确,可以执行过滤器。 1.4.2网络层过滤 1. 按照IP地址筛选 格式: ip.addr == IP地址 【例12】如想要过滤出目的地址或源地址为202.206.96.52的数据包,则应在过滤器中输入ip.addr == 202.206.96.52,然后单击右侧的箭头按钮,如图1.22所示。 图1.22按照IP地址筛选 2. 按照源IP地址筛选 格式: ip.src == 源IP地址 【例13】如想要过滤源地址为202.206.96.180的数据包,根据语法规则,在过滤器中输入ip.src == 202.206.96.180,然后单击右侧的箭头按钮,就可以进行过滤了,如图1.23所示。 图1.23按照源IP地址筛选 3. 按照目的IP地址筛选 格式: ip.dst == IP地址 【例14】如果要过滤目的地址为202.206.96.180的数据包,则根据语法规则在过滤器中输入ip.dst == 202.206.96.180,然后单击右侧的箭头按钮,就可以进行过滤了,结果如图1.24所示。 图1.24按照目的地址筛选 4. 按照指定的源地址和目的地址进行筛选数据包 格式: ip.src == IP地址 && IP.dst == IP地址 【例15】如果想要筛选源地址为202.206.96.180,目的地址为58.205.218.18的数据包,只需要根据语法规则在过滤器中输入ip.src == 202.206.96.180 && ip.dst == 58.205.218.18,然后单击右侧的箭头按钮,就可以进行过滤了,结果如图1.25所示。 图1.25按照指定的源地址和目的地址筛选 1.4.3传输层过滤 1. 筛选TCP的数据包 格式: tcp 【例16】在过滤器中输入规则TCP,这样就可以过滤出所有协议为TCP的数据包,如图1.26所示。 图1.26筛选TCP的数据包 2. 筛选不是TCP的数据包 格式: !tcp 【例17】在过滤器中输入规则!tcp,过滤出所有不是TCP的数据包,如图1.27所示。 注意: 在英文状态下输入感叹号。 图1.27筛选不是TCP的数据包 3. 筛选端口是80的数据包 格式: tcp.port == 80 【例18】输入规则tcp.port == 80,过滤出所有经过80端口的数据包,如图1.28所示。 图1.28筛选端口是80的数据包 4. 筛选指定的源IP地址并且端口是80的数据包 格式: tcp.port == 80 && IP.src == 源IP地址 【例19】输入规则tcp.port == 80 && ip.src == 202.206.96.180,筛选源IP地址为202.206.96.180并且端口是80的数据包,如图1.29所示。 图1.29筛选指定的源IP地址并且端口是80的数据包 注意: 逻辑运算符“&&”表示与,“||”表示或,“!”表示非,用于规则之间的连接。 1.4.4应用层过滤 (1) 在过滤器中输入http.request表示请求,从图1.30看到源IP地址都为192.168.3.2。 图1.30http.request请求 注意: 从图1.30可以看到,协议(protocol)列显示HTTP和SSDP,SSDP是简单服务发现协议,此协议为网络客户提供一种无须任何配置、管理和维护网络设备服务的机制,设备查询通过HTTP协议扩展MSEARCH方法实现。 (2) 输入http.response表示响应,如图1.31所示。从图1.31中可以看到,目的IP地址都为192.168.3.2接收响应。 图1.31http.response响应 (3) 输入http.request.method=="GET",请求指定的页面信息,显示HTTP GET方法的请求,如图1.32所示。 图1.32HTTP GET方法的请求 (4) 在过滤器输入http.request.uri contains ".php",筛选URL HTTP中包含.php的数据包,如图1.33所示。 图1.33筛选包含.php的数据包 1.4.5抓包实例 【例110】使用ICMP协议并抓取百度的数据包,步骤如下。 (1) 在cmd下执行ping www.baidu.com t命令,如图1.34所示,显示百度的IP地址为182.61.200.7。 图1.34执行ping 操作 (2) 回到桌面,在过滤器中,输入ip.addr == 182.61.200.7 and icmp,如图1.35所示。 图1.35抓取百度数据包 (3) 选中图1.35中1号窗口的第一行的数据包,在2号窗口数据包详细信息中显示这个数据包的所有详细信息内容,包括Frame、Ethernet Ⅱ、Internet Protocol Version 4、Internet Control Message Protocol。单击2号窗口左侧三角,可显示抓到的数据包的详细信息,如图1.36所示。 图1.36数据包的详细信息 1.5网络安全分析实例 1.5.1ARP欺骗原理 视频讲解 ARP协议是Address Resolution Protocol(地址解析协议)的缩写,在以太网环境中,数据的传输所依赖的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。 ARP欺骗就是一种典型的中间人攻击方式,中间人攻击就是A机器和B机器在进行正常的网络通信时,Hacker实施中间人攻击,监听A机器和B机器的通信,在这个过程中Hacker作为中间人会处理转发它们的数据信息,也就是说A机器和B机器之间依然可以正常通信,并且它们也不会发现通信过程中多了一个人。A机器以为自己是在和B机器通信,然而实际上多了一个Hacker正在默默地监听A机器和B机器之间的通信。 ARP协议的缺点是没有任何认证机制。当主机A收到一个发送方IP地址为192.168.157.142的ARP请求包时,主机A并不会对这个数据包做任何的真伪校验,无论这个数据包是否来自192.168.157.142,它都会将其添加到ARP缓存表中,Hacker正是利用这一点来冒充网关等主机的。 【例111】在VMware中分别创建两台虚拟机,Kali机器的IP地址为192.168.157.142,Windows 7机器的IP地址为192.168.157.170。 (1) 在Kali下执行“09嗅探/欺骗”下的Wireshark程序,如图1.37所示。 说明: 创建虚拟机和Kali系统的详细安装步骤可以参考项目5。 图1.37在Kali下执行Wireshark (2) 在Kali下进入终端模式,执行 ping 192.168.157.170命令,如图1.38所示。 图1.38Kali机器ping Windows 7 (3) Kali机器192.168.157.142和Windows 7机器192.168.157.170进行通信时,会先在ARP缓存表查找192.168.157.170对应的ARP表项(即192.168.111.170对应的MAC地址),如果没有找到则会发送ARP请求。IP为192.168.157.142的主机首先会以广播方式发送一个ARP请求包获取192.168.157.170主机的MAC地址,其内容为who has 192.168.157.170?Tell 192.168.157.142,如图1.39所示。 图1.39抓取到的广播内容 (4) 当IP为192.168.157.170的主机收到这个ARP请求包时并不会做任何的真伪校验,而是直接回复一个ARP响应包,把自己的MAC地址告诉192.168.157.142的主机,如图1.40所示。 图1.40回复响应包