网络攻击与防御之网络流量分析实验

article/2025/11/4 23:15:11

实验一 网络流量分析

本次实验所使用到的主要软件包括:虚拟机(VMware/VirtualBox), 流量分析软件(Wireshark, Zeek或科来网络数据包分析软件),网络扫描工具nmap,浏览器(Chrome或IE)。

每个题目给出主要操作步骤、截图和分析。

一. 虚拟机环境设置与网络配置

  1. 使用VMware或VirtualBox创建Linux虚拟机(Ubuntu或 Centos,推荐Ubuntu 18.04);
    1.打开VMware,创建新的虚拟机
    在这里插入图片描述
    2.选择使用【典型】,下一步
    在这里插入图片描述
    3.选择【稍后安装操作系统】,可以自定义安装,然后下一步
    在这里插入图片描述
    4.这里选择linuxubuntu 64位,下一步
    在这里插入图片描述
    5.设置虚拟机名称和安装位置
    在这里插入图片描述
    6.设置虚拟机磁盘容量
    在这里插入图片描述
    7.点击【自定义硬件©】
    在这里插入图片描述
    8.设置内存大小和处理器数量,选择使用ISO映像文件并找到ISO文件所在路径将其引入,点击【关闭】,然后点击完成
    在这里插入图片描述
    9.点击【开启此虚拟机】开机,进行linux虚拟机安装
    在这里插入图片描述
    10.安装ubuntu,点击【install ubuntu】,当然也可以选择中文
    在这里插入图片描述
    11.选择正常安装,继续下一步
    在这里插入图片描述
    12.点击【现在安装】,开始进行安装,弹出的选框点击【继续】
    在这里插入图片描述
    13.选择地区位置,在地图上点击中国的位置,然后【继续】
    在这里插入图片描述
    14.设置用户名和登录密码,点击【继续】
    在这里插入图片描述
    15.等待安装完成即可
    在这里插入图片描述
    16.点击【重启】,完成安装
    在这里插入图片描述
    2)使用命令行对虚拟机IP地址、网关进行配置,对虚拟机的网络分别使用桥接、NAT和主机模式(host-only),描述三种网络配置的区别,以及虚拟机与主机以及互联网的连通性,并进行解释在虚拟机。
  1. 桥接模式配置,在虚拟机设置处选择桥接模式
    在这里插入图片描述
    开启虚拟机在命令行打开网络配置文件
    在这里插入图片描述
    进行ip和网关等参数配置
    在这里插入图片描述
    重新启动网卡,激活配置
    在这里插入图片描述
    Ping百度网址进行测试,能连通,桥接配置完成
    在这里插入图片描述
  2. NAT模式,虚拟机设置网络适配器选择NAT
    在这里插入图片描述
    虚拟机自动分配ip地址和网关,不需做过多操作,且能连接互联网
    在这里插入图片描述
  3. 主机(host-only)模式
    虚拟机网络适配器设置为仅主机模式
    在这里插入图片描述
    查看物理主机的网络配置信息
    在这里插入图片描述
    然后配置虚拟机ip地址,网关和DNS
    在这里插入图片描述
    检验是否能与主机通信,ping 主机ip地址能ping通
    在这里插入图片描述
    在物理主机上ping虚拟机检验能否ping通
    在这里插入图片描述
    双方都能ping通,但是不能连接外网,ping 百度不能ping通
    在这里插入图片描述
    三种模式的区别:
    桥接:
    桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚网卡在拓扑图上处于同等地位,主机和虚拟机在同一网段内,虚拟交换机相当于一台现实网络中的交换机,物理网卡和虚拟网卡的子网掩码、网关、DNS等参数相同。在桥接模式下,虚拟机和主机和互联网可以互相连通。
    NAT:
    在NAT网络中,使用VMnet8虚拟网卡,主机和是哪个的虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信,VMnet8虚拟网卡的作用仅限于和VMnet8网段进行通信,它不给VMnet8网段提供路由功能,所以虚拟机虚拟一个NAT服务器,使虚拟网卡可以连接到Internet。在这种情况下,我们就可以使用端口映射功能,让访问主机80端口的请求映射到虚拟机的80端口上。在NAT地址转换模式下,宿主计算机相当于一台开启了DHCP功能的路由器,而虚拟机则是内网中的一台真实主机,通过路由器(宿主计算机)DHCP动态获得网络参数。因此在NAT模式下,虚拟机可以访问外部网络,反之则不行,因为虚拟机属于内网,虚拟机可与主机和互联网连通
    仅主机(host-only):
    在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是 Host-Only网络没有NAT服务,相当于虚拟机通过双绞线和宿主计算机直连,而宿主计算机不提供任何路由服务,所以虚拟网络不能连接到互联网,虚拟机只能与主机进行相互通信,但是可以设置主机的网络共享来实现虚拟机连接互联网。

