TCP/IP详解——FTP 协议,Telnet协议

文章目录

  • 1. FTP 协议
    • 1.1 FTP的应用
    • 1.2 FTP传输文件的过程
    • 1.3 FTP传输模式
    • 1.4 主动模式(Active Mode)
    • 1.5 Active Mode 抓包分析
    • 1.6 被动模式(Passive Mode)
    • 1.7 Passive Mode 抓包分析
  • 2. Telnet 协议
    • 2.1 Telnet 概念
    • 2.2 Telnet 协议抓包分析

1. FTP 协议

FTP 数据传输协议,属于是成块数据流

1.1 FTP的应用

image-20230721161014321

FTP是用来传送文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。

1.2 FTP传输文件的过程

TCP连接

image-20230721161041629

使用FTP进行文件传输时,会使用两个TCP连接。

  • 第一个连接是FTP客户端和FTP服务器间的控制连接。FTP服务器开启21号端口,等待FTP客户端发送连接请求。FTP客户端随机开启端口,向服务器发送建立连接的请求。控制连接用于在服务器和客户端之间传输控制命令。

  • 第二个连接是FTP客户端和FTP服务器间的数据连接。FTP服务器使用TCP的20号端口与客户端建立数据连接。通常情况下,服务器主动建立或中断数据连接。

1.3 FTP传输模式

image-20230721161159488

FTP传输数据时支持两种传输模式:ASCII模式二进制模式

  • ASCII模式用于传输文本。发送端的字符在发送前被转换成ASCII码格式之后进行传输,接收端收到之后再将其转换成字符。

  • 二进制模式常用于发送图片文件和程序文件。发送端在发送这些文件时无需转换格式,即可传输。

两个信道

  • 控制信道(21端口)
  • 数据信道(20端口)

FTP的两个模式

  • 主动模式(Active Mode)
  • 被动模式(Passive Mode)

通常都是使用的是被动模式Passive Mode,不管是什么模式第一信道都是不变的,所有的区别都在第二信道中。

1.4 主动模式(Active Mode)

在第一个信道中主要是认证,还要进行三次握手的建立。在FTP上要下载文件,这样就需要建立第二信道,也就是所有服务器给客户端的数据都是在第二信道中传递的。

在第一个信道中发送PORT命令,由客户发送给服务器,在PORT中有6个数字,分别用(a,b,c,d,e,f)来表示。这6个数字用逗号来分割。其作用是告诉客户端它的IP地址是a.b.c.d,端口号是e*256+f 的结果为目的端口号。

服务器发起第二信道,源端口是20号端口,目的端口是e*256+f,在第二信道中也要进行三次握手的建立,所有数据都要在第二信道中进行传输。

1.5 Active Mode 抓包分析

首先在虚拟机中开启FTP服务端

image-20231123211726727

然后本机启动FTP客户端,进行连接。

image-20231123211836903

在连接的时候使用OmniPeek进行抓包

image-20231123211916855

很明显用户名和密码被抓取出来了,所以FTP是不安全的。

image-20231123213713201

第一个信道中发送PORT,在PORT中有6个数字,分别是(192,168,188,229,192,157)。

image-20231123213748945

192*256+157=49309,这个49309就是目的端口,而192.138.188.229就是FTP服务端的 IP 地址。

第一次建立第二信道发送listing,意思是罗列清单查看FTP上有哪些文件和数据。这些信息都是通过第二信道主动发送的。

image-20231123213926688

向下拖动还发现一个PORT命令,这个是第二次建立第二信道,表示下载FTP上的wuhu文件。只要是服务器过来的数据都要建立第二信道。

image-20231123214441959

1.6 被动模式(Passive Mode)

客户端发送PASV命令,该命令就是询问服务器是否支持Passive Mode。如果服务器支持会回复227,还有6个数字并且用的逗号分割。服务器地址是a.b.c.d,所连接的端口号是e*256+f。

第二信道客户端是随机端口,目的端口号是e*256+f,双方都是动态的端口号。

1.7 Passive Mode 抓包分析

通常都是使用的是被动模式Passive Mode。

客户端发送PASV命令,并且在下面的TCP三次握手发现源端口和目的端口都是动态的。

image-20231124101156628

2. Telnet 协议

2.1 Telnet 概念

Telnet 协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。属于是交互式数据流,明文传输用户名和密码非常的不安全。占用**23端口号**。

它为用户提供了在本地计算机上完成远程主机远作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制路由器的方法

特点

  1. 交互式TCP数据流特点
  2. 安全问题(替代协议SSH)

2.2 Telnet 协议抓包分析

在本机cmd窗口输入如下命令进行Telnet远程登录。

