使用 Wireshark 进行嗅探实验

这篇具有很好参考价值的文章主要介绍了使用 Wireshark 进行嗅探实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(这是 HNU 肖晟老师的《计算机网络》第一次实验)

本文首发于 blog.skywt.cn,点击 阅读原文以获得更好的阅读体验。

实验环境

手机(iPhone)开启热点作为 gateway,让电脑(MacBook)连接热点作为攻击者,平板(iPad)也连接热点作为 victim。让我们来看看,当 victim 上网时,攻击者能看到什么。

混杂模式

大多数的网卡都支持开启混杂模式(promiscuous mode),只是一般工作在非混杂模式下。
在混杂模式下,网卡可以接收所有经过它的数据流,不论目的地是否是它。

在一般 Linux 发行版中需要手动开启混杂模式:

ip link set eth0 promisc on

开启之后,网卡应该就可以支持混杂模式了。

在终端使用 ifconfig 查看网卡接口信息,接口的 flags 中包含 PROMISC 就说明目前支持混杂模式,例如:

...
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=6463<RXCSUM,TXCSUM,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
	ether 1c:91:80:e2:0f:f6 
	inet6 fe80::1878:5529:853f:6fa1%en0 prefixlen 64 secured scopeid 0xc 
	inet 192.168.86.20 netmask 0xffffff00 broadcast 192.168.86.255
	inet6 240e:468:490:e659:402:bca2:58e4:dbae prefixlen 64 autoconf secured 
	inet6 240e:468:490:e659:e445:33c7:a581:43c8 prefixlen 64 autoconf temporary 
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
...

MacBook 的 macOS 中网络接口命名和一般的设备不同,使用 ifconfig 显示时,en0 才是 Wi-Fi 网卡接口。可以在「系统信息.app」查看,或者直接看当前 active 的接口。

安装配置 Wireshark

macOS 下使用 homebrew 安装 Wireshark 时,formula 的版本和 cask 的版本存在 conflict,不能共存。只要安装 cask 的版本(带图形界面的)即可。(从官网下载安装是一样的)

brew install --cask wireshark

开启后会提示安装 ChmodBPF,否则无法使用。安装之后打开会发现还是提示没有安装,这时候还要给权限才能用:

sudo chmod 666 /dev/bpf*

给权限之后打开 Wireshark 就可以抓包了。注意 macOS 重启之后这个权限会重置,需要重新设置。

ARP 欺骗

开启了混杂模式只是保障了我们可以嗅探,但是这时候局域网内的其他主机并不愿意把包发给我们。我们要进行 ARP 欺骗,将自己伪装成一个 gateway,让其他主机乖乖地把包发给我们。

我们使用 ettercap 工具进行 ARP 欺骗。Windows 平台建议使用 arpspoof,这个程序更加简单轻量。

brew install ettercap
sudo ettercap -G # 以图形界面方式运行 Ettercap,注意要 sudo!

启动 Ettercap 后,进行 host 扫描或者等待自动探测 host,然后将 host list 中目标主机(即想要欺骗的 victim)加入 target1,将 gateway 加入 target2。
注意同一主机在 list 里可能有 IPv4 和 IPv6 两个表项,看 mac 地址可以区分(同一主机 mac 地址相同)。

wireshark局域网嗅探,wireshark,测试工具,网络

如何才能确定这些 IP 谁是谁的呢?
对于 victim 的 IP,可以直接在 victim 设备的设置里查看,网络设置中会显示自己被分配到的 IP。有些时候,这个 list 里的 description 会显示设备名称。
对于 gateway 的 IP,则可以在任何连接该局域网的设备设置里看到,显示的「网关 IP」即是。
这个 list 中的 192.168.86.236 就是我们的 victim。

配置好 target 后,点击 MITM menu 里的 ARP poisoning 就可以启动 ARP 欺骗。这时候在 Wireshark 里就能抓到局域网内其他主机的包了。

使用 Wireshark 抓包

在 Wireshark 里筛选相应 IP 的包,就可以看到与 victim 有关的包。可以这么写查询语句:ip.addr == 192.168.86.236

wireshark局域网嗅探,wireshark,测试工具,网络

可以看到各种协议的流量,TCP、ARP、MDNS、HTTP……

观察截图中的 48 号开始的数据包,可以发现这完整演示了 TCP 三次握手的过程:

  • 48 号 victim 向服务器 61.187.64.7 发送 SYN=1 的包,结果 49 号重传了(可能因为网络问题没有发送成功),这就是第一次握手;
  • 51 号,服务器向 victim 发回了 SYNACK 的包,这就是第二次握手,结果这个包又重传了;
  • 53 号则是 victim 最后向服务器发送了 SYN=0 的 ACK 包,这就是第三次握手,TCP 连接建立成功!

