网络协议与攻击模拟_01winshark工具简介
一、TCP/IP协议簇
- 网络接口层(没有特定的协议)
- 物理层:PPPOE宽带拨号(应用场景:宽带拨号,运营商切网过来没有固定IP就需要拨号,家庭带宽一般都采用的是拨号方式)
- 数据链路层
- 网络层:IP(v4/v6) ARP(地址解析协议) RARP 、ICMP(internet控制报文协议) IGMP
- 传输层:TCP(传输控制协议) UDP(用户数据报协议)
- 应用层:基于传输层协议的端口,总共0-65535 固定协议端口号0-1023 http-80,https-443
- DHCP
- DNS
- HTTP
- HTTPS
- FTP
- SMTP
- POP3
- IMAP
- 流量抓取工具(winshark)
二、winshark工具简介
1、混杂 and 非混杂
winshark是对主机网卡上的数据流量进行抓取,可以对网卡进行混杂模式和非混杂模式的抓包。
- 混杂模式:不管目的是否是自己,都接收。
数据镜像:主机A正常与主机B通信,做数据镜像端口,将F0/0接口镜像到F0/2接口,如果主机C开启混杂模式,就能抓取澳主机A发往主机B的链路流量,反之如果主机C是非混杂模式就会将丢弃该数据。
- 非混杂模式:默认情况下,主机的网卡处于此模式,不会接收目的非自己的数据

2、winshark软件界面介绍
(1)菜单栏

(2)网卡
winshark可以检测到本地的所有网卡

(3)混杂模式
在菜单栏-捕获->选项进入可以设置混杂模式,默认是开启的。

3、抓取数据
(1)流量

- No 抓取报文的序号
- time:时间,抓取这个流量耗费的时间
- Source:源IP地址
- Destination:目标IP地址
- Protocol:协议
- length:数据报文的长度
- Info:简要信息
(2)数据包
看报文详细内容,通过TCP/IP 五层来展现的。
- Frame56:物理层封装的信息(很少去看)
- Ethernet II :二层封装信息 源MAC 目的MAC Type,下面会显示十六进制的消息

- Internet Protocol version 4:网络层数据
- User Datagram protocol:传输层数据
- Domain Name System(response):应用层数据
(3)追踪流(用的比较多)
追踪流:
Wireshark的跟踪数据流功能可以将捕获的数据包排好顺序使之容易查看,右键捕获的数据包并选择追踪流,假设选择HTTP流,HTTP流就会在一个单独的窗口中显示。
我们可以注意到窗口中的文字以两种颜色显示,红色用来标明从源地址前往目标地址的流量,而蓝色用来区分从目标地址到源地址的流量。以访问www.xiaodi8.com为例。



其中黑底红字的报文是错误报文,根据winshark菜单栏视图->着色规则可知,是Bad TCP

(4)自定义显示的列
我们想快速看报文的某些字段信息,就可以设置应用为列。例如想看报文的Type类型,可以直接右击Ethernet II里面的Type,选择应用为列。


(5)自定义Time列
菜单栏视图->日期时间格式下有很多显示时间的格式,我们可以根据场景来选择显示时间的格式。例如当我们发现某个报文有问题时,可以设置时间格式为日期和时间从而追溯到这个报文是在哪个时间点发的。
- 日期和时间


- 自从上一显示分组经过的秒数

- 自捕获开始经过的秒数:

- 设置参考时间
针对某一个报文也可以设置参考时间,选中报文,右击,设置/取消设置时间参考,下面报文Time显示的就是针对上面报文的间隔时间。

(6)、名称解析
默认显示Source和Destination都是IP地址的方式,可以设置成名称的显示方式
可以看到MAC地址默认是做了名称解析的,一个MAC地址前24位由厂商来代替,后面24位是厂商的序列号。


勾选网络地址和端口的名称显示后,抓包数据信息就会显示域名和端口,443就直接解析成了https


4、过滤器
(1)两种过滤器
- 捕获过滤器:在抓包之前先进行过滤(只抓取某种类型的数据包)


- 显示过滤器:抓包前抓包后都可以进行过滤,但是不会影响抓取的包

