【南方科技大学】CS315 Computer Security 【Lab1 Packet Sniffing and Wireshark】

news2024/12/23 14:43:07

目录

  • Introduction
  • Background
    • TCP/IP Network Stack
      • Application Layer
      • Transport Layer
      • Internet Layer
      • Link Layer
      • Packet Sniffer
  • Getting Wireshark
  • Starting Wireshark
  • Capturing Packets
    • Test Run
  • Questions for the Lab

Introduction

实验的第一部分介绍数据包嗅探器 Wireshark。 Wireshark 是一个免费的开源网络协议分析器。它用于网络故障排除和通信协议分析。 Wireshark 实时捕获网络数据包并以人类可读的格式显示它们。它提供了许多高级功能,包括实时捕获和离线分析、三窗格数据包浏览器、分析着色规则。本文档使用Wireshark进行实验,内容包括Wireshark的安装、抓包和协议分析。
在这里插入图片描述

Background

TCP/IP Network Stack

在这里插入图片描述
在《计算机网络概论》课程中,对TCP/IP网络栈进行了介绍和研究。本背景部分简要解释了 TCP/IP 网络堆栈的概念,以帮助您更好地理解实验。 TCP/IP 是 Internet 服务最常用的网络模型。由于其最重要的协议传输控制协议 (TCP) 和互联网协议 (IP) 是该标准中定义的第一个网络协议,因此被命名为 TCP/IP。然而,它包含多个层,包括应用层、传输层、网络层和数据链路层。

Application Layer

应用层包括大多数应用程序用于提供用户服务的协议。应用层协议的示例有超文本传输​​协议 (HTTP)、安全外壳 (SSH)、文件传输协议 (FTP) 和简单邮件传输协议 (SMTP)。

Transport Layer

传输层建立进程到进程的连接,并提供独立于底层用户数据的端到端服务。为了实现进程间通信,协议引入了端口的概念。传输层协议的示例是传输控制协议(TCP)和用户数据报协议(UDP)。 TCP提供流量控制、连接建立和数据的可靠传输,而UDP是无连接传输模型。

Internet Layer

互联网层负责跨网络发送数据包。它有两个功能:1)使用IP寻址系统(IPv4和IPv6)进行主机识别; 2) 数据包从源到目的地的路由。互联网层协议的示例有互联网协议 (IP)、互联网控制消息协议 (ICMP) 和地址解析协议 (ARP)。

Link Layer

链路层定义了本地网络链路范围内的组网方式。它用于在同一链路上的两台主机之间移动数据包。链路层协议的一个常见示例是以太网。

Packet Sniffer

在这里插入图片描述

数据包嗅探器是观察计算机中网络数据包交换的基本工具。顾名思义,数据包嗅探器捕获(“嗅探”)您的计算机发送/接收的数据包;它通常还会存储和/或显示这些捕获的数据包中各种协议字段的内容。数据包嗅探器本身是被动的。它观察计算机上运行的应用程序和协议发送和接收的消息,但从不发送数据包本身。

图3显示了数据包嗅探器的结构。图 3 右侧是通常在计算机上运行的协议(在本例中为 Internet 协议)和应用程序(例如 Web 浏览器或 ftp 客户端)。图 3 中虚线矩形内所示的数据包嗅探器是计算机中常用软件的附加功能,由两部分组成。数据包捕获库接收从计算机发送或接收的每个链路层帧的副本。由更高层协议(例如 HTTP、FTP、TCP、UDP、DNS 或 IP)交换的消息最终都封装在链路层帧中,并通过以太网电缆等物理介质进行传输。在图1中,假设的物理介质是以太网,因此所有上层协议最终都封装在以太网帧中。因此,捕获所有链路层帧使您可以访问计算机中执行的所有协议和应用程序发送/接收的所有消息。

数据包嗅探器的第二个组件是数据包分析器,它显示协议消息中所有字段的内容。为此,数据包分析器必须“理解”协议交换的所有消息的结构。例如,假设我们有兴趣显示图 3 中 HTTP 协议交换的消息中的各个字段。数据包分析器了解以太网帧的格式,因此可以识别以太网帧内的 IP 数据报。它还了解 IP 数据报格式,以便能够提取 IP 数据报中的 TCP 段。最后,它了解 TCP 段结构,因此可以提取 TCP 段中包含的 HTTP 消息。最后,它理解 HTTP 协议,因此知道 HTTP 消息的第一个字节将包含字符串“GET”、“POST”或“HEAD”。