telnet 192.168.188.227

然后输入虚拟机中的用户名,密码,管理员名称。

image-20231124113423838

登录成功弹出如下界面

image-20231124113334330

在登录的过程中进行抓包,这里使用的是OmniPeek,原因是因为这个比起Wireshark更加的方便对数据包进行分析。

image-20231124113544080

可以看到在本机输入的用户名和密码被抓取到了,这样就非常的不安全。

image-20231124113753409

而且Telnet是属于TCP的交互式数据流,在输入用户名和密码的时候,数据包是客户端发送一个,服务端接受一个。这样在抓取到的数据包中看到客户端和服务端一来一回的一个交互过程。

image-20231124134042534

在数据包内容中可以看到目的端口是23,也就是Telnet所占用的端口号。

image-20231124114240178

CSNAS 抓包分析
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283442.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类

目录 引言 1 数据集制作与加载 1.1 导入数据 1.2 制作数据集 2 LSTM分类模型和超参数选取 2.1 定义LSTM分类模型 2.2 定义模型参数 3 LSTM模型训练与评估 3.1 模型训练 3.2 模型评估 往期精彩内容: Python-凯斯西储大学(CWRU)轴承…

Word写大论文常见问题(持续更新)

脚注横线未定格 解决方案:“视图”-“草图”,“引用”-“显示备注”-选择“脚注分隔符”,把横线前的空格删掉。 2.PPT做的图插入word中清晰度太低 解决方案:PPT-图形-“另存为图片”-“可缩放矢量图格式”-粘贴到word中。

RDD编程

目录 一、RDD编程基础 (一)RDD创建 (二)RDD操作 1、转换操作 2、行动操作 3、惰性机制 (三)持久化 (四)分区 (五)一个综合实例 二、键值对RDD &am…

社交网络分析3:社交网络隐私攻击、保护的基本概念和方法 + 去匿名化技术 + 推理攻击技术 + k-匿名 + 基于聚类的隐私保护算法

社交网络分析3:社交网络隐私攻击、保护的基本概念和方法 去匿名化技术 推理攻击技术 k-匿名 基于聚类的隐私保护算法 写在最前面社交网络隐私泄露用户数据暴露的途径复杂行为的隐私风险技术发展带来的隐私挑战经济利益与数据售卖防范措施 社交网络 用户数据隐私…

[AI工具推荐]AiRestful智能API代码生成

智能API代码示例生成工具AiRestful 一、产品介绍二、如何使用1、第一步(必须):2、第二步(可选):3、第三步(智能生成): 三、如何集成到您的网站(应用)1、开始接入2、接入案例 四、注意点 一、产品介绍 AiRestful是一款基于智能AI的,帮助小白快速生成任意编程语言的API接口调用示…

Axure元件的介绍使用以及登录界面

一、Axure元件介绍 简介: Axure元件是一种功能强大的设计工具,专门用于用户体验设计和交互设计。它可以帮助设计师创建可交互的原型,并实现各种界面元素的设计和布局。 Axure元件的基本特点包括: 多样性:Axure元件包括…

【DataSophon】大数据服务组件之Flink升级

🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 🪁🍁🪁&am…

从 0 开始实现一个 SpringBoot + Vue 项目

从 0 开始实现一个 SpringBoot Vue 项目 从 0 开始实现一个 SpringBoot Vue 项目软件和工具创建 SpringBoot 后端项目创建 MySQL 数据库配置文件实现增删改查接口Model 层mapper 层service 层controller 层测试 从 0 开始实现一个 SpringBoot Vue 项目 软件和工具 后端开发…

一二三应用开发平台部署文档——开发环境搭建手册

背景 开源平台在ReadMe文档中简要描述了如何部署与启动以及重要注意事项,有小伙伴私信我希望提供一个详细具体的部署说明,然后联想到自己出于学习或研究目的,去搭建一些开源项目时,面对简要的说明也经常遇到障碍,比如…

MySQL | 往数据库中插入时间时,差了八个小时(时区设置)

一:问题 在往数据库中插入(读取)时间的时候,会相差八个小时,这是常见的问题,原因是因为时区设置的问题 二:知识点 UTC:Coordinated Universal Time 协调世界时。 GMT:…

AttributeError: module ‘jax‘ has no attribute ‘Array‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。…

【JAVA】CyclicBarrier源码解析以及示例

文章目录 前言CyclicBarrier源码解析以及示例主要成员变量核心方法 应用场景任务分解与合并应用示例 并行计算应用示例 游戏开发应用示例输出结果 数据加载应用示例 并发工具的协同应用示例 CyclicBarrier和CountDownLatch的区别循环性:计数器的变化:用途…