这个 TCP 连接用于什么目的呢?可以看到接下来对于这个服务器的一个请求就是 HTTP GET,也就是 victim 访问了湖大统一身份认证页面的网页。至此,我们直观地看到了从建立 TCP 连接到发送 HTTP 请求的全过程。

还注意到,这个连接由 victim 的 60431 端口和服务器的 80 端口建立。在下面的其他数据包里,victim 的端口各不相同,端口号都大于 60000。看来,发送端的确是任意选择一个不定端口进行发送的。

实践:湖大统一身份认证登陆

现在还有什么现代网站使用 HTTP 吗?答案是肯定的,比如:湖南大学「统一身份认证」的登录页面。这个页面是完全不支持 HTTPS。
那么理论上来说,我是不是可以看到在相同局域网登陆的同学的密码呢?

将前面的一切都配置好之后,在同一个局域网下,在目标设备上登录,筛选 Wireshark 的条件为发自 victim 的 IP 和使用 HTTP 协议,可以写 ip.src == 192.168.86.236 && http

确实看到了目标设备浏览器发出的 HTTP 请求!
查看包内容,可以看到表单发送的四个字段,其中赫然包含着这个 password:

wireshark局域网嗅探,wireshark,测试工具,网络

然而查看发现,这个内容是加密的。结合之前对湖大登录认证的研究,在发送表单之前会对 password 进行 RSA 加密,加密的公钥是加载网页之初向服务器请求的(每次都不同),而对应的密钥只有服务器后端知道。所以,我们只能截获加密后的内容,没有服务器端的密钥就是没法解密的。
看来,虽然没有使用 HTTP,但是湖大统一认证的密码登录还是相对安全的。

值得注意的是,统一身份认证的登录页面使用了这种比较精巧的设计,利用非对称加密、每次生成不同的密钥对等来确保我们抓到的包看不到密码(也可能是因为有这样一套 HTTP 下也相对安全的机制,信息化办才不愿意升级 HTTPS),然而大多数的登录表单并不会采用这样复杂的设计,绝大多数还是直接明文发送密码或者密码哈希。如果不使用 HTTPS,确实会有很大的安全性问题。

校园网的 AP 隔离

马上我们就可以看到「在湖大登录个人门户」是「安全的」的另一个原因:校园网的 AP 隔离。如果两个设备都连在校园网,它们彼此之间是无法访问的,并不像一般的局域网一样。正因如此,校园网内不能联机玩 Minecraft。

所以,连接湖大校园网 Wi-Fi 时是无法进行这个实验的,即使进行了 ARP 欺骗,Wireshark 也无法嗅探到局域网其他主机发送的包,只能看到一些无意义的 MDNS 查询:

wireshark局域网嗅探,wireshark,测试工具,网络

所以校园网内嗅探是不可行的。

HTTPS 下能嗅探吗?

如果主机使用 HTTPS 访问网站,我们还能看到其发送的请求吗?

仍然使用之前嗅探的实验环境,在 victim 上访问 HTTPS 网站进行登录操作,比如学习通:

可以看到这个页面是使用 HTTPS 连接的。在这个页面输入账号密码登录,用 Wireshark 能够嗅探到:

wireshark局域网嗅探,wireshark,测试工具,网络

我们知道 HTTPS 建立在服务器的 443 端口。可以看到,我们抓取到了 victim 和超星学习通服务器建立连接的 TCP 包(也就是发向 443 端口的这一系列包),但是在这之后发的包并没有使用 HTTP 协议(或者 HTTPS 协议?),而是使用了 TLSv1.2 协议。TLS 的全称是 Transport Layer Security,顾名思义是个加密协议。事实上对于这些使用 TLS 加密发送的数据包,我们查看只能看到一堆乱码。

比较诡异的是,学习通登录之后自动重定向到了一个 HTTP 页面,所以上图最后几行开始又是 HTTP 协议……不知道这垃圾平台的开发者是怎么想的。
如果筛选所有 HTTP 包,就只能看到登录成功、重定向之后 GET 的那些内容,看不到表单登陆 POST 账号密码的内容。

wireshark局域网嗅探,wireshark,测试工具,网络

综上所述,HTTPS 实际是「HTTP over TLS/SSL」,也就是用 TLS 这类加密协议传输的 HTTP,所以在 Wireshark 里捕获不到 HTTP 的请求内容,只能看到一个个加密后的 TLS 包。

本文首发于 blog.skywt.cn,点击 阅读原文。文章来源地址https://www.toymoban.com/news/detail-730671.html