二、 流量分析软件使用

  1. 使用Wireshark还原通过HTTP下载的文件。
    1.开启wireshark抓包,找一个http的网站,选择下载一张图片,这里推荐使用搜狗浏览器或360极速浏览器
    在这里插入图片描述
    2.在wireshark抓到的数据报中筛选过滤,找到下载图片的数据包进行解析
    在这里插入图片描述
    3.找到下载的图片,然后追踪TCP流
    在这里插入图片描述
    可看到图片的一些信息和图片的ASCII码
    在这里插入图片描述
    4.然后将其转换成原始数据
    在这里插入图片描述
    5.将数据文件另存为tupian.jpg文件
    在这里插入图片描述
    可以看到此时图片格式不正确文件打不开
    在这里插入图片描述
    6.然后将图片文件拖到WinHex中观察图片的十六进制代码,因为jpg格式的图片的文件开头为FFD8,结尾为FFD9,所以修改文件代码,仅留下文件中FFD8和FFD9中间部分数据
    在这里插入图片描述
    在这里插入图片描述
    7.修改完成后将文件另存为tupian22.jpg,此时就可以打开图片文件了,通过http下载的文件还原成功
    在这里插入图片描述
  2. 分析HTTP请求关键字段,包括IP, 端口,URL、User agent,以及响应码,回答通过User agent字段如何判断操作系统
    IP分析:
    在这里插入图片描述
    端口分析:源端口:22760, 目的端口:80
    在这里插入图片描述
    URL:
    在这里插入图片描述
    响应码:200 OK
    在这里插入图片描述
    User agent:
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0
    在这里插入图片描述
    从User Agent中的(Windows NT 10.0; WOW64)可以得出,操作系统为64位的Windows10系统

3)分别使用浏览器和流量分析软件(Wireshark)提取使用HTTPS网站的证书文件,分析该证书关键信息,包括颁发者、颁发时间、密钥信息等。
1.首先打开wireshark开始抓包
2.打开浏览器—>打开百度网页,随便搜索浏览
3.在wireshark中筛选出TLS数据包,找到含有certificate信息的数据包
在这里插入图片描述
4.查看数据包信息,展开Transport Layer Security,再找到Handshake Protocol:certificate
在这里插入图片描述
5.将certificate展开,可看到证书信息,但是这样显示的是字节流,并不能看出证书信息
在这里插入图片描述
6.选中certificate信息点击鼠标右键,选择【导出分组字节流】,输入文件名,后缀是cer,保存类型为All Files。
在这里插入图片描述
7.打开保存的证书文件,即可看到https证书详细信息
在这里插入图片描述
从详细信息中可以看到:
颁发者为Microsoft RSA TLS CA 02
证书有效期为
在这里插入图片描述
公钥RSA(2048 Bits)
在这里插入图片描述
版本序列号等
在这里插入图片描述

三、Zeek使用

  1. 在Linux虚拟机安装Zeek,在命令行进行数据包实时抓取。

1.进入Zeek官网,选择下载Linux Binaries
在这里插入图片描述
2.选择操作系统版本为ubuntu,然后点击添加软件源手动安装
在这里插入图片描述
3.按 Ctrl+Alt+T 打开命令行终端,输入以下4条命令进行安装

echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_20.04/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_20.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null
sudo apt update
sudo apt install zeek-lts

4.安装完成后使用whereis zeek可查看Zeek安装位置
在这里插入图片描述
5.使用cd /opt/zeek/etc/ 命令进入该目录下,使用ls命令查看目录中文件
在这里插入图片描述
6.使用vi node.cfg 命令编辑配置文件,设置检测设备的正确接口interface,设置要监视的正确网卡,我的网卡是ens33,完成之后保存并退出
在这里插入图片描述
在这里插入图片描述
7.使用vi networks.cfg命令编辑配置文件,注释掉默认设置,然后添加监测环境的本地网络,添加完成后保存退出

本地网络IP地址
在这里插入图片描述
编辑配置文件
在这里插入图片描述
在这里插入图片描述
8.现在使用zeekctl启动Zeek,但是看到还启动不了
在这里插入图片描述
原因是安装zeek的时候,并未将bin目录放到环境中,因此还需要设置环境变量,将/opt/zeek/bin路径放到环境中

