政府网站系统安全建设方案/教育机构在线咨询
在 OSCP 考试和渗透测试中,网络数据分析是至关重要的技能。无论是嗅探明文密码、分析恶意流量,还是溯源攻击,抓包工具都是我们的得力助手。
本文将介绍 OSI 七层网络模型 及其在网络分析中的作用,并详细讲解 Wireshark 和 tcpdump 这两款常见的抓包工具,帮助你在渗透测试中高效分析流量数据。
一、OSI 七层模型
All People Seem To Need Data Processing!
OSI(Open Systems Interconnection)七层模型是计算机网络的标准框架,每一层都承担不同的功能。在分析网络流量时,理解这个模型可以帮助我们更快地定位问题、识别漏洞。
层级 | 功能 | 示例协议/技术 | 作用 |
---|---|---|---|
应用层(Application) | 处理应用程序请求 | HTTP、SMTP、FTP、DNS | 处理用户数据 |
表示层(Presentation) | 数据格式转换 | WMV、JPEG、TLS/SSL | 数据加密、解码 |
会话层(Session) | 管理会话连接 | NetBIOS、RPC | 维持主机间通信 |
传输层(Transport) | 可靠/无连接传输 | TCP、UDP | 传输数据流 |
网络层(Network) | IP 地址、路由 | IPv4、IPv6、ICMP | 逻辑寻址、路由转发 |
数据链路层(Data Link) | MAC 地址、交换 | 以太网、PPP、ARP | 处理物理地址 |
物理层(Physical) | 传输比特流 | 光纤、网线、Wi-Fi | 传输电信号、无线信号 |
📌 分析网络流量时,关注重点:
- 应用层(Application):寻找 HTTP 请求、DNS 查询、SMTP 邮件通信。
- 传输层(Transport):分析 TCP 端口扫描、UDP 数据包。
- 网络层(Network):查看 IP 地址,识别攻击来源。
- 数据链路层(Data Link):过滤 MAC 地址,溯源攻击设备。
二、Wireshark:图形化抓包分析工具
Wireshark 是一款强大的 GUI(图形界面)网络协议分析工具,支持实时抓包和回溯分析。它可以解析几乎所有常见的协议,并且能够直观地展示网络流量数据。
1. 追踪 TCP/UDP 流量
在分析网络流量时,我们通常需要关注特定的 TCP/UDP 连接。Wireshark 提供了“Follow Stream”功能,可以直观地查看完整的会话数据。
🔹 步骤:
- 在 Wireshark 里打开
.pcap
抓包文件(或者直接在网络接口上实时抓包)。 - 右键点击感兴趣的数据包,选择 “Follow TCP Stream” 或 “Follow UDP Stream”。
- 这样就能看到完整的 TCP/UDP 会话数据,比如明文 HTTP 请求、Telnet/FTP 传输的密码等。
2. Wireshark 数据包结构解析
在 Wireshark 里,每个网络数据包都可以分为多个协议层级,每一层都承载着不同的信息。
📌 数据包结构分解(从底层到高层)
(1)Frame - 物理层
- 物理层数据,包括帧编号和接收的数据大小(字节数)。
- 主要用于分析数据包的完整性和丢失情况。
(2)Ethernet II - 数据链路层
- 这里可以看到 MAC 地址信息:
- 源 MAC 地址(Source MAC)
- 目的 MAC 地址(Destination MAC)
- 还可以查看传输介质类型,如以太网(Ethernet)。
(3)IPv4 / IPv6 - 网络层
- 主要关注IP 地址:
- 源 IP(Source IP):谁发出的数据?
- 目标 IP(Destination IP):数据发往哪里?
- 这层数据对溯源攻击、找出目标服务器的真实 IP 很有用。
(4)TCP/UDP - 传输层
- 关注端口号和会话状态:
- 源端口 & 目标端口(Port)
- TCP 三次握手(SYN/ACK)
- UDP 无连接特性
(5)应用层(HTTP / DNS / FTP / SSH 等)
- 这里是应用层协议的数据,比如:
- HTTP:可以看到
GET /index.html
这样的请求,甚至可能获取到明文密码。 - DNS:可以解析域名查询请求,找出目标主机访问过的地址。
- FTP/Telnet:这些老协议的用户名密码可能是明文传输的!
- SMTP/POP3/IMAP:邮件传输协议,可能泄露敏感的邮件内容。
- HTTP:可以看到
📌 实战技巧:
- 过滤 HTTP 请求:
http.request.method == "GET"
- 过滤 DNS 查询:
dns.qry.name contains "target.com"
- 查找 FTP/Telnet 明文密码:
ftp || telnet
三、tcpdump:终端抓包分析工具
tcpdump 是一个轻量级的命令行工具,适用于服务器环境(如 SSH 远程服务器)进行实时抓包和流量分析。
1. 读取 .pcap
文件
如果你已经有了 .pcap
抓包文件,可以用 tcpdump 查看数据包:
tcpdump -r password_cracking_filtered.pcap
2. 统计流量中的源 IP
想知道抓包文件里有哪些源 IP?可以用 awk
统计并排序:
tcpdump -n -r password_cracking_filtered.pcap | awk -F" " '{print $3 }' | sort | uniq -c | head
这条命令会:
- 解析
.pcap
文件里的数据包 - 提取第 3 列(通常是源 IP 地址)
- 统计出现次数,并排序
- 显示最常见的前 10 个 IP 地址
📌 实战应用:用于找出攻击来源、识别哪些 IP 发起了最多的连接请求。
3. 过滤特定 IP 的数据包
如果只想查看某个 IP 发送的流量,可以用 src host
过滤:
tcpdump -n src host 172.16.40.10 -r password_cracking_filtered.pcap
如果想看目标是这个 IP 的数据包,用 dst host
过滤:
tcpdump -n dst host 172.16.40.10 -r password_cracking_filtered.pcap
📌 实战应用:用于分析某台目标机的通信,看看它都在和哪些 IP 交互。
4. 过滤特定端口的流量
有时候,我们只想查看某个端口(如 Web 服务器 port 80/81
)的数据包,可以这样做:
tcpdump -n port 81 -r password_cracking_filtered.pcap
📌 实战应用:可以用来分析 Web 服务器的 HTTP 流量,看看有没有可利用的漏洞,比如 SQL 注入、未授权访问等。
5. 查看完整数据包内容
如果想看到数据包的完整 HEX 和 ASCII 内容,可以加 -X
参数:
tcpdump -nX -r password_cracking_filtered.pcap
📌 实战应用:
- 查找明文密码(如 FTP/Telnet 登录数据)
- 分析恶意代码(如嵌入在 HTTP 请求中的恶意 JS)
- 检查隐藏的数据传输(如 DNS 隧道、加密通信)
四、Wireshark vs tcpdump
功能 | Wireshark 🚀 | tcpdump 🖥️ |
---|---|---|
是否有 GUI | ✅ 是 | ❌ 否(命令行) |
实时抓包 | ✅ 是 | ✅ 是 |
离线分析 .pcap | ✅ 是 | ✅ 是 |
协议解析 | ✅ 可视化解析 | ✅ 只能手动解析 |
适合环境 | 桌面端、GUI 分析 | 服务器、终端 SSH |
📌 总结建议:
- Wireshark 适合 GUI 分析,查看
.pcap
文件时更直观。 - tcpdump 适合服务器环境,在远程主机上抓包更高效。
掌握这两款工具,可以让你的渗透测试能力更上一层楼!🔥
相关文章:

