当前位置: 首页 > news >正文

Linux- 系统随你玩之--网络上的黑客帝国

请添加图片描述

文章目录

  • 1、前言
  • 2、TCPDump介绍
    • 2.1、问题来了: 所有用户都可以采用该命令吗?
    • 2.2、抓包原理
    • 2.3、特点
      • 2.3.1、参数化支持
      • 2.2.2、 TCP功能
  • 3、 服务器安装Tcpdump
    • 3.1、安装
    • 3.2、检查安装是否正常。
  • 4、tcpdump 命令
    • 4.1、常用功能选项
    • 4.2、输出内容
  • 5、实操
    • 5.1、常见用法
    • 5.2、监听指定域名TCP协议数据包
    • 5.3、tcpdump与Wireshark
  • 6、结语

1、前言

黑客帝国系列片 大家都看过了,知道网络黑客尼奥发现看似正常的现实世界实际上是由一个名为“矩阵”的计算机人工智能系统控制的,然后尼奥见到了黑客组织的首领墨菲斯,三人走上了抗争矩阵征途的故事 。
那么黑客都是些什么人了?
黑客如今在互联网上已经不再是鲜为人知的人物,他们已经发展成网络上的一个独特的群体。他们有着与常人不同的理想和追求,有着自己独特的行为模式,网络上出现了很多由一些志同道合的人组织起来的黑客组织。
在信息安全里,“黑客”指研究智取计算机安全系统的人员。利用公共通讯网路,如互联网和电话系统,在未经许可的情况下,载入对方系统的被称为黑帽黑客(英文:black hat,另称cracker);调试和分析计算机安全系统的白帽黑客(英语:white hat)。“黑客”一词最早用来称呼研究盗用电话系统的人士。
他们有个共同点都是利用公共通讯网路,进行着不同的活动。
而今天我们的主角也是针对网络进行数据采集与分析的工具,它就是TCPDump
老样子,我们本文主要介绍了LinuxTCPDump命令使用详解,文中会通过非常详细的示例代码介绍,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随我来一起学习!

2、TCPDump介绍

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。
Tcpdump是一个用于截取网络分组,并输出分组内容的工具。
tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。

  1. tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。
    它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

2. 同时tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性。

基本上tcpdump的总的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数

2.1、问题来了: 所有用户都可以采用该命令吗?

虽然tcpdump提供源代码,公开了接口,具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。
但tcpdump普通用户不能正常执行,需要具备root权限的用户才可以直接执行它来获取网络上的信息。

2.2、抓包原理

linux抓包是通过注册一种虚拟的底层网络协议来完成对网络报文(准确的是网络设备)消息的处理权。
当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,如以太网协议、x25协议处理模块来尝试进行报文的解析处理。
当抓包模块把自己伪装成一个网络协议的时候,系统在收到报文的时候就会给这个伪协议一次机会,让它对网卡收到的保温进行一次处理,此时该模块就会趁机对报文进行窥探,也就是啊这个报文完完整整的复制一份,假装是自己接收的报文,汇报给抓包模块。

2.3、特点

2.3.1、参数化支持

1.参数
tcpdump支持相当多的不同参数。
如使用-i参数指定tcpdump监听的网络接口, 使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存等。
2.安全
一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP 堆栈才行。
在FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。
3.解码
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

2.2.2、 TCP功能

tcpDump将搜索系统中第一个网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,
数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump提供了很多参数供我们选择数据过滤。

3、 服务器安装Tcpdump

3.1、安装

一般情况下Linux系统会自带tcpdump工具,如果系统没有安装,直接用命令安装就行了。
在 linux服务器上我们使用 yum install -y tcpdump命令来安装tcpdump工具。

3.2、检查安装是否正常。

查看安装版本命令:tcpdump --help
在这里插入图片描述

4、tcpdump 命令

4.1、常用功能选项