(2)过滤器语法
A 捕获过滤器语法
- 类型:host net port
- 方向:src dst
- 协议:ether ip tcp udp http ftp……
- 逻辑运算:&&与、 || 或 、!非
- 举个栗子:
- 抓取源地址是本机且目的端口是80的数据流量
src host 192.168.2.16 && dst port 80 - 抓取IP地址为192.168.2.16 或者192.168.2.1
host 192.168.2.16 || 192.168.2.1 - 不抓广播报文
! broadcast - 抓取源IP为192.168.2.16或者192.168.2.0/24,目的TCP端口号在200到10000之间,并且目的位于47.0.0.0/8的数据流量。
(src host 192.168.2.16 || src net 192.168.18.0/24) && (dst portrange 200-10000 && dst net 47.0.0.0/8)
- 抓取源地址是本机且目的端口是80的数据流量
B 显示过滤器语法
- 比较操作符:== (eq) !=(neq) >大于(gt) <小于(lt) >=大于等于(ge) <=小于等于(le)
- IP地址过滤:ip.addr ip.host ip.dst
- 端口过滤:tcp.port udp.port tcp.dstport tcp.flag.syn tcp.flag.ack
- 协议过滤:arp ip icmp udp tcp http
- 举个栗子
- 显示源IP为192.168.2.16并且tcp端口为443
ip.src ==192.168.2.16 and tcp.port==443 - 显示源不为192.168.2.16或者目的不为47.75.212.155的
ip.src!=192.168.2.16 or ip.dst!=47.75.212.155
- 显示源IP为192.168.2.16并且tcp端口为443
三、案例
1、实验要求
开启winshark抓包,抓取所有的报文
过滤DNS的报文,找到对应的域名解析报文
根据DNS返回的IP地址,找到主机与服务器的TCP交互过程
找到客户机请求服务器的HTTP报文, 追踪HTTP流情况
2、实验过程
(1)关掉已打开的网页
(2)刷新DNS缓存

(3)精确查找
过滤DNS,Ctrl+N,输入域名精确查找

(4)定位请求/响应报文


(5)找目标IP地址
响应报文Answer中会显示目标IP地址为47.75.212.155
(6)追踪流分析
如果访问的是https的网站,报文中protocol字段就是TLS,追踪流追踪到的就是加密的内容,看不到网页响应源码。