9.添加环境变量
9.1 使用export PATH=$PATH:/opt/zeek/bin 命令添加环境变量:在~/.bashrc文件中添加路径,如果是普通用户下则仅对当前用户,如果是在root用户下则是对所有用户
9.2 source ~/.bashrc 使其设置生效
9.3 echo $PATH 打印环境变量中的路径,如果出现zeek地址则添加成功
在这里插入图片描述
说明:如果不是root用户,zeek文件夹的操作权限需要交给用户,使用sudo chmod -R 777 /opt/zeek 命令修改zeek文件夹的用户权限


10.现在使用zeekctl命令可以开启ZeekControl终端了,由于是第一次使用,还需要使用命令 install对ZeekControl配置进行初始化安装,然后用start命令启动Zeek实例
在这里插入图片描述
说明:zeek启动之后会一直进行下去,可以使用stop命令来停止运行

2)分析Zeek产生的log日志,说明有哪些log以及conn.log每个字段的含义。
1.使用命令cd /opt/zeek/logs/current进入logs文件夹下,用ls命令查看有哪些log日志文件
在这里插入图片描述
可以看到有http,dhcp,ntp,srderr,conn,stdout,dns等log文件,分别记录了各种数据包流量的内容

其中conn.log中每个字段的含义
Ts:time:Timestamp 时间戳
Uid:string:Unique ID of Connection 连接的唯一ID
Id.orig_h: addr:Originating endpoint’s IP address 发起端的IP地址
Id.orig_p: port:Originating endpoint’s TCP/UDP port(or ICMP code) 发起端点的
TCP/UDP端口
Id.resp_h: addr:Responding endpoint’s IP address 响应端的IP地址
Id.resp_p: port:Responding endpoint’s TCP/UDP port(or ICMP code) 响应端点的TCP/UDP端口
Proto: enum:Transport layer protocol of connection数据包传输层连接协议TCP,UDP
Service: string:Dynamically detected application protocol 动态检测应用程序协议
Duration: interval:看到最后一个数据包的时间 - 看到第一个数据包的时间,即数据包发送的时间
Orig_bytes: count:如果是TCP,则从序列号加载字节
Resp_bytes: count:响应者有效载荷字节,如果是TCP,则来自序列号
Conn_state: string:Connection state 连接状态
Local_orig: bool:如果conn来自本地则为T,如果远程则为F。如果site::local\u nets为空,,则始终取消设置
Missed_bytes: count:连接间隙中缺少的字节数
History: string: 连接状态历史记录
Orig_pkts: count: 原始数据包数
Orig_ip_bytes: count:原始IP字节数(通过IP总长度标头字段)
Resp_pkts: count: 响应数据包数
Resp_ip_bytes: count: 响应IP字节数(通过IP总长度标头字段)
Tunnel_parents: set: 如果已隧道化,则封装父级的连接UID

注:当host是本机,目标主机是虚拟机,也可让虚拟机扫描host。不能使用虚拟机扫描非宿主机机器。


http://chatgpt.dhexx.cn/article/3uGr1U3J.shtml

相关文章

网络流量分析之流量采集到流量还原

网络流量贯穿业务流转的各个环节,从我们个人PC、手机,到IDC数据中心、WEB和APP应用等都需要通过网络流量完成数据交互。因此,根据"只要有攻击就会有流量产生"这样的朴素道理,无论是网络层的防DDoS、主机层的防入侵还是应…

网络流量分析系统的价值

一、网络流量分析技术介绍 1.1什么是网络流量分析? 网络流量分析是记录和分析网络流量以出于性能、安全性、网络操作、管理和排障为目的分析网络流量的过程。它是使用自动技术检查网络流量中的详细级别细节和统计信息的过程。 1.2网络流量分析技术的作用 网络流量分…

网络流量分析技术

网络流量分析技术 实验目的实验内容实验文件中涉及的相关协议攻击与防御方法1.攻击:2.应对的防御方法: 实验目的 利用Wireshark网络分析工具分析关于“极光攻击”的实验文件,分析实验文件中涉及的相关协议以及攻击与防御方法等内容。 实验内…

网络流量分析详解(包含OSI七层模型、TCP协议及Wireshark工具用法)

网络流量分析 Network Traffic Analysis(NTA) 这个系列讲的是整个网络流量分析流程,其中包含TCP协议、HTTP协议详解和Wireshark、Tcpdump的详细用法,现在只完成了其中一部分内容,每周更新,感兴趣的可以持续关注一下~ 内容比较杂…

Unity引擎基础补充

