windows搭建ftp及原理(小白向)

news2025/2/25 7:08:06

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 环境
  • 一、实验步骤
    • 1.1安装ftp
  • 二、ftp实验引发的思考
    • 1.简单阐述ftp的原理
    • 2.ftp建立的流程
  • 总结


环境

windwos任意环境不需要server
windows10
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、实验步骤

1.1安装ftp

控制面板
在这里插入图片描述控制面板\程序\程序和功能
在这里插入图片描述启动或关闭windows功能
安装iis
值得注意的是,这里ftp是集成于iis的,iis是windows自己研发的一个中间件,之所以两个集成到一起,我想大概是因为ftp和web服务的本质都是共享文件,只不过一个是共享html页面,而另外一个是共享一些二进制或者文本文件。
在这里插入图片描述我们按照上面的图片勾上我们需要的功能后点击确定
在这里插入图片描述我们在计算机管理里面可以看到iis管理模块
在这里插入图片描述在这里插入图片描述我们点击ftp身份验证
在这里插入图片描述这里的两个选项默认都是禁用的,这里注意就算开启基本身份验证也不要开启匿名身份验证,因为guest登录不需要密码,经常会被利用提权进行一些攻击,所以我们要注意这一点
在这里插入图片描述我们在桌面随便新建一个文件共享出去
在这里插入图片描述这里可以看到只有这个用户的所有者才可以利用网络发现去获取这个文件,我们没有给其他用户权限
我们给everyone读取权限
在这里插入图片描述在这里插入图片描述注意这里要启动网络发现不然没法用ip访问
在这里插入图片描述我们本地看下
在这里插入图片描述我们访问本地发现可以看到桌面的所有文件,这是为什么呢?
这里是因为ftp访问文件需要 基于用户和用户权限这里只简单讨论一下,我们本地文件发现登录的是目前使用的用户,我目前使用的是administrator这个管理员的用户,所以我们可以看到所有文件,因为我们的权限足够。

我们需要换一台机器访问
我们先看下本机的ip
在这里插入图片描述我们访问这个ip
弹出了一个认证
在这里插入图片描述我们用管理员身份登录
\192.168.43.226\Users\o\Desktop
发现是一样可以看到所有桌面
这也印证了我们上面的说法
在这里插入图片描述
那我们换一个其他用户登录

首先我们需要在ftp站点上创建一个用户

可以看到ftp站点默认有很多基础用户

分别是管理员和guest(游客)还有一些其他用户
在这里插入图片描述我们右击创建一个新用户
在这里插入图片描述在这里插入图片描述在这里插入图片描述
我们给文件配置用户共享权限
在这里插入图片描述在这里插入图片描述我们用其他设备访问这个ftp站点,并登录这个用户user1
在这里插入图片描述在这里插入图片描述
注意我们可以看到虽然我们只能看到这个文件夹,但是我们却可以看到这个文件夹所在的用户以及路径
这个有什么用呢,我们后面做探讨
\192.168.43.226\Users\o\Desktop

我们前面给了这个用户读取权限,那么我们这里测试删除一下

看是否有权限

在这里插入图片描述
可以看到是没有的,所以我们这里实验基本就完成了,可是如果只有实验,那么是没有什么意义的,我们需要深入了解ftp这个协议


二、ftp实验引发的思考

1.简单阐述ftp的原理

提起ftp我们都知道他是基于tcp/ip协议簇中的tcp协议的,而且他是有基于两个端口的一个是21一个是20,如果你能回答出这些其实只能算入门。

那么究竟应该怎样理解这协议呢?

我们先从ftp为什么用tcp协议开始刨析

我们都知道连接协议除了tcp还有udp协议,那为什么ftp用tcp而不是udp呢?

这里是因为我们经常传输的文件不是ascii码文件(文本文件),就是二进制类型的数据流文件。

那么这些文件在冗长的网络链路中传输,一旦受到网络延迟或环境干扰是很可能会丢掉一些数据的,那么如果一旦数据丢失严重很可能会导致接收方得到的是一堆乱码,所以我们需要一个协议去保证链路的可靠性,但是ftp本身并没有他可能会有校验机制,但是需要保证链路可靠还需要借助其他协议。

而如果大家对tcp协议足够了解就会知道tcp和udp的区别就在于tcp协议有优秀的差错重传机制,这些都是基于三次握手和四次挥手,显然这点tcp比udp更适合。

那么第二个问题ftp为什么有两个端口?

如果我们百度那么答案是这个
21端口用于建立控制连接,并传输FTP指令。
20端口用于建立数据连接,传输数据流。

我们能通过这两句话大概知道21端口是用来控制连接的,传输ftp指令,这究竟是在讲什么呢?

我们前面提到了大多数传输的文件分为
ascii码类型的文件(文本文件)。
二进制类型的文件。