tcpdump [-adeflnNOpqStvx][-c 数据包数量>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
  
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

4.2、输出内容

基本上tcpdump总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
在这里插入图片描述

5、实操

5.1、常见用法

1. 查看网卡命令:ifconfig
知道了网卡,就可以使用tcpdump工具针对服务器上的网卡进行监控、过滤网络数据了。

在这里插入图片描述

2. 查看本地网卡状态
在这里插入图片描述
Iface:存在的网卡。
MTU:最大传输单元。
RX-OK RX-ERR RX-DRP RX-OVR:正确接收数据报的数量以及发生错误、流式、碰撞的总数。
TX-OK TX-ERR TX-DRP TX-OVR:正确发送数据报的数量以及发生错误、流式、碰撞的总数。
3. 指定网卡
普通情况下,直接启动tcpdump将监视第一个网络端口所有流过的数据包。
如果不指定网卡,默认tcpdump只会监视第一个网络接口。

tcpdump -i ens33(网卡名)
在这里插入图片描述

4.监视所有进入或离开主机xps的数据包。xps为主机名。

tcpdump host xps

5.监视指定ip,截获指定主机收到和发出的所有数据包。
tcpdump host 192.168.1.5
6.截获主机192.168.1.5和192.168.1.10或192.168.1.113的通信包
tcpdump host 192.168.1.5 and (192.168.1.10 or 192.168.1.13)
7.打印xps与任何其他主机之间通信的IP数据包,但不包括与xps1之间的通信包
tcpdump ip host xps and not xps1
8.截获主机192.168.1.5除了和192.168.1.13之外所有的主机通信的ip包
tcpdump ip host 192.168.1.5 and ! 192.168.1.13
9.截获主机hostname发送的所有数据
tcpdump -i ens33 src host hostname
10.截获送到主机hostname的所有数据
tcpdump -i ens33 dst host hostname

在这里插入图片描述

5.2、监听指定域名TCP协议数据包

步骤一、开始监听指定域名的ip包流量:
tcpdump host baidu.com。
步骤二、打开浏览器、访问 baidu.com
此时、命令行下可以看到客户端和baidu服务之间的TCP协议IP包、学习网络协议的时候、配合使用很方便。
2、监听来自指定域名的TCP协议包数据包:
步骤一、开始监听指定域名的ip包流量:
tcpdump src host baidu.com。
步骤二、打开浏览器、访问 baidu.com
此时、命令行下可以看到客户端和baidu服务之间的TCP协议IP包、学习网络协议的时候、配合使用很方便。
3、监听发送到指定域名的TCP协议包数据包:
步骤一、开始监听指定域名的ip包流量:
tcpdump dst host baidu.com。
步骤二、打开浏览器、访问 baidu.com
此时、命令行下可以看到客户端和baidu服务之间的TCP协议IP包、学习网络协议的时候、配合使用很方便。
4、监听指定端口的tcp包
步骤一、开始监听:
tcpdump tcp port 80。
步骤二、打开另外一个终端、使用nc 192.168.10.188 80命令访问80端口。
此时、tcpdump监听终端下可以看到请求和返回的ip包。同理、如果要监听udp包可以用:tcpdump udp port 9999

5.3、tcpdump与Wireshark

我们可以把二者进行结合,在Linux中抓包,在windows中分析包。

tcpdump tcp -i ens33 -t -s 0 -c 5 and dst port ! 22 and src net 192.168.1.10/24 -w ./targetfile.cap

1.tcp: ip icmp arp rarp和tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型;
2. -i eth1 : 只抓取经过ens33 的数据包
3.-t: 不显示时间戳
4.-s 0 :抓取数据包时默认抓取长度为68字节,加上-S 0后可以抓取完整的数据包
5.-c 5: 只抓取5个数据包
6.dst port ! 22 : 不抓取目标端口为22的数据包
7.src net 192.168.1.10/24: 数据包的源网络地址是192.168.1.10/24
8.-w ./targetfile.cap: 保存为cap文件,方便用ethereal(wireshark)分析。

6、结语

tcpdump针对网络进行数据采集与分析,同时保存到指定文件,用wireshark来打开查看。可以快速查看符合网络接口符合某一条件的抓包,方便我们确定网络问题。

相关文章:

Linux- 系统随你玩之--网络上的黑客帝国

文章目录1、前言2、TCPDump介绍2.1、问题来了&#xff1a; 所有用户都可以采用该命令吗&#xff1f;2.2、抓包原理2.3、特点2.3.1、参数化支持2.2.2、 TCP功能3、 服务器安装Tcpdump3.1、安装3.2、检查安装是否正常。4、tcpdump 命令4.1、常用功能选项4.2、输出内容5、实操5.1、…...

Python每日一练(20230312)

目录 1. 提示用户输入的简单菜单 ★ 2. 字母异位词分组 ★★ 3. 俄罗斯套娃信封问题 ★★★ &#x1f31f; 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 专栏 1. 提示用户输入的简单菜单 如果用户选择菜单选项1&#xff0c;提示用户输入1到10之间的整数&a…...

人生又有几个四年

机缘 不知不觉&#xff0c;已经来 csdn 创作四周年啦~ 我是在刚工作不到一年的时候接触 csdn 的&#xff0c;当时在学习 node&#xff0c;对 node 的文件相关的几个 api 总是搞混&#xff0c;本来还想着在传统的纸质笔记本上记一下&#xff0c;但是想想我大学记了好久的笔记本…...

第九章:Java集合

第九章&#xff1a;Java集合 9.1&#xff1a;Java集合框架概述 数组、集合都是对多个数据进行存储(内存层面&#xff0c;不涉及持久化)操作的结构&#xff0c;简称Java容器。 数组存储多个数据方面的特点 一旦初始化以后&#xff0c;其长度就确定了。数组一旦定义好&#xff…...

嵌入式学习笔记——STM32的USART通信概述

文章目录前言常用通信协议分类及其特征介绍通信协议通信协议分类1.同步异步通信2.全双工/半双工/单工3.现场总线/板级总线4. 串行/并行通信5. 有线通信、无线通信STM32通信协议的配置方式使用通信协议控制器实现使用IO口模拟的方式实现STM32串口通信概述什么是串口通信STM32F40…...

MySQL性能优化

MySQL性能调优 存储数据类型优化 尽量避免使用 NULL尽量使用可以的最小数据类型。但也要确保没有低估需要存储的范围整型比字符串操作代价更低使用 MySQL 内建的数据类型&#xff08;比如date、time、datetime&#xff09;&#xff0c;比用字符串更快 基本数据类型 数字 整数…...

C语言/动态通讯录

本文使用了malloc、realloc、calloc等和内存开辟有关的函数。 文章目录 前言 二、头文件 三、主界面 四、通讯录功能函数 1.全代码 2.增加联系人 3.删除联系人 4.查找联系人 5.修改联系人 6.展示联系人 7.清空联系人 8.退出通讯录 总结 前言 为了使用通讯录时&#xff0c;可以…...

我用Compose做了一个地图轮子OmniMap

一、前言 半年前&#xff0c;我发布过一篇介绍&#xff1a;Compose里面如何使用地图&#xff0c;比如高德地图 的文章&#xff0c;原本是没有想造什么轮子的✍️ 闲来无事&#xff0c;有一天看到了评论区留言让我把源码地址分享出来&#xff0c;我感觉我太懒了&#xff0c;后来…...

STM32之SPI

SPISPI介绍SPI是串行外设接口(Serial Peripherallnterface)的缩写&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在芯片的管脚上只占用四根线&#xff0c;节约了芯片的管脚&#xff0c;同时为PCB的布局上节省空间&#xff0c;提供方便…...

02 深度学习环境搭建

1、查看对应版本关系 详细见&#xff1a;https://blog.csdn.net/qq_41946216/article/details/129476095?spm1001.2014.3001.5501此案例环境使用 CUDA 11.7、Pytouch1.12.1、Miniconda3_py38(含Python3.8) 2. 安装Anaconda 或 Miniconda 本案例重点一为Miniconda准 2.1 安…...

PHP导入大量CSV数据的方法分享

/** * @description 迭代器读取csv文件 * @param $strCsvPath * @return \Generator */ public static function readPathCsvFile($strCsvPath) { if ($handle = fopen($strCsvPath, r)) { while (!feof($handle)) { yield fgetcsv($handle); } …...

代码看不懂?ChatGPT 帮你解释,详细到爆!

偷个懒&#xff0c;用ChatGPT 帮我写段生物信息代码如果 ChatGPT 给出的的代码不太完善&#xff0c;如何请他一步步改好&#xff1f;网上看到一段代码&#xff0c;不知道是什么含义&#xff1f;输入 ChatGPT 帮我们解释下。生信宝典 1: 下面是一段 Linux 代码&#xff0c;请帮…...

【MyBatis】篇三.自定义映射resultMap和动态SQL

MyBatis整理 篇一.MyBatis环境搭建与增删改查 篇二.MyBatis查询与特殊SQL 篇三.自定义映射resultMap和动态SQL 篇四.MyBatis缓存和逆向工程 文章目录1、自定义映射P1:测试数据准备P2:字段和属性的映射关系P3:多对一的映射关系P4:一对多的映射关系2、动态SQL2.1 IF标签2.2 w…...

什么是API?(详细解说)

编程资料时经常会看到API这个名词&#xff0c;网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。 API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开…...

比cat更好用的命令!

大家好&#xff0c;我是良许。 作为程序员&#xff0c;大家一定对 cat 这个命令不陌生。它主要的功能就是用来显示文本文件的具体内容。 但 cat 命令两个很重大的缺陷&#xff1a;1. 不能语法高亮输出&#xff1b;2. 文本太长的话无法翻页输出。正是这两个不足&#xff0c;使…...

MySQL、HBase、ElasticSearch三者对比

1、概念介绍 MySQL&#xff1a;关系型数据库&#xff0c;主要面向OLTP&#xff0c;支持事务&#xff0c;支持二级索引&#xff0c;支持sql&#xff0c;支持主从、Group Replication架构模型&#xff08;本文全部以Innodb为例&#xff0c;不涉及别的存储引擎&#xff09;。 HBas…...

Vue+ElementUI+Vuex购物车

最完整最能理解的Vuex版本的购物车购物车是最经典的小案例。Vuex代码&#xff1a;import Vue from vue import Vuex from vuex import $http from ../request/http Vue.use(Vuex)const store new Vuex.Store({state:{shopList:[],},mutations:{setShopCarList(state,payload)…...

Android 录屏 实现

https://lixiaogang03.github.io/2021/11/02/Android-%E5%BD%95%E5%B1%8F/ https://xie.infoq.cn/article/dd40cd5d753c896225063f696 视频地址&#xff1a; https://time.geekbang.org/dailylesson/detail/100056832 概述 在视频会议、线上课堂、游戏直播等场景下&#x…...

【CSAPP】家庭作业2.55~2.76

文章目录2.55*2.56*2.57*2.58**2.59**2.60**位级整数编码规则2.61**2.62***2.63***2.64*2.65****2.66***2.67**2.68**2.69***2.70**2.71*2.72**2.73**2.74**2.75***2.76*2.55* 问&#xff1a;在你能访问的不同的机器上&#xff0c;编译show_bytes.c并运行代码&#xff0c;确定…...

Python操作MySQL数据库详细案例

Python操作MySQL数据库详细案例一、前言二、数据准备三、建立数据库四、处理和上传数据五、下载数据六、完整项目数据和代码一、前言 本文通过案例讲解如何使用Python操作MySQL数据库。具体任务为&#xff1a;假设你已经了解MySQL和知识图谱标注工具Brat&#xff0c;将Brat标注…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...