OSCP 渗透测试:网络抓包工具的使用指南
在 OSCP 考试和渗透测试中,网络数据分析是至关重要的技能。无论是嗅探明文密码、分析恶意流量,还是溯源攻击,抓包工具都是我们的得力助手。 本文将介绍 OSI 七层网络模型 及其在网络分析中的作用,并详细讲解 Wireshark 和 tcpdum…...

Android 进程间通信
什么是IPC? Android 进程间通信(IPC,Inter-Process Communication)是Android操作系统中不同进程间交换数据和资源的一种机制。由于Android是多任务操作系统,每个应用通常运行在自己的进程中,以提高安全性和…...

Kubernetes学习之通过Service访问Pod
一、基础概述 1.当通过deployment等controller动态创建和销毁pod使得每个pod都有自己的ip地址,当controller用新的pod替代发生故障的pod时,新的pod会分配到新的ip地址,那么客户端如何稳定的找到并访问pod提供的服务。 2.创建service service从…...

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.18 对象数组:在NumPy中存储Python对象
2.18 对象数组:在NumPy中存储Python对象 目录 #mermaid-svg-shERrGOBuM2rBzeB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-shERrGOBuM2rBzeB .error-icon{fill:#552222;}#mermaid-svg-shERrGOBuM2rB…...