这个控制连接其实就是在交换这些,也就是我们后面要传的文件类型和一次能接受多少个数据流(文件在链路中被分批传输)等。

这些基本的信息协商完毕后,才会建立20端口的链接。

上面只是简单的解释一下,如果要更深一步理解需要看报文和流程图。


2.ftp建立的流程

ftp是一个基于c/s架构的协议

他有主动模式和被动模式的连接方法

主动模式:服务端从20端口主动向客户端发起连接,工作过程如下图所示:
在这里插入图片描述
第一步中,FTP客户端提交PORT命令并允许服务器来回连它的数据端口(1027端口)。

第二步中,服务器返回确认。

在第三步中,FTP服务器向客户端发送TCP连接请求,目标端口为1027,源端口为20。建立起传输数据的连接。

这里我们不讨论防火墙的问题,这样会让问题更加复杂,有兴趣大家可以自行思考。

被动模式:服务端在指定范围内的某各端口被动等待客户,被动发起连接。

在这里插入图片描述在第一步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令"PASV"。

在第二步中,服务器返回命令"PORT 2024"告诉客户端:服务器用哪各端口监听数据连接。

在第三步中 ,客户端初始化一个从自己的数据端口到到服务器指定的数据端口的数据连接。

在第四步中,服务器给客户端的数据端口返回一个"ACK"响应。

这里我们不讨论防火墙的问题,这样会让问题更加复杂,有兴趣大家可以自行思考。

我们不探讨防火墙的问题,但是我们补充一个题外话,windows其实用的文件共享并不是ftp协议,而是“自行研发”的SMB协议。
起因是微软不愿意交License费,在windows系统中对该协议重新进行了实现。既然samba和windows中的网络邻居都使用SMB协议。

而微软却又因为samba协议屡次爆出危害全世界的高危安全漏洞。

我们安全圈津津乐道的“永恒之蓝”和“永恒之黑”都是基于SMB远程代码执行漏洞。


总结

上面就是ftp的基本流程和一些探讨,前面我们留下了一个问题

我们在访问ftp站点的时候,我们可以看到这个文件夹所在的用户以及路径,这里我说是一个问题,大家可能在实验的时候会忽略。

但是我们需要知道,在渗透攻击的流程中第一步就是信息收集,而信息收集其实在后渗透中也是常见的操作,用户的信息泄露也是我们所关注的焦点,我们可以通过已知的一些业务得到我们想要的用户信息,从而得到我们需要的登录账户甚至是密码。

所以我们在共享文件的时候需要特别留意是否有不安全的行为。

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

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

相关文章

〖Python网络爬虫实战⑤〗- Session和Cookie介绍

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费…

Linux的诞生过程

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…

走近阿里Apsara Clouder云计算的蓝图

文章目录一:"什么是Apsara Clouder 云计算"二:"Apsara Clouder 云计算"厉害在哪里?三:"Apsara Clouder 云计算"认证一:“什么是Apsara Clouder 云计算” 💖💖 A…

【云原生Docker】09-Docker网络详解

【云原生|Docker】09-Docker网络详解 文章目录【云原生|Docker】09-Docker网络详解前言网络详解bridge网络基于bridge网络的容器访问外部网络外部网络访问基于bridge网络的容器host网络none网络container网络自定义网络自定义bridge网络容器的互通两个相同的bridge网络容器互通…

多层多输入的CNN-LSTM时间序列回归预测(卷积神经网络-长短期记忆网络)——附代码

目录 摘要: 卷积神经网络(CNN)的介绍: 长短期记忆网络(LSTM)的介绍: CNN-LSTM: Matlab代码运行结果: 本文Matlab代码数据分享: 摘要: 本文使用CNN-LSTM混合神经网…

spring快速连接mybatis

spring快速连接mybatisspring整合mybatis1.maven依赖配置2.数据库sql设计3.数据库连接配置4.实体类设计5.Dao层开发6.SqlMapConfig.xml7.运行程序进行crudspring整合mybatis 1.maven依赖配置 配置pom.xml如下 <?xml version"1.0" encoding"UTF-8"?…

【机器学习】P6 逻辑回归的 损失函数 以及 梯度下降

逻辑回归的损失函数 以及 梯度下降逻辑回归的损失函数逻辑回归的 Loss逻辑回归的 Cost逻辑回归的梯度下降总公式推导公式梯度下降动画效果展示Reference逻辑回归的损失函数 逻辑回归的 Loss 逻辑回归是一种用于二分类问题的监督学习算法&#xff0c;其损失函数采用交叉熵&…

ChatGPT研究报告:AIGC带来新一轮范式转移

