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系统下用于网络分析和问题排查的首选工具。
- 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、问题来了: 所有用户都可以采用该命令吗?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. 俄罗斯套娃信封问题 ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 专栏 Python 每日一练 专栏 1. 提示用户输入的简单菜单 如果用户选择菜单选项1,提示用户输入1到10之间的整数&a…...
人生又有几个四年
机缘 不知不觉,已经来 csdn 创作四周年啦~ 我是在刚工作不到一年的时候接触 csdn 的,当时在学习 node,对 node 的文件相关的几个 api 总是搞混,本来还想着在传统的纸质笔记本上记一下,但是想想我大学记了好久的笔记本…...
第九章:Java集合
第九章:Java集合 9.1:Java集合框架概述 数组、集合都是对多个数据进行存储(内存层面,不涉及持久化)操作的结构,简称Java容器。 数组存储多个数据方面的特点 一旦初始化以后,其长度就确定了。数组一旦定义好ÿ…...
嵌入式学习笔记——STM32的USART通信概述
文章目录前言常用通信协议分类及其特征介绍通信协议通信协议分类1.同步异步通信2.全双工/半双工/单工3.现场总线/板级总线4. 串行/并行通信5. 有线通信、无线通信STM32通信协议的配置方式使用通信协议控制器实现使用IO口模拟的方式实现STM32串口通信概述什么是串口通信STM32F40…...
MySQL性能优化
MySQL性能调优 存储数据类型优化 尽量避免使用 NULL尽量使用可以的最小数据类型。但也要确保没有低估需要存储的范围整型比字符串操作代价更低使用 MySQL 内建的数据类型(比如date、time、datetime),比用字符串更快 基本数据类型 数字 整数…...
C语言/动态通讯录
本文使用了malloc、realloc、calloc等和内存开辟有关的函数。 文章目录 前言 二、头文件 三、主界面 四、通讯录功能函数 1.全代码 2.增加联系人 3.删除联系人 4.查找联系人 5.修改联系人 6.展示联系人 7.清空联系人 8.退出通讯录 总结 前言 为了使用通讯录时,可以…...
我用Compose做了一个地图轮子OmniMap
一、前言 半年前,我发布过一篇介绍:Compose里面如何使用地图,比如高德地图 的文章,原本是没有想造什么轮子的✍️ 闲来无事,有一天看到了评论区留言让我把源码地址分享出来,我感觉我太懒了,后来…...
STM32之SPI
SPISPI介绍SPI是串行外设接口(Serial Peripherallnterface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便…...
02 深度学习环境搭建
1、查看对应版本关系 详细见: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 帮你解释,详细到爆!
偷个懒,用ChatGPT 帮我写段生物信息代码如果 ChatGPT 给出的的代码不太完善,如何请他一步步改好?网上看到一段代码,不知道是什么含义?输入 ChatGPT 帮我们解释下。生信宝典 1: 下面是一段 Linux 代码,请帮…...
【MyBatis】篇三.自定义映射resultMap和动态SQL
MyBatis整理 篇一.MyBatis环境搭建与增删改查 篇二.MyBatis查询与特殊SQL 篇三.自定义映射resultMap和动态SQL 篇四.MyBatis缓存和逆向工程 文章目录1、自定义映射P1:测试数据准备P2:字段和属性的映射关系P3:多对一的映射关系P4:一对多的映射关系2、动态SQL2.1 IF标签2.2 w…...
什么是API?(详细解说)
编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开…...
比cat更好用的命令!
大家好,我是良许。 作为程序员,大家一定对 cat 这个命令不陌生。它主要的功能就是用来显示文本文件的具体内容。 但 cat 命令两个很重大的缺陷:1. 不能语法高亮输出;2. 文本太长的话无法翻页输出。正是这两个不足,使…...
MySQL、HBase、ElasticSearch三者对比
1、概念介绍 MySQL:关系型数据库,主要面向OLTP,支持事务,支持二级索引,支持sql,支持主从、Group Replication架构模型(本文全部以Innodb为例,不涉及别的存储引擎)。 HBas…...
Vue+ElementUI+Vuex购物车
最完整最能理解的Vuex版本的购物车购物车是最经典的小案例。Vuex代码: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 视频地址: 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* 问:在你能访问的不同的机器上,编译show_bytes.c并运行代码,确定…...
Python操作MySQL数据库详细案例
Python操作MySQL数据库详细案例一、前言二、数据准备三、建立数据库四、处理和上传数据五、下载数据六、完整项目数据和代码一、前言 本文通过案例讲解如何使用Python操作MySQL数据库。具体任务为:假设你已经了解MySQL和知识图谱标注工具Brat,将Brat标注…...
MicroBlaze系列教程(8):AXI_CAN的使用
文章目录 @[toc]CAN总线概述AXI_CAN简介MicroBlaze硬件配置常用函数使用示例波形实测参考资料工程下载本文是Xilinx MicroBlaze系列教程的第8篇文章。 CAN总线概述 **CAN(Controller Area Network)**是 ISO 国际标准化的串行通信协议,是由德国博世(BOSCH)公司在20世纪80年代…...
网络安全领域中八大类CISP证书
CISP注册信息安全专业人员 注册信息安全专业人员(Certified Information Security Professional),是经中国信息安全产品测评认证中心实施的国家认证,对信息安全人员执业资质的认可。该证书是面向信息安全企业、信息安全咨询服务…...
stm32学习笔记-5EXIT外部中断
5 EXIT外部中断 [toc] 注:笔记主要参考B站 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注:工程及代码文件放在了本人的Github仓库。 5.1 STM32中断系统 图5-1 中断及中断嵌套示意图 中断 是指在主程序运行过程中,出现了特定…...
MySQL Workbench 图形化界面工具
Workbench 介绍 MySQL官方提供了一款免费的图形工具——MySQL Workbench,它是一款功能强大且易于使用的数据库设计、管理和开发工具,总之,MySQL Workbench是一款非常好用的MySQL图形工具,可以满足大多数MySQL用户的需求。 目录 W…...
雪花算法(SnowFlake)
简介现在的服务基本是分布式、微服务形式的,而且大数据量也导致分库分表的产生,对于水平分表就需要保证表中 id 的全局唯一性。对于 MySQL 而言,一个表中的主键 id 一般使用自增的方式,但是如果进行水平分表之后,多个表…...
Linux防火墙
一、Linux防火墙Linux的防火墙体系主要在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率,因…...
网络安全系列-四十七: IP协议号大全
IP协议号列表 这是用在IPv4头部和IPv6头部的下一首部域的IP协议号列表。 十进制十六进制关键字协议引用00x00HOPOPTIPv6逐跳选项RFC 246010x01ICMP互联网控制消息协议(ICMP)RFC 79220x02IGMP...
HTTP协议格式以及Fiddler用法
目录 今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天 一、HTTP协议的基本格式 二、Fiddler的用法 1.Fidder的下载 2.Fidder的使用 今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天 一、HTTP协议的基本格式 先来介绍一下http协议: http 协议(全称为 &q…...
自动写代码?别闹了!
大家好,我是良许。 这几天,GitHub 上有个很火的插件在抖音刷屏了——Copilot。 这个神器有啥用呢?简单来讲,它就是一款由人工智能打造的编程辅助工具。 我们来看看它有啥用。 首先就是代码补全功能,你只要给出函数…...
项目心得--网约车
一、RESTFULPost:新增Put:全量修改Patch:修改某个值Delete: 删除Get:查询删除接口也可以用POST请求url注意:url中不要带有敏感词(用户id等)url中的名词用复数形式url设计:api.xxx.co…...
动态网站开发的用途/sem是什么岗位
亚利桑那大学实力介绍亚利桑那大学(The University of Arizona),简称UA,世界知名高等学府,美国最负盛名的公立研究型大学之一。该校的天文、地质、地理、土建等学科有着雄厚的科研实力,而人类学、社会学、哲学、法学、工程学、生命…...
wordpress支付配置/seo文章外包
问题:jsonsql中文排序不支持首先需要判断传入字符串是否含有中文,正则啥的,大家随便上吧然后需要对中文增加一条localeCompare的规则紧接着,高潮~需要把中文转换成拼音(要不你说怎么搞?)用拼音做排序,这里需…...
自拍做爰视频网站/电商入门基础知识
shell实战 1. 注意事项 - 开头加解释器#!/bin/bash# 以及相关注释说明 - 变量名大写、局部变量小写,函数名小写 - 遇到执行非0时退出脚本的命令:set -e - 打印执行过程的命令:set -x - 写脚本一定要先测试再上生产环境2. 获取随机字符串或数…...
九创wordpress/新闻20条摘抄大全
2019独角兽企业重金招聘Python工程师标准>>> Mybatis学习(一)原生态的JDBC编程总结 Mybatis学习(二)Mybatis框架的原理 Mybatis学习(三)搭建mybatis的入门程序的运行环境 Mybatis学习࿰…...
百度招聘 网站开发/市场营销手段13种手段
上节我们介绍了随机森林的一些简单情况和使用R语言做二分类结局变量的随机森林模型分析,今天我们继续来介绍为连续变量结局变量的随机森林模型分析,废话不多说,立即开始,使用的数据为SPSS自带的大气层臭氧的数据集,主要…...
服装网站建设优点与缺点/站长工具天美传媒
BZOJ 1054题解 BFS暴力求解 1054: [HAOI2008]移动玩具 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1884 Solved: 1033[Submit][Status][Discuss]Description 在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态&#x…...