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

news2024/11/26 19:35:10

文章目录

  • 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.coloradmin.cn/o/1320818.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我做了一个在手机灵动岛锁屏看实时网速/步数/下班倒计时/跑步距离/照片/待办/倒计时/手机使用次数/帧率...的软件

我做了一个在手机灵动岛&锁屏看实时网速/步数/下班倒计时/跑步距离/照片/待办/倒计时/手机使用次数/帧率…的软件 Island Widgets 的作用: 提醒您 : 准时下班每天运动陪伴家人保持体重放下手机每日待办当前网速手机使用强度实时热搜现在天气… 初…

使用openMVS库,在VS2022中启用c++17标准编译仍然报错

使用openMVS库,在VS2022中启用c17标准编译仍然报错 现象 项目中引用了某些开源库(例如openmvs2.1.0),编译时要求启用编译器对c17的支持。 没问题!大家都知道在下图所示的位置调整C语言标准: 但是&#…

Django 构建动态前端页面详解

概要 Django 是一个强大的 Python Web 框架,广泛用于后端开发。然而,它也支持直接使用 HTML, CSS, 和 JavaScript 来构建动态的前端界面。本文将详细介绍如何在 Django 项目中使用这些技术,包括设置静态文件、编写 HTML 模板以及集成 JavaSc…

预测性维护在汽车制造行业中的应用

汽车制造行业是一个高度复杂和精细化的领域,依赖于各种设备来完成生产流程。这些设备包括机械装配线、焊接机器人、喷涂设备、传送带等。然而,这些设备在长时间运行中不可避免地会遇到各种故障,给生产进程带来延误和成本增加。为了应对这一挑…

鸿蒙Js实战,计算器功能开发

场景: 通过动态设置按钮组件button实现计算器的键盘,通过文本text显示计算的表达书,可以计算,-,*,/,可以一个一个移除,可以重置 等。 下面我们开始今天的文章,还是老规…

快速构建自定义配置好的VM - 使用GCP instance-template 和 custom-image

在云项目开发中有时会有下面的需求: 构建大量拥有相同配置, 相同已安装软件, 甚至相同已启动进程的虚拟机。 下面的内容会基于1个简单的例子: 现有1台vm 名字是 tf-vpc0-subnet0-vm0 , 我在上面手动安装了jdk11 和 …

智能手表上的音频(五):录音

上篇讲了语音通话,本篇讲录音。录音功能就是把录到的音频保存成文件。保存文件的格式支持两种:一是PCM(16K采样)的WAV格式,二是AMR-NB(8k采样)的AMR格式。WAV格式简单:44字节的文件头PCM 数据,示…

flask 接口处理带有图片和json数据的请求 发送图片到前端的实现

1.flask的request 从flask的源码可以看到flask的可用属性很多,包括data,form,files,header,host等,在我们接收文件传参时需要用到的属性就是form和files。不过具体的使用方式有两种,即:postman发送的和requests模拟发…

〖大前端 - 基础入门三大核心之JS篇(57)〗- 继承

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…

Leetcode—11.盛最多水的容器【中等】

2023每日刷题&#xff08;六十三&#xff09; Leetcode—11.盛最多水的容器 实现代码 #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MIN(a, b) ((a) < (b) ? (a) : (b)) int maxArea(int* height, int heightSize) {int left 0, right heightSize - 1;int m…

【具身智能评估7】ProcTHOR: Large-Scale Embodied AI Using Procedural Generation

论文标题&#xff1a;ProcTHOR: Large-Scale Embodied AI Using Procedural Generation 论文作者&#xff1a;Matt Deitke, Eli VanderBilt, Alvaro Herrasti, Luca Weihs, Jordi Salvador, Kiana Ehsani, Winson Han, Eric Kolve, Ali Farhadi, Aniruddha Kembhavi, Roozbeh M…

118. 杨辉三角

描述 : 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 题目 : LeetCode 118. 杨辉三角 : 118. 杨辉三角 分析 : 这道题用二维数组来做 . 解析 : class Solution {public Li…

python图像二值化处理

目录 1、双峰法 2、P参数法 3、迭代法 4、OTSU法 图像的二值化处理是将图像上的像素点的灰度值设置为0或255&#xff0c;也就是将整个图像呈现出明显的只有黑和白的视觉效果。二值化是图像分割的一种最简单的方法&#xff0c;可以把灰度图像转换成二值图像。具体实现是将大…

OpenSSL 3.2.0新增Argon2支持——防GPU暴力攻击

1. 引言 OpenSSL新发布的3.20版本中&#xff0c;引入了一些新特性&#xff0c;包括&#xff1a; post-quantum方法Brainpool曲线QUICArgon2&#xff1a;Argon2 是一种慢哈希函数&#xff0c;在 2015 年获得 Password Hashing Competition 冠军&#xff0c;利用大量内存计算抵…

Redis一些常用的技术

文章目录 第1关&#xff1a;Redis 事务与锁机制第2关&#xff1a;流水线第3关&#xff1a;发布订阅第4关&#xff1a;超时命令第5关&#xff1a;使用Lua语言 第1关&#xff1a;Redis 事务与锁机制 编程要求 根据提示&#xff0c;在右侧编辑器Begin-End补充代码&#xff0c;根据…

vuepress-----25、右侧目录

# 25、vuepress 右侧目录 https://github.com/xuek9900/vuepress-plugin-right-anchor vuepress-plugin-right-anchor English &#xff5c;中文 在用 Vuepress 2.x 编写的文档页面右侧添加 锚点导航栏 # 版本 2.x.x -> Vuepress 2.x -> npm next -> master 分支0…

c语言突击

一&#xff1a;前序 1.一个c语言程序有且只有一个main函数&#xff0c;是程序运行的起点&#xff01; 每个c语言程序写完后&#xff0c;都是先编译&#xff08;.c---&#xff09;&#xff0c;后链接&#xff08;.obj---&#xff09;&#xff0c;最后运行&#xff08;.exe&…

ROS-分布式通信

ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式&#xff0c;任何节点可能随时需要与任何其他节点进行通信。 因此&#xff0c;ROS对网络配置有某些要求&#xff1a; 所有端口上的所有机器之间必须有完整的双向连接。每…

【VScode】设置语言为中文

1、下载安装好vscode 2、此时可看到页面为英文&#xff0c;为方便使用可切换为中文 3、键盘按下 ctrlshiftP 4、在输入框内输入configure display language 5、选择中文&#xff0c;restart即可&#xff08;首次会有install安装过程&#xff0c;等待安装成功后重启即可&am…

反爬虫介绍及其处理方法

反爬虫机制 封IP&#xff1a;监控短时间内同一地址的请求次数过大登录及验证码&#xff1a;对于监控后封IP之后短时间内继续的大量请求&#xff0c;要求登陆或验证码通过验证之后才能继续进行。健全账号体制&#xff1a;即核心数据只能通过账号登录后才能进行访问。动态加载数…