我们将在这些实验中使用 Wireshark 数据包嗅探器 [http://www.wireshark.org/],使我们能够显示协议栈不同级别的协议发送/接收的消息内容。 (从技术上讲,Wireshark 是一个数据包分析器,它使用计算机中的数据包捕获库)。 Wireshark 是一款免费的网络协议分析器,可在 Windows、Linux/Unix 和 Mac 计算机上运行。

Getting Wireshark

Kai Linux 已安装 Wireshark。您只需启动 Kali Linux VM 并在其中打开 Wireshark。 Wireshark 也可以从这里下载:https://www.wireshark.org/download.html
在这里插入图片描述

Starting Wireshark

当您运行Wireshark程序时,Wireshark图形用户界面将如图5所示。目前,该程序未捕获数据包。
在这里插入图片描述
然后,您需要选择一个接口。如果您在笔记本电脑上运行 Wireshark,则需要选择 WiFi 接口。如果您在桌面上,则需要选择正在使用的以太网接口。请注意,可能有多个接口。一般来说,您可以选择任何接口,但这并不意味着流量将流经该接口。这显示您的计算机与网络的网络接口(即物理连接)。附图6是从我的电脑上截取的。

在这里插入图片描述

选择接口后,单击“start”即可抓包,如图7所示。
在这里插入图片描述
Wireshark 界面有五个主要组件:

命令菜单是位于窗口顶部的标准下拉菜单。我们现在感兴趣的是“文件”和“捕获”菜单。文件菜单允许您保存捕获的数据包数据或打开包含先前捕获的数据包数据的文件,并退出 Wireshark 应用程序。捕获菜单允许您开始数据包捕获。

数据包列表窗口显示捕获的每个数据包的一行摘要,包括数据包编号(由 Wireshark 分配;这不是任何协议标头中包含的数据包编号)、捕获数据包的时间、数据包的来源数据包中包含的目标地址、协议类型和协议特定信息。通过单击列名称,可以根据任何这些类别对数据包列表进行排序。协议类型字段列出了发送或接收该数据包的最高级别协议,即该数据包的源或最终接收器的协议。

数据包标头详细信息窗口提供有关在数据包列表窗口中选择(突出显示)的数据包的详细信息。 (要在数据包列表窗口中选择数据包,请将光标放在数据包列表窗口中数据包的一行摘要上,然后单击鼠标左键。)。这些详细信息包括有关包含此数据包的以太网帧和 IP 数据报的信息。通过单击数据包详细信息窗口中以太网帧或 IP 数据报行左侧的向右或向下箭头,可以扩大或最小化显示的以太网和 IP 层详细信息量。如果数据包已通过 TCP 或 UDP 承载,则还将显示 TCP 或 UDP 详细信息,并且可以类似地展开或最小化。最后,还提供了有关发送或接收此数据包的最高级别协议的详细信息。

数据包内容窗口以 ASCII 和十六进制格式显示捕获帧的全部内容。

Wireshark 图形用户界面的顶部是数据包显示过滤器字段,可以在其中输入协议名称或其他信息,以便过滤数据包列表窗口中显示的信息(以及数据包标头和数据包头)。 - 内容窗口)。在下面的示例中,我们将使用数据包显示过滤器字段让 Wireshark 隐藏(不显示)除与 HTTP 消息对应的数据包之外的数据包。
在这里插入图片描述

Capturing Packets

下载并安装Wireshark后,您可以启动它并单击“接口列表”下的接口名称以开始在该接口上捕获数据包。例如,如果您想捕获无线网络上的流量,请单击您的无线接口。

Test Run

执行以下步骤:

  1. 启动Wireshark程序(选择接口并按开始抓包)。

  2. 启动您最喜欢的浏览器(Kali Linux 中的 ceweasel)。

  3. 在浏览器中,输入 www.wayne.edu 转至 Wayne State 主页。

  4. 浏览器显示 http://www.wayne.edu 页面后,通过在 Wireshark 捕获窗口中选择停止来停止 Wireshark 数据包捕获。这将导致 Wireshark 捕获窗口消失,并且主 Wireshark 窗口显示自开始数据包捕获以来捕获的所有数据包,请参见下图:
    在这里插入图片描述

  5. 颜色编码:您可能会看到以绿色、蓝色和黑色突出显示的数据包。 Wireshark 使用颜色来帮助您一目了然地识别流量类型。默认情况下,绿色是 TCP 流量,深蓝色是 DNS 流量,浅蓝色是 UDP 流量,黑色标识有问题的 TCP 数据包 — 例如,它们可能已无序传送。

  6. 您现在拥有实时数据包数据,其中包含您的计算机和其他网络实体之间交换的所有协议消息!但是,您会注意到 HTTP 消息并未清晰显示,因为数据包捕获中还包含许多其他数据包。尽管您执行的唯一操作是打开浏览器,但您的计算机中还有许多其他程序在后台通过网络进行通信。为了过滤我们想要关注的连接,我们必须使用 Wireshark 的过滤功能,在过滤字段中输入“http”,如下所示:
    在这里插入图片描述
    请注意,我们现在仅查看 HTTP 协议的数据包。然而,我们仍然没有想要关注的确切通信,因为使用 HTTP 作为过滤器的描述性不足以让我们找到与 http://www.wayne.edu 的连接。如果我们想捕获正确的数据包集,我们需要更加精确。

  7. 为了在Wireshark中进一步过滤数据包,我们需要使用更精确的过滤器。通过设置 http.hostsustech,我们将视图限制为以 www.wayne.edu 网站作为 http 主机的数据包。请注意,我们需要两个等号来执行匹配“”,而不仅仅是一个。请参阅下面的屏幕截图:
    在这里插入图片描述

  8. 现在,我们可以尝试另一个协议。我们以域名系统(DNS)协议为例。
    在这里插入图片描述

  9. 现在让我们尝试通过跟踪其中一个对话(也称为网络流)来找出这些数据包包含什么内容,选择其中一个数据包并按鼠标右键(如果您使用的是 Mac,请使用命令按钮并单击),您应该会看到类似于以下屏幕的内容:
    在这里插入图片描述
    单击“关注 UDP 流”,然后您将看到以下屏幕。
    在这里插入图片描述

  10. 如果我们关闭此窗口并将过滤器更改回“http.host==www.wayne.edu”,然后跟踪与该过滤器匹配的数据包列表中的数据包,我们应该得到类似于以下屏幕的内容。请注意,我们这次单击“Follow TCP Stream”。
    在这里插入图片描述
    在这里插入图片描述