Web - CSS3基础语法与盒模型
概述 这篇文章是关于 Web 前端 CSS3 的基础语法与盒模型的讲解。包括 CSS3 层叠性及处理冲突规则、伪元素和新增伪类元素、属性选择器等。还介绍了文本与字体属性,如段落和行相关属性、字体文本属性。最后阐述了盒子模型,如元素隐藏、行内与块元素转换、…...

CSS知识总结
CSS(层叠样式表,Cascading Style Sheets)是一种用于描述网页内容视觉表现的样式语言,与HTML(结构)和JavaScript(行为)共同构成现代Web开发的三大核心技术。 一、基本概念 定义&…...

基于Spring Security 6的OAuth2 系列之十 - 授权服务器--刷新token
之所以想写这一系列,是因为之前工作过程中使用Spring Security OAuth2搭建了网关和授权服务器,但当时基于spring-boot 2.3.x,其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0,结果一看Spring Security也升级…...

信息学奥赛一本通 2113:【24CSPJ普及组】小木棍(sticks) | 洛谷 P11229 [CSP-J 2024] 小木棍
【题目链接】 ybt 2113:【24CSPJ普及组】小木棍(sticks) 洛谷 P11229 [CSP-J 2024] 小木棍 【题目考点】 1. 思维题,找规律 【解题思路】 解法1:找规律 该题为:求n根木棍组成的无前导0的所有可能的数…...

安装hami的笔记
k3s环境下安装hami提示如下错误: "failed to “StartContainer” for “kube-scheduler” with InvalidImageName: "Failed to apply default image tag “registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.31.2k3s1”: 没有Inva…...

【区块链】区块链密码学基础
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 区块链密码学基础引言一、哈希函数1.1 基本概念1.2 数学表达 二、非对称加密2.1…...

强化学习笔记(5)——PPO
PPO视频课程来源 首先理解采样期望的转换 变量x在p(x)分布下,函数f(x)的期望 等于f(x)乘以对应出现概率p(x)的累加 经过转换后变成 x在q(x)分布下,f(x)*p(x)/q(x) 的期望。 起因是:求最大化回报的期望,所以对ceta求梯度 具体举例…...

【C语言入门】解锁核心关键字的终极奥秘与实战应用(三)
目录 一、auto 1.1. 作用 1.2. 特性 1.3. 代码示例 二、register 2.1. 作用 2.2. 特性 2.3. 代码示例 三、static 3.1. 修饰局部变量 3.2. 修饰全局变量 3.3. 修饰函数 四、extern 4.1. 作用 4.2. 特性 4.3. 代码示例 五、volatile 5.1. 作用 5.2. 代码示例…...

寒假day10
第十天:请写出以下几个数据的类型 整数 a int a的地址 int* 存放a的数组b …...

本地部署与使用SenseVoice语音大模型简析
前言 SenseVoice 是一种语音基础模型,具有多种语音理解功能,包括自动语音识别 (ASR)、口语识别 (LID)、语音情感识别 (SER) 和音频事件检测 (AED)。本博客将指导您安装和使用 SenseVoice 模型,使其尽可能方便用户使用。 Github 仓库链接: ht…...

Kafka SASL/SCRAM介绍
文章目录 Kafka SASL/SCRAM介绍1. SASL/SCRAM 认证机制2. SASL/SCRAM 认证工作原理2.1 SCRAM 认证原理2.1.1 密码存储和加盐2.1.2 SCRAM 认证流程 2.2 SCRAM 认证的关键算法2.3 SCRAM 密码存储2.4 SCRAM 密码管理 3. 配置和使用 Kafka SASL/SCRAM3.1 Kafka 服务器端配置3.2 创建…...

中间件漏洞之CVE-2024-53677
目录 什么是struts?CVE-2024-53677简介影响版本复现环境搭建漏洞利用修复 什么是struts? 在早期的 Java Web 开发中,代码往往混乱不堪,难以维护和扩展。比如,一个简单的用户登录功能,可能在不同的 Java 类…...