本文约4000字&#xff0c;目标是快速建立AIGC知识体系&#xff0c;含有大量的计算专业名词&#xff0c;建议阅读同时扩展搜索。 一、行业现状 1、概念界定 区别于PGC与UGC不同的&#xff0c;AIGC是利用人工智能技术自动生成内容的新型生产方式。 2、数据模态 按照模态区分&a…

【计算机网络-网络层】路由选择协议

文章目录1 路由器与路由选择1.1 路由器1.2 路由表&#xff08;RIB 表&#xff09;1.2.1 路由表项1.2.2 动态路由1.2.3 静态路由1.2.4 直连路由1.3 转发表&#xff08;FIB 表&#xff09;1.4 自治系统 AS2 内部网关协议 IGP——路由信息协议 RIP2.1 RIP 规定2.2 RIP 的工作原理2…

GPT系列论文

目录 GPT 无监督预训练 有监督微调 如何将模型应用于下游任务&#xff1f; 试验结果 GPT-2 摘要 Introduction Approach 数据集&模型 试验结果 GPT-3 核心点 名词解释 few-shot做法图示 数据集 GPT 由无监督预训练有监督微调组成 无监督预训练 有监督微调 …

ICLR 2023 | 达摩院开源轻量人脸检测DamoFD

团队模型、论文、博文、直播合集&#xff0c;点击此处浏览 一、论文 本文介绍我们被机器学习顶级国际会议ICLR 2023接收的论文 “DamoFD: Digging into Backbone Design on Face Detection" 论文链接&#xff1a;https://openreview.net/pdf?idNkJOhtNKX91 开源代码&a…

云原生_kubernetes(k8s)介绍

目录 一、应用部署方式演变 二、k8s介绍 三、k8s的组件 四、k8s中的概念 五、k8s资源管理方式 1、命令式对象管理 2、命令式对象配置 3、声明式对象配置 一、应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 1、物理机部署&#…

Vue 核心(一)

文章目录Vue 核心&#xff08;一&#xff09;一、 Vue 简介1、 概述2、 学前准备3、 第一个程序二、 模板语法三、 数据绑定四、 MVVM 模型五、 数据代理1、 defineProperty2、 理解数据代理3、 Vue中的数据代理六、 事件处理1、 事件的基本使用2、 键盘事件七、 计算属性与监视…

难以置信,已经有人用 ChatGPT 做 Excel 报表了?

要问2023年初科技领域什么最火&#xff0c;那自然是 ChatGPT。 ChatGPT 由人工智能研究实验室 OpenAI 于2022年11月30日推出。上线短短5天&#xff0c;用户数量已突破100万&#xff0c;在今年2月份&#xff0c;用户数量已经突破1亿。 ChatGPT 是一个超级智能聊天机器人&#…

GitLab CI/CD 新书发布,助企业降本增效

前言 大家好&#xff0c;我是CSDN的拿我格子衫来&#xff0c; 昨天我的第一本书《GitLab CI/CD 从入门到实战》上架啦&#xff0c;这是业内第一本详细讲解GitLab CI/CD的书籍。 历经无数个日夜&#xff0c;最终开花结果。感触良多&#xff0c;今天就借这篇文章来谈一谈这本书的…

贯穿设计模式第一话--单一职责原则

&#x1f973;&#x1f973;&#x1f973; 茫茫人海千千万万&#xff0c;感谢这一刻你看到了我的文章&#xff0c;感谢观赏&#xff0c;大家好呀&#xff0c;我是最爱吃鱼罐头&#xff0c;大家可以叫鱼罐头呦~&#x1f973;&#x1f973;&#x1f973; 从今天开始&#xff0c;将…

基于51单片机的智能婴儿看护床设计

需要源码及原理图文件请私信&#xff01;&#xff01;&#xff01;&#xff01; 基于51单片机的智能婴儿看护床设计1、引言2、功能设计系统结构框图3、系统硬件设计3.1声音电路的设计3.2语音播报电路的设计3.3独立按键电路的设计3.4模拟摇床&#xff08;步进电机驱动电路&#…

Springboot项目快速实现过滤器功能

前言很多时候&#xff0c;当你以为掌握了事实真相的时间&#xff0c;如果你能再深入一点&#xff0c;你可能会发现另外一些真相。比如面向切面编程的最佳编程实践是AOP&#xff0c;AOP的主要作用就是可以定义切入点&#xff0c;并在切入点纵向织入一些额外的统一操作&#xff0…

尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

视频地址&#xff1a;尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程、案例实操)】尚硅谷大数据技术Spark教程-笔记03【SparkSQL…

Scala之面向对象(2)

目录 单例对象&#xff08;伴生对象&#xff09;&#xff1a; 创建对象常用的两种方法&#xff1a; &#xff08;1&#xff09;使用构造器构造&#xff08;new&#xff09; &#xff08;2&#xff09;使用静态方法 伴生对象的定义&#xff1a; apply方法&#xff1a; app…