Questions for the Lab

  1. 仔细阅读实验说明并完成上述所有任务。
  2. 如果某个数据包以黑色突出显示,这对该数据包意味着什么? 【在Wireshark中,黑色高亮的包通常表示该包有问题,例如它们可能已经乱序到达。】
  3. 列出所有传出http流量的过滤器命令是什么? 【用于列出所有出站HTTP流量的过滤器命令是 http.request.method == “GET” 或者更一般的 http。】
  4. 为什么DNS使用Follow UDP Stream,而HTTP使用Follow TCP Stream? 【DNS使用UDP作为其传输层协议,而HTTP通常使用TCP。因此,Wireshark中DNS流量跟踪使用“Follow UDP Stream”,而HTTP流量跟踪使用“Follow TCP Stream”,因为它们分别在UDP和TCP协议上运行。】
  5. 使用Wireshark捕获FTP密码。 Kali Linux VM 上安装了一个 FTP 服务器。您需要使用终端登录服务器并使用Wireshark捕获密码。 FTP 服务器的用户名是 【见校内文件】,密码是【见校内文件】。当 Wireshark 运行时,您将使用用户名和密码登录 FTP 服务器。请注意,FTP 服务器安装在本地主机上,请确保选择正确的接口进行捕获。你需要向我解释一下你是如何找到密码的以及密码包的屏幕截图。玩得开心!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2112398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024高教社杯全国大学生数学建模竞赛B题原创python代码

以下均为python代码。先给大家看看之前文章的部分思路: 接下来我们将按照题目总体分析-背景分析-各小问分析的形式来 1 总体分析 题目提供了一个电子产品生产的案例,要求参赛者建立数学模型解决企业在生产过程中的一系列决策问题。以下是对题目的总体…

Cortex-A7:简单中断处理(不可嵌套中断)机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A…

隐私计算实训营:联邦学习在垂直场景的开发实践

纵向联邦学习 纵向联邦学习的参与方拥有相同样本空间、不同特征空间的数据,通过共有样本数据进行安全联合建模,在金融、广告等领域拥有广泛的应用场景。和横向联邦学习相比,纵向联邦学习的参与方之间需要协同完成数据求交集、模型联合训练和…

[Android] [SnapdragonCamera] 单摄(横屏)阶段总结

在研高通平台的单摄项目中遇到了很多适配问题,做一下初步的总结,为今后遇到相似的问题,提供参考方案。 1. 横屏设置相机预览显示不正常 1.1问题现象 1.2分析与解决 骁龙相机默认的预览方向是“portrait”。在横屏设备上显…

人车防撞系统安全生产方案

根据《市场监管总局关于2021~2023年全国特种设备安全状况的通告》数据显示:2023年:全国共发生特种设备事故和相关事故71起,其中死亡69人。包含叉车在内的场(厂)内专用机动车辆事故29起、死亡28人,占事故总数的40.85%、死亡人数的4…

DBeaver 常用操作

文章目录 快捷键SQL模板xml文件删除表数据执行脚本文件导入脚本表数据的标题栏中显示中文注释 (推荐)数据库导航显示表名 (推荐)执行多行sql语句ER图说明以及避坑 快捷键 执行sql语句:ctrlenter sql模板(可以自定义设置):sf、swhere、scount 格式化&…

【吊打面试官系列-Redis面试题】Jedis 与 Redisson 对比有什么优缺点?