到了这里,关于使用 Wireshark 进行嗅探实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络技术】【Kali Linux】Wireshark嗅探(十一)以太网Ethernet协议报文捕获及分析

    往期 Kali Linux 上的 Wireshark 嗅探实验见博客: 【网络技术】【Kali Linux】Wireshark嗅探(一)ping 和 ICMP 【网络技术】【Kali Linux】Wireshark嗅探(二)TCP 协议 【网络技术】【Kali Linux】Wireshark嗅探(三)用户数据报(UDP)协议 【网络技术】【Kali Linux】Wireshark嗅探(四)域名系统(

    2024年04月27日
    浏览(38)
  • 如何使用Wireshark进行网络流量分析?

    如何使用Wireshark进行网络流量分析。Wireshark是一款强大的网络协议分析工具,可以帮助我们深入了解网络通信和数据流动。 1. 什么是Wireshark? Wireshark是一个开源的网络协议分析工具,它可以捕获并分析网络数据包,帮助用户深入了解网络通信过程,识别潜在的问题和安全威

    2024年02月11日
    浏览(40)
  • ubuntu使用ssh进行局域网和非局域网远程连接

           当想要用一台电脑远程连接另一台linux主机电脑时,可能会遇到不少问题,可分为局域网远程连接和非局域网远程连接。当让主机A远程连接主机B时,可以将主机A看为客户端,主机B看为服务器。我们需要对主机B进行一些允许远程连接的配置。        主机A与主机

    2024年02月08日
    浏览(46)
  • 使用ENSP完成虚拟局域网(VLAN)配置 的实验

            本实验模拟企业网络场景。公司内网是一个大的局域网,二层交换机LSW1放置在一 楼,在一楼办公的部门有市场部和技术部;二层交换机LSW2放置在二楼,在二楼办公的部门有市场部和人事部。由于交换机组成的是一个广播网,交换机连接的所有主机都能互相通信,

    2023年04月25日
    浏览(57)
  • 实验:Wireshark 抓包软件的使用及MAC协议分析

    1、理解抓包软件的工作原理; 2、掌握Wireshark软件的安装和使用方法。 3、掌握MAC协议分析的技术与方法 1、安装和运行Wireshark软件; 2、使用Wireshark软件抓取网络报文; 3、选取两个以上的以太网报文进行深入对比分析。 硬件:连接互联网的PC机; 软件:Wireshark 3.6.2。 1、安

    2024年02月01日
    浏览(42)
  • 计算机网络-应用协议与数据包分析实验(使用Wireshark)

            通过本实验,熟练掌握Wireshark的操作和使用,学习对HTTP协议进行分析。         学习http协议,使用Wireshark截获http报文,对http请求报文和响应报文进行分析。 1.截获报文 打开Wireshark开始截获报文,从浏览器访问:http://kczx.hnu.edu.cn/G2S/Template/View.aspx?courseId=124

    2024年02月02日
    浏览(52)
  • 使用tcpdump和wireshark进行服务器抓包分析

    目录 前言 1.tcpdump简介 2.Wireshark简介 3.实际案例 4.代码示例 5.总结 服务器抓包分析是一种非常常见和有效的网络故障排查和性能优化手段。通过捕获服务器上的网络流量,可以帮助我们深入了解服务器与其它设备之间的通信情况,发现问题并进行相应的优化。 tcpdump是一款非

    2024年04月11日
    浏览(45)
  • 如何使用Kali Linux进行内网或局域网安全演练?

    本节课你将了解到如何使用ARP欺骗窃取局域网用户相关账户密玛,内容包括: 1、如何开启IP转发 2、怎样窃取受害用户相关账号密玛 一、如何开启IP转发 在之前的截取受害者电脑图片流量的课程中,我们也讲过了要开启IP转发以及如何开启,开启IP转发使受害者电脑能够正常

    2024年02月02日
    浏览(49)
  • 无需服务器:Android 应用中使用 P2P 技术进行局域网内设备通信

    随着局域网内设备数量的不断增加和不断演化的 IoT 技术,设备之间的互联变得越来越重要。对于许多 Android 应用程序而言,这样的互联性是必不可少的,需要使用一些技术来实现跨设备的通信。P2P 技术(点对点技术)已证明是一种非常成功的通信技术,可以实现在局域网内

    2024年02月14日
    浏览(40)
  • Wireshark 实验八:DHCP

    一、实验目的 (1)观察DHCP的运行 (2)了解DHCP相关功能及作用 (3)了解DHCP运行机制 二、实验步骤与实验问题探讨 (1) 实验步骤 为了观察DHCP的运行情况,我们将执行几个与DHCP相关的命令,并使用Wireshark捕获由于执行这些命令而交换的DHCP消息。执行以下操作: 1.首先打开W

    2023年04月25日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包