相关文章:
网络协议与攻击模拟_01winshark工具简介
一、TCP/IP协议簇 网络接口层(没有特定的协议) 物理层:PPPOE宽带拨号(应用场景:宽带拨号,运营商切网过来没有固定IP就需要拨号,家庭带宽一般都采用的是拨号方式)数据链路层网络层…...
【linux学习笔记】网络
目录 【linux学习笔记】网络检查、监测网络ping-向网络主机发送特殊数据包traceroute-跟踪网络数据包的传输路径netstat-检查网络设置及相关统计数据 通过网络传输文件ftp 【linux学习笔记】网络 检查、监测网络 ping-向网络主机发送特殊数据包 最基本的网络连接命令就是pin…...
JUC-线程中断机制和LockSupport
线程中断机制 概念 java提供了一种用于停止线程的协商机制-中断。称为中断标识协商机制。 常用API public void interrupt() 仅仅让线程的中断标志位设置为true。不进行其他操作。public boolean isInterrupted() 获取中断标志位的状态。public static boolean interrupted…...
哈希表与哈希算法(Python系列30)
在讲哈希表数据结构和哈希算法之前,我想先刨析一下数组和python中的列表 首先来讲一下数组,我想在这提出一个疑问: 为什么数组通过索引查询数据的时间复杂度为O(1),也就是不管数组有多大,算法的执行时间都是不变的。…...
『 C++ 』AVL树详解 ( 万字 )
🦈STL容器类型 在STL的容器中,分为几种容器: 序列式容器(Sequence Containers): 这些容器以线性顺序存储元素,保留了元素的插入顺序。 支持随机访问,因此可以使用索引或迭代器快速访问任何位置的元素。 主要的序列式…...
Python下载安装pip方法与步骤_pip国内镜像
前提:下载安装好 python 打开命令提示符winR->cmd(不需要进入 python,直接在终端输入指令执行即可,也可以再 pycharm 终端执行命令)加入要安装ipython,需要执行以下命令: pip install **<…...
自动化测试框架pytest系列之基础概念介绍(一)
如果你要打算学习自动化测试 ,无论是web自动化、app自动化还是接口自动化 ,在学习的道路上,你几乎会遇到pytest这个测试框架,因为自动化编写没有测试框架,根本玩不了 。 如果你已经是一位自动化测试人员 ,…...
编码技巧:如何在Golang中高效解析和生成XML
编码技巧:如何在Golang中高效解析和生成XML 引言Golang中的XML基础解析XML文件生成XML文件错误处理和调试高级技巧和最佳实践总结 引言 在当今数据驱动的编程世界中,有效地处理各种数据格式是每个开发人员必备的技能之一。其中,XMLÿ…...
24校招,帆书测试开发工程师一面
前言 樊高读书是帆书的前身,我之前还看过他们的书,缘分闭环了 时间:25min 平台:飞书视频面试 过程 自我介绍为啥从后端转测试?通过实习经历,对测试有什么了解?讲一下游戏测试经历负责什么业…...
Java 方法以及在计算机内部的调用问题
修饰符 返回值类型 方法名( 形参列表 ){ 方法体代码(需要执行的功能代码) return 返回值; } 方法在内种没有先后顺序,但是不能把一个方法定义在另一个方法中。 方法的返回值类型写void(无返回申明)时,方法内不能使用return返回数…...
【算法与数据结构】343、LeetCode整数拆分
文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:博主做这道题的时候一直在思考,如何找到 k k k个正整数, k k k究竟为多少合适。…...
中级Python面试问题
文章目录 专栏导读1、xrange 和 range 函数有什么区别?2、什么是字典理解?举个例子3、元组理解吗?如果是,怎么做,如果不是,为什么?4、 列表和元组的区别?5、浅拷贝和深拷贝有什么区别…...
Lede(OpenWrt)安装和双宽带叠加
文章目录 一、Lede介绍1. 简介2. 相关网站 二、Lede安装1. 编译环境2. SHELL编译步骤3. 腾讯云自动化助手 三、Lede配置1. 电信接口配置2. 联通接口配置3. 多线多播配置4. 网速测试效果 一、Lede介绍 1. 简介 LEDE是一个专为路由器和嵌入式设备设计的自由和开源的操作系统。 …...
HTML+JS + layer.js +qrcode.min.js 实现二维码弹窗
HTMLJSVUE qrcode.min.js 实现二维码生成 引入qrcode.js创建二维码显示位置编写JS 引入qrcode.js <script type"text/javascript" src"https://static.runoob.com/assets/qrcode/qrcode.min.js"></script>创建二维码显示位置 id 作为 定位标识…...
leetcode 142 环形链表II
题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使…...
电阻表示方法和电路应用
电阻 电阻的表示方法 直标法 直标法是将电阻器的类别及主要技术参数的数值直接标注在电阻器表面上 通常用3位阿拉伯数字来标注片状电阻的阻值,其中第1位数代表阻值的第1位有效数;第2位数代表阻值的第二位有效数字;第3位数代表阻值倍率&…...
论文笔记(三十九)Learning Human-to-Robot Handovers from Point Clouds
Learning Human-to-Robot Handovers from Point Clouds 文章概括摘要1. 介绍2. 相关工作3. 背景3.1. 强化学习3.2. 移交模拟基准 4. 方法4.1. Handover Environment4.2. 感知4.3. 基于视觉的控制4.4. 师生两阶段培训 (Two-Stage Teacher-Student Training) 5. 实验5.1. 模拟评估…...
浅学Linux之旅 day2 Linux系统及系统安装介绍
答案在时间,耐心是生活的关键 ——24.1.15 一、Linux系统介绍 林纳斯.托瓦兹在1991年开发了Linux内核(开源免费) Linux系统组成 Linux内核 系统库 系统程序 Linux内核和Linux发行版 Linux内核 -> 开源免费,林纳斯开发 Linux发行…...
探索未来餐饮:构建创新连锁餐饮系统的技术之旅
随着数字化时代的发展,连锁餐饮系统的设计和开发不再仅仅关乎订单处理,更是一场充满技术创新的冒险。在本文中,我们将深入研究连锁餐饮系统的技术实现,带你探索未来餐饮业的数字化美食之旅。 1. 构建强大的后端服务 在设计连锁…...
Unity组件开发--AB包打包工具
1.项目工程路径下创建文件夹:ABundles 2.AB包打包脚本: using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.SceneManagement;public class AssetBundle…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