大家好,我是锋哥。今天分享关于 【Jedis 与 Redisson 对比有什么优缺点?】面试题,希望对大家有帮助; Jedis 与 Redisson 对比有什么优缺点? Jedis 是 Redis 的 Java 实现的客户端,其 API 提供了比较全面的 …

【CanMV K230】圆形检测

【CanMV K230】圆形检测 什么是圆形检测圆形检测应用领域1.工业自动化2.机器人视觉3.医学图像分析4.目标识别5.质量检测6.研究和开发 K230应用相关函数官方例程HDMI屏幕使用圆形检测 本篇内容: 什么是圆形检测圆形检测应用领域K230应用(包含相应函数及例…

线性代数|机器学习-P34神经网络和学习函数

文章目录 1. 神经网络2. 损失函数3. 距离矩阵 1. 神经网络 构建一个神经网络步骤如下: 构建一个神经网络 构造一个学习函数 F ( x , v ) F(x,v) F(x,v),x代表权重 A k , b k A_k,b_k Ak​,bk​,v代表样本特征向量,ReLu激活函数 v 1 R e L u [ F ( A …

Leetcode 剑指 Offer II 094.分割回文串 II

题目难度: 困难 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个字符串 s,请将 s 分割成一些子串&#xff0c…

Clean Minimalist GUI Pack (简约风格UI界面)

Unity 最简洁易用的 GUI 资源包。如果你在寻找资源商店上 UI 极简主义革命的发起者,你已经找到了。 这一极干净简约的 GUI 资源包是一款适合移动设备使用的游戏 UI 资源包,其中包含许多图标和元素,可用于创建具有简洁风格的完整游戏 UI。 功能: • 包括 3 种皮肤:深色、浅…

C++编程语言:基础设施:表达式(Bjarne Stroustrup)

第10章 表达式(Expressions) 目录 10.1 引言 10.2 一个桌面计算器程序 10.2.1 解析器(Parser) 10.2.2 输入(Input) 10.2.3 底层输入(Low-Level Input) 10.2.4 错误处理(Error-Handling) 10.2.5 驱动器(Driver) 10.2.6 头文件(Headers) 10.2.7 命令行参数 …

全网最火的AI技术:Rag详解

“Rag”是机器学习中的术语,通常指的是“Ragged Tensors”(不规则张量)。Ragged Tensors 是一种特殊类型的张量,允许不同的维度中的子张量有不同的长度或形状。这在处理诸如文本、序列数据等不定长的数据时特别有用。例如&#xf…

WebShell流量特征检测_哥斯拉篇

90后用菜刀,95后用蚁剑,00后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对后三款经典的webshell管理工具进行流量分析和检测。 什么是一句话木马? 1、定义 顾名思义就是执行恶意指令的木马,通过技术手…

Pytorch环境搭建时的各种问题

1 问题 1.一直soving environment,跳不出去。网络解决方案有:配置清华源,更新conda等,没起作用。2.下载完后,有3个要done的东西,最后那个exe开头的(可能吧),总是报错。网…

C++常见异常汇总(一)

文章目录 1、error: ‘__s_getMD5Sum’ is not a member2、Field has incomplete type2.1 处理方案1:使用前置声明2.1 处理方案2:使用静态变量 3、无法访问基类的public函数 1、error: ‘__s_getMD5Sum’ is not a member 错误现象: error: …

统计学习方法与实战——统计学习方法之感知机

感知机 感知机三要素分析模型策略损失函数选择 算法原始形式对偶形式 相关问题 例子iris数据集分类实战数据集查看 显示结果sklearn 实战感知机 习题解答习题2.1解题步骤反证法 习题2.2习题2.3凸壳线性可分线性可分证明凸壳不相交证明充分性:凸壳不相交\Rightarrow⇒…

轻瑜伽 1.0.2 简约实用的瑜伽练习,随时随地放松身心,完全免费

轻瑜伽是一款完全免费的瑜伽练习软件,支持安卓。界面设计简洁明了,用户可以随时随地进行瑜伽练习。提供平衡性、灵活性、晨练等多种瑜伽课程,每种课程都有详细的动作指导,适合不同水平的用户。支持离线使用,随时随地享…

关于大模型和AIGC的36条笔记和真话

行业到底有多卷? 最新统计,中国已有130多个大模型问世,在网信办备案的算法模型也超过70多家。BAT等互联网巨头悉数下场发布AI大模型,仅2023年就有超60家创业公司拿到融资,产品更是布满了基础层、模型层和应用层。新一…

论文解读 | KDD2024 演化图上的森林矩阵快速计算

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者直播讲解回放! 作者简介 孙浩鑫,复旦大学博士生,主要研究方向为大规模图上快速算法设计。 概述 森林矩阵在网络科学、观点动力学和机器学习相关应用中…