使用“tcpdump”查看原始数据包
使用“tcpdump”查看原始数据包
尽管像 Snort 这样的工具可以出色地筛选通过我们网络的所有内容,但有时需要查看原始数据。为此,我们最好的工具是“tcpdump”。
使用 tcpdump 的最基本方法是简单地发出以下命令:
tcpdump
使用 -v 选项可以获得更详细的信息,使用 -vv 选项可以获得更多的信息。
有用的选项
假设您已登录到您管理的远程计算机。通常,您会使用 SSH。如果您运行“tcpdump”时不带任何选项,则输出将充斥着来自 SSH 连接的数据包。要避免这种情况,只需从输出中删除端口 22:
tcpdump not port 22
您可以使用多个不同的端口来实现此目的:
tcpdump not port 143 and not port 25 and not port 22
如果您想要执行相反的操作,即仅监视某个端口(这有利于调试网络应用程序),您可以执行以下操作:
tcpdump port 143
您还可以从网络上的特定主机获取数据:
tcpdump host hal9000
如果你的机器有多个网络接口,你也可以指定你想要监听的网络接口:
tcpdump -i eth1
您还可以指定协议:
tcpdump udp
您可以在 /etc/protocols 中找到协议列表。
保存输出以供以后使用
在某些情况下,您可能希望将输出重定向到文件,以便以后详细研究它或使用其他程序来解析输出。在下面的示例中,您仍然可以在将输出保存到文件的同时查看输出:
tcpdump -l | tee tcpdump_`date +%Y%m%e-%k.%M`
在上面的例子中,我们可以通过日期和时间来识别每个转储。这在处理一天中某些时间出现的问题时可能会派上用场。tcpdump
还有一个选项可以将其输出转储为二进制格式,以便以后读取。要创建二进制文件:
tcpdump -w tcpdump_raw_`date +%Y%m%e-%k.%M`
稍后,你可以让 tcpdump 读取该文件
tcpdump -r tcpdump_raw_YYYMMDD-H.M
您还可以使用程序 ethereal 打开原始转储并对其进行解释。我们将在下一节中详细讨论 ethereal。
需要注意的事项
tcpdump 为我们提供了有关往返于我们网络的所有数据包的信息。但这一切意味着什么?
将 Ethereal 与 tcpdump 结合使用
Ethereal 是一种也可用于捕获网络数据包的工具。安装后,您可以打开您制作的原始转储文件。它看起来像这样:
这样就更容易看到发生了什么。您可以看到源 IP 和目标 IP 是什么,以及数据包的类型。然后,您可以轻松排除可能遇到的网络问题并分析可疑行为。再补充一个轶事,当我在写这节课并解释我自己的转储时,我看到我的个人工作站上有一些奇怪的活动。我几乎定期查询世界各地不同 IP 的机器上的端口 32772。我为端口 32772 运行了一个特定的转储,如下所示:
tcpdump port 32772 -w dump_32772
我得到的结果确实很奇怪。即使在 Google 搜索之后,我也没有找到任何相关信息,所以我怀疑我可能感染了木马。我运行了“rootkit hunter”(下一节将详细介绍),但什么也没找到。最后,通过逐个关闭,我发现是 Skype,我一直都打开它。尽管这最终被证明是无害的,但我很高兴有 tcpdump 向我指出了这一点。
阅读原始输出
正如您所见,即使阅读 tcpdump 中所谓的“人类可读”输出也有点难以理解。请看以下示例,这是我刚从转储中抓取的一个随机数据包:
17:26:22.924493 IP www.linux.org.www > test.linux.org.34365: P 2845:3739(894) ack 1624 win 9648 <nop,nop,timestamp 326501459 24374272>
我们有一个对www.linux.org 的网络服务器请求。在时间戳之后,您会注意到主机名末尾有 .www(表示端口 80)。此信息将发送到请求主机 test.linux.org 的端口 34365。“P”代表 TCP“oush”功能。这意味着数据应立即发送。后面的数字 2845:3739(894) 中,2845 标记第一个数据包的八位字节数。数字 3739 是数据包发送的最后一个字节数加 1。数字 894 是发送的数据包的长度。其中“ack 1624”是 TCP 术语“确认”——即数据包已被接受,下一个预期的数据包编号是 1624。之后,我们看到“win 9648”,表示发送主机正在等待窗口大小为 9648 个八位字节的数据包。接下来是时间戳。
现在,如果您认为这有点难以解释,如果您使用 -x 选项,它将以十六进制输出包含数据包内容。这里您需要一位埃及古物学家来解释输出:
18:12:45.149977 IP www.linux.org.www > test.linux.org.34536: . 1:1449(1448)
ack 487 win 6432 <nop,nop,timestamp 329284215 27156244>0x0000: 4500 05dc 6a81 4000 4006 493b c0a8 0006 E...j.@.@.I;....0x0010: c0a8 0009 0050 86e8 8fa4 1d47 1c33 e3af .....P.....G.3..0x0020: 8010 1920 b4d9 0000 0101 080a 13a0 7a77 ..............zw0x0030: 019e 5f14 4854 5450 2f31 2e31 2032 3030 .._.HTTP/1.1.2000x0040: 204f 4b0d 0a44 6174 653a 2054 6875 2c20 .OK..Date:.Thu,.0x0050: 3135
我们可以从输出中得知,这是一个 HTTP 请求。至于其余部分,它不是人类可读的,但我们放心,因为我们知道这是一个合法的数据包。使用这种格式的另一个优点是,即使我们无法准确解释这个数据包发生了什么,我们也可以将其发送给可能能够解释的人。最终,这是未经任何过滤就通过网络传输的原始数据。
相关文章:
使用“tcpdump”查看原始数据包
使用“tcpdump”查看原始数据包 尽管像 Snort 这样的工具可以出色地筛选通过我们网络的所有内容,但有时需要查看原始数据。为此,我们最好的工具是“tcpdump”。 使用 tcpdump 的最基本方法是简单地发出以下命令: tcpdump 使用 -v 选项可以…...
Python字符串处理全面教程
目录 第一部分:Python字符串基础 1.1 创建字符串 1.2 索引和切片 1.3 字符串连接和重复 1.4 字符串格式化 1.5 字符串的不可变性 总结: 第二部分:Python字符串常用方法 2.1 查找子字符串 find() 方法 index() 方法 rfind() 和 ri…...
基于微信小程序+ JAVA后端实现的【微信小程序跑腿平台】设计与实现 (内附设计LW + PPT+ 源码+ 演示视频 下载)
项目名称 项目名称: 《微信小程序跑腿平台的设计与实现》 项目技术栈 该项目采用了以下核心技术栈: 后端框架/库: Java, SSM框架数据库: MySQL前端技术: 微信小程序, HTML…(其它相关技术) …...
使用 VALUES 子句构建数据集
在数据库操作中,VALUES 子句是一个非常有用的工具,它可以直接在查询中创建一组值。这种方式非常适合用于临时数据的展示、测试和处理。本文将详细介绍 VALUES 子句的用法,并列出支持该功能的主要数据库系统。 一、VALUES 子句的基本用法 VA…...
for循环绑定id,更新html页面的文字内容
需求:将方法中内容对齐 实现方式 给for循环中每个方法添加一个动态的id在DOM结果渲染完后,更新页面数据,否则会报错,找不到对应节点或对应节点为空 <view v-for"(item, index) in itemList" :key"index"…...
claude3国内API接口对接
众所周知,由于地理位置原因,Claude3不对国内开放,而国内的镜像网站使用又贵的离谱! 因此,团队萌生了一个想法:为什么不创建一个一站式的平台,让用户能够通过单一的接口与多个模型交流呢&#x…...
Java:IO
首 java.io中有百万计的类,如何找到自己需要的部分? 流 IO涉及到一个“流”stream的概念,可以简单理解成数据从一个源头到一个目的地。明白数据从哪来,要到哪里去,数据流中是字节还是字符之后,才能找到自…...
ubuntu安全加固
知识背景: 项目背景: 常用命令: useradd: adduser: getent passwd: getent group: id username: adduser newname sudo: 修改shell为/bin/bash 新用户默认为/bin/sh,可以通过echo $SHELL查询,默认不能使用TAB…...
【MySQL】数据库的开始
前言 数据库是我们学习编程中一个非常重要的内容,像一些什么什么管理系统,如果想要存储数据都是需要连接数据库的。博主之前写过一篇图书管理系统的博客,那时的我还没接触过数据库,所有的数据都是现成创建的,感兴趣的…...
线性稳压电路和开关稳压电路
稳压二极管稳压电路 电网电压增大,导到u1端的电压增大,从而使输出电压,稳压二极管两端的电压增大,稳压二极管两端电压增大,使流过的电注增大。那么,流过线性电阻R的总电流增大。 Ur电压增大,从…...
Leetcode:找出峰值
普通版本 题目链接:2951. 找出峰值 - 力扣(LeetCode) class Solution { public:vector<int> findPeaks(vector<int>& mountain) {int sz mountain.size();vector<int> newMountain;for(int i 1;i < sz-1;i){…...
简单微信企业群消息推送接口
群管理 群发送接口 POST: JSONURL http://localhost:65029/m/wxapi/sendwxmsg{ "nr":"试", --消息 "at":"wxid_y0k4dv0xcav622,wxid_y0k4dv0xcav622",--群wxid "key":"F98F354F1671A2D21BC78C76B95E96EB",--群k…...
超好用!图像去雾算法C2PNet介绍与使用指南
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…...
java中使用mysql的json字段(代码示例)
前言: 最近做了个小项目,第一次使用json类型的数据库字段,这篇博文讲下使用过程中遇到的问题(数据库框架使用MyBatisplus) 应用到项目中的方法: 数据库as_farmer_apply表中的json字段: 实体类…...
GitHub的原理及应用详解(三)
本系列文章简介: GitHub是一个基于Git版本控制系统的代码托管平台,为开发者提供了一个方便的协作和版本管理的工具。它广泛应用于软件开发项目中,包括但不限于代码托管、协作开发、版本控制、错误追踪、持续集成等方面。 GitHub的原理可以简单概括为,在本地创建一个仓库(r…...
Flutter 中的 Offstage 小部件:全面指南
Flutter 中的 Offstage 小部件:全面指南 在Flutter中,Offstage是一个用于控制子组件是否出现在屏幕上的布局小部件。通过Offstage,你可以轻松地将组件从屏幕上隐藏或显示,而不需要从widget树中移除它。这对于实现条件渲染、动画效…...
微信小程序中使用vantUI步骤
第一步,配置project.config.json 在setting中新增如下: "packNpmManually": true,"packNpmRelationList": [{"packageJsonPath": "./package.json","miniprogramNpmDistDir": "./"}], 第…...
说一下 ACID 是什么?
ACID 是数据库事务的四个特性的首字母缩写,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 原子性(Atomicity&…...
深度解读 chatgpt基本原理
ChatGPT(Generative Pre-trained Transformer)是由OpenAI开发的一种大规模语言模型,基于Transformer架构,采用自监督学习和生成式预训练方法。以下是ChatGPT的基本原理的深度解读: ### 1. Transformer架构 Transforme…...
Oracle-修改用户名
1、项目背景 需要将导入一份最新的用户数据在tbl用户上,但需要将原来的tbl用户数据保留并能实现两个用户的比对。 2、解决思路 思路一:1)新建用户tbl_feng,导入数据;2)将两个用户换名称 3)比对 思路二&…...
华为MetaERP在全球化部署方面具有以下显著优势
华为MetaERP在全球化部署方面具有以下显著优势:1. 全栈自主技术,无“卡脖子”风险根技术自主可控:MetaERP基于华为自主研发的欧拉操作系统、高斯数据库、昇腾AI算力等全栈技术栈,完全摆脱对西方ERP系统的依赖,满足全球…...
Prompt 缓存,一次讲明白
每当一个 AI Agent 往前走一步,它其实都在交一笔税。它会重新读取所有内容。系统提示词。 工具定义。 项目上下文。 三轮前已经加载过的内容。每一轮都重新读一遍。这就是 context tax。对长时间运行的 Agent 工作流来说,它往往是整个 AI 基础设施里最贵…...
硬件工程选型解析:钡特电源VB6-48S03MD与金升阳URB4803YMD-6WR3属工业标准模块电源
在工业硬件研发、设备调试与批量量产过程中,小功率隔离供电模块的稳定性、封装规范性与工况适配性,是硬件研发工程师重点核查的核心参数,直接决定工控终端、通信设备与电力监测装置的运行稳定性。在6W级48V转3.3V主流供电方案中,钡…...
GNSS信号丢了也不怕:这款组合导航系统真硬核
在无人系统快速发展的今天,精准可靠的定位导航已成为各类智能装备的核心刚需。然而,传统高精度组合导航系统往往价格昂贵,让许多项目团队望而却步。ER-GNSS/MINS-03为了打破这一僵局——将战术级MEMS惯性器件与全系统全频点双天线GNSS模块深度…...
AI Agent Harness Engineering 在餐饮行业的应用:智能点餐与库存管理
标题选项 《从排队到零浪费:AI Agent Harness Engineering 重构餐饮智能点餐与库存管理全链路》 《AI Agent 落地餐饮行业实战:基于Harness框架打造高可用智能点餐+库存联动系统》 《告别漏单、超卖、食材浪费:AI Agent Harness 工程化在餐饮场景的落地指南》 《垂直行业Age…...
多用户预付费电表箱
这款多用户预付费电表箱,专为高密度用电场景打造。采用集中式计量方案,25户仅需一块电表即可完成分户独立计量,相比传统分户电表,大幅节省安装空间与布线成本。箱体集成主断路器、分户空开、预付费电能表于一体,一户一…...
高性价比塑料链板输送机厂家排行适配指南
随着2026年《工业输送设备安全生产通用规范》正式落地,国内输送设备行业的准入门槛和生产标准迎来新一轮调整,新规对各领域使用的输送设备提出了更明确的合规要求,也给中小企业选购设备提供了清晰的参考标准。2026年输送设备安全生产新规核心…...
3个核心功能揭秘:JiYuTrainer如何让极域电子教室不再束缚你的学习自由
3个核心功能揭秘:JiYuTrainer如何让极域电子教室不再束缚你的学习自由 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在学校机房被极域电子教室的全屏广播困…...
Emacs-which-key排序与分页功能详解:高效管理大量快捷键的完整指南
Emacs-which-key排序与分页功能详解:高效管理大量快捷键的完整指南 【免费下载链接】emacs-which-key Emacs package that displays available keybindings in popup 项目地址: https://gitcode.com/gh_mirrors/em/emacs-which-key Emacs-which-key是Emacs编…...
奇门对接顺丰电子面单:从200行“祖传代码”到优雅重构的经验分享
一、背景:那年写下的“能跑就行” 在我们的电商WMS系统中,发货环节需要通过菜鸟奇门电子面单接口向顺丰等快递公司申请运单号。这段核心代码写于多年前,当时的业务需求比较简单:只支持淘宝/天猫订单,快递也只有顺丰。…...