Unity引擎基础补充 本博客将对之前的Unity脚本,3D数学基础博客内容做一定的补充。所以部分知识点可能并不全。 使用Unity的API,我们要清楚各个参数其代表的含义。 文章目录 Unity引擎基础补充3D数学基础Math和Mathf的区别Lerp 3D数学向量向量模长&…

Unity引擎

------ Oracle中文开发者社区 ------ 如果你想要学习编程,关注本博客,持续获得技术支持,持续获得技术咨询 java开发企业官方账号 Oracle中国官方账号 Java中国管理部 全网粉丝30万 华为云享专家 阿里专家博主 CSDN内容合伙人 CSDN原力计划作者 51CTO专家博主 CSDN博客V账号 …

unity教程之Unity引擎

中国传媒大学老师所主讲的,所用到的unity版本为2018版unity教程之用到的资源也都提供了下载链接,视频的时长大部分控制在20-40分钟之内,此课程讲解了地形,脚本,动画,图形渲染,物理系统&#xff…

Havok物理引擎与Unity3D的结合

背景  在重度手游的研发过程当中,游戏中的车辆模拟,场景互动,特效展示等功能很多时候需要物理引擎的介入,以提供丰富的交互体验。目前3D手游的开发主要工具是使用Unity3D引擎,于是,如何在Unity3D的开发过…

unity物理引擎介绍

早期的游戏并没有强调物理引擎的应用,当时无论是哪一种游戏,都是用极为简单的计算方式做出相应的运算就算完成物理表现,如超级玛丽和音速小子等游戏。 较为常见的物理处理是在跳跃之后再次落到地上,并没有特别注重物理表现效果。…

Unity3d物理引擎

一、定义 物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有一个立方体和一个球体,球体在空中,立方体在地面倾斜放置,在空中的球体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理…

Unity和UE4两大游戏引擎,你该如何选择?

目录 游戏引擎 2 ——> 难易区别 编程语言 3 ——> 游戏产品 UE4制作的游戏产品 Unity制作的游戏产品 产品类型 5 ——> 资源商店 6 ——> 人才需求 平均薪资 总结 游戏引擎 Unity和UE4都是游戏引擎,所谓游戏引擎就是集成了复杂功能的游戏…

赞美之外,Unity引擎3D引擎存在什么弊病?

由于手游业界各大公司对该引擎的认可和追逐,自2013年开始,Unity大会成为了行业内最火爆的大会之一。在信息丰富的网络上,我们可以看到满屏的Unity教程和优点的介绍,但这款引擎是否存在着弊病呢?带着这个问题,我们采访…

Unity3d是目前主流的游戏开发引擎

Unity3d是目前主流的游戏开发引擎,它提供了一个整合的编辑器、跨平台发布、地形编辑、着色器,脚本,网络,物理,版本控制等特性。Unity3d可以开发桌面版、web版、手机版的游戏,是一个非常理想的三维游戏开发平…

Unity3D 游戏引擎之构建简单的游戏世界(三)

Unity3D 游戏引擎之构建简单的游戏世界 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/473 创建游戏地面 创建一个新的游戏工程名称命名为FirstGame,场景…

Unity3d 引擎原理详细介绍

体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。 Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个平台.Unity3D由游戏引擎和…

Unity3D游戏引擎最详尽基础教程

关注公众号 风色年代(itfantasycc) 200G Unity资料合集送上~ 转自:http://blog.sina.com.cn/s/blog_7c336a8301013son.html 我一直向所有想做游戏的朋友推荐Unity3D,为什么呢?首先是因为专业,Unity3D非常强…

30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】

前言 🎬【全网首发】 | 30分钟了解所有组件,132个Unity 游戏引擎组件速通!一、Mesh 网格1.Mesh Filter2.Mesh Renderer3.Skinned Mesh Renderer4.Text Mesh5.TextMeshPro-Text 二、Effects 特效组件1.Particle System2.Visual Effect3.Trail …

Unity 3D 物理引擎简介 || Unity 3D 物理材质|| Unity 3D 力(AddForce)

Unity 3D 物理引擎简介 早期的游戏并没有强调物理引擎的应用,当时无论是哪一种游戏,都是用极为简单的计算方式做出相应的运算就算完成物理表现,如超级玛丽和音速小子等游戏。 较为常见的物理处理是在跳跃之后再次落到地上,并没有…

Unity游戏引擎介绍及相关学习资源

Unity(游戏引擎)一般指Unity3D 官网: https://unity.com/ 手册:https://docs.unity3d.com/Manual/ Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的…

垃圾收集器及算法

一、垃圾收集算法 1.分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法,只是根据对象存货周期的不同将内存分为几块。一般java堆分为新生代和老年代,可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量的…