pytorch基于 Transformer 预训练模型的方法实现词嵌入(tiansz/bert-base-chinese)
以下是一个完整的词嵌入(Word Embedding)示例代码,使用 modelscope 下载 tiansz/bert-base-chinese 模型,并通过 transformers 加载模型,获取中文句子的词嵌入。 from modelscope.hub.snapshot_download import snaps…...

Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)
文章目录 一、环境准备二、安装Ollama2.1 访问Ollama官方网站2.2 下载适用于Windows的安装包2.3 安装Ollama安装包2.4 指定Ollama安装目录2.5 指定Ollama的大模型的存储目录 三、选择DeepSeek R1模型四、下载并运行DeepSeek R1模型五、常见问题解答六、使用Chatbox进行交互6.1 …...

区间覆盖问题
文章目录 1. 题面2. 简单分析3. 代码解答4. TLE的2点可能 1. 题面 给定 N N N个区间 [ a i , b i ] [a_i,b_i] [ai,bi] 以及一个区间 [ s , t ] [s,t] [s,t],请你选择尽量少的区间,将指定区间完全覆盖。 输出最少区间数,如果无法完全…...

【LLM-agent】(task2)用llama-index搭建AI Agent
note LlamaIndex 实现 Agent 需要导入 ReActAgent 和 Function Tool,循环执行:推理、行动、观察、优化推理、重复进行。可以在 arize_phoenix 中看到 agent 的具体提示词,工具被装换成了提示词ReActAgent 使得业务自动向代码转换成为可能&am…...

SpringAI 人工智能
随着 AI 技术的不断发展,越来越多的企业开始将 AI 模型集成到其业务系统中,从而提升系统的智能化水平、自动化程度和用户体验。在此背景下,Spring AI 作为一个企业级 AI 框架,提供了丰富的工具和机制,可以帮助开发者将…...

【axios二次封装】
axios二次封装 安装封装使用 安装 pnpm add axios封装 // 进行axios二次封装:使用请求与响应拦截器 import axios from axios import { ElMessage } from element-plus//创建axios实例 const request axios.create({baseURL: import.meta.env.VITE_APP_BASE_API,…...

P7497 四方喝彩 Solution
Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),有 m m m 个操作,分四种: add ( l , r , v ) \operatorname{add}(l,r,v) add(l,r,v):对于所有 i ∈ [ l , r ] i \in [l,r…...

深入剖析 Bitmap 数据结构:原理、应用与优化策略
深入理解 Bitmap 数据结构 一、引言 在计算机科学领域,数据的高效存储和快速处理一直是核心问题。随着数据量的不断增长,如何用最少的空间和最快的速度来表示和操作数据变得至关重要。Bitmap(位图)作为一种简洁而强大的数据结构…...

bypass hcaptcha、hcaptcha逆向
可以过steam,已支持并发,欢迎询问! 有事危,ProfessorLuoMing...

WebForms DataList 深入解析
WebForms DataList 深入解析 引言 在Web开发领域,控件是构建用户界面(UI)的核心组件。ASP.NET WebForms框架提供了丰富的控件,其中DataList控件是一个灵活且强大的数据绑定控件。本文将深入探讨WebForms DataList控件的功能、用法以及在实际开发中的应用。 DataList控件…...

C# List 列表综合运用实例⁓Hypak原始数据处理编程小结
C# List 列表综合运用实例⁓Hypak原始数据处理编程小结 1、一个数组解决很麻烦引出的问题1.1、RAW 文件尾部数据如下:1.2、自定义标头 ADD 或 DEL 的数据结构如下: 2、程序 C# 源代码的编写和剖析2.1、使用 ref 关键字,通过引用将参数传递,以…...

【C++基础】字符串/字符读取函数解析
最近在学C以及STL,打个基础 参考: c中的char[] ,char* ,string三种字符串变量转化的兼容原则 c读取字符串和字符的6种函数 字符串结构 首先明确三种字符串结构的兼容关系:string>char*>char [] string最灵活,内置增删查改…...

大模型-CLIP 详细介绍
CLIP简介 CLIP(Contrastive Language–Image Pre-training)是由OpenAI在2021年提出的一种多模态机器学习模型。它旨在通过大量的文本-图像对进行训练,从而学会理解图像内容,并能将这些内容与相应的自然语言描述相匹配。CLIP的核心…...

1.4 Go 数组
一、数组 1、简介 数组是切片的基础 数组是一个固定长度、由相同类型元素组成的集合。在 Go 语言中,数组的长度是类型的一部分,因此 [5]int 和 [10]int 是两种不同的类型。数组的大小在声明时确定,且不可更改。 简单来说,数组…...