网络协议与攻击模拟_15FTP协议

  • 了解FTP协议

在Windows操作系统上使用serv-U软件搭建FTP服务

分析FTP流量

一、FTP协议

1、FTP概念

  • FTP(文件传输协议)由两部分组成:客户端/服务端(C/S架构)

应用场景:企业内部存放公司文件、开发网站时利用FTP协议将网页或程序传到网站服务器,网络中传输一些大文件使用该协议。

  • FTP:基于传输层TCP的,默认端口号(20号端口一般用于传输数据,21号端口用于传输控制信息),但是,是否使用20号端口作为传输数据端口和FTP的传输模式有关系。
    • 如果采用的主动模式,传输数据使用20号端口
    • 如果采用的被动模式,传输使用的端口需要服务器和客户机协商决定

2、工作方式

  • 主动模式(port方式)
    • 建立连接使用21号端口,客户端通过此通道向服务器发送port命令,服务器从20号端口主动向客户端发起连接(不是很安全)
      网络协议与攻击模拟_15FTP协议_第1张图片
  • 被动模式(passive方式)
    • 建立连接使用21号端口,客户端像服务器发送pasv命令,服务器收到会随机打开一个高端端口(大于1024),服务器在指定范围内的某个端口被动等待客户端的连接。
      网络协议与攻击模拟_15FTP协议_第2张图片

3、 传输模式

  • 文本模式:ASCII模式,以文本序列传输
  • 二进制模式:binary模式,以二进制序列“0”和“1”传输(视频、图片、应用程序等)

二、FTP的客户端和服务端

1、服务端程序

  • serv-U
  • filezilla server(开源)
  • vsftpd(Linux平台)
  • Windows server IIS(FTP 发布服务)

2、客户端程序

  • 命令行:ftp 192.168.10.10
  • 资源管理器:地址栏输入ftp://92.168.10.10
  • 浏览器:输入ftp://92.168.10.10
  • 第三方工具
    • flashFXP
    • filezilla client
    • cuteftp
    • xftp

三、部署FTP服务器

1、Serv-U

一台windows serversion2016虚拟机,设置vmnet1网络,自动获取IP技术

网络协议与攻击模拟_15FTP协议_第3张图片

在D盘创建技术部文件夹、财务部文件夹,在文件夹中存入一些内容。

安装Serv-U,首次打开会有一个登录界面,关掉重新打开一下就直接进去了网络协议与攻击模拟_15FTP协议_第4张图片

(1)定义新域

网络协议与攻击模拟_15FTP协议_第5张图片

  • 域详细信息

定义新域woniu就好了

网络协议与攻击模拟_15FTP协议_第6张图片

  • Domain Type

文件传输和文件共享,我们不用文件共享功能,可以把它勾掉

网络协议与攻击模拟_15FTP协议_第7张图片

  • Protocols

默认是开启了FTP的21号端口、FTPS的990端口、使用SSH的SFTP的22号端口、HTTP的80端口和HTTPS的443端口

FTP传输的是明文信息,SFTP传输的是密文信息,使用SSH可以将FTP的密码进行加密,使用SSH的SFTP是SSH和SFTP的结合。

网络协议与攻击模拟_15FTP协议_第8张图片

  • IP Listeners

监听,ipv4,所以只将ipv4勾上。

网络协议与攻击模拟_15FTP协议_第9张图片

  • 加密

Serv-U能够恢复密码 ,密码的加密模式,我们使用服务器设置

网络协议与攻击模拟_15FTP协议_第10张图片

(2)创建用户 

针对FTP的用户有匿名用户和普通用户。

a、匿名用户

匿名用户:anonymous 固定名称(某些FTP服务端软件也可以使用ftp用户名作为匿名用户)

网络协议与攻击模拟_15FTP协议_第11张图片

网络协议与攻击模拟_15FTP协议_第12张图片

密码设为空

网络协议与攻击模拟_15FTP协议_第13张图片

网络协议与攻击模拟_15FTP协议_第14张图片

网络协议与攻击模拟_15FTP协议_第15张图片

网络协议与攻击模拟_15FTP协议_第16张图片

这个用户创好了

网络协议与攻击模拟_15FTP协议_第17张图片

b、普通用户

网络协议与攻击模拟_15FTP协议_第18张图片

用户信息

网络协议与攻击模拟_15FTP协议_第19张图片

网络协议与攻击模拟_15FTP协议_第20张图片

zhangsan访问的时候直接访问到技术部文件夹且对技术部下的文件夹有完全访问权限

2、工作方式(被动)

针对Serv-U默认使用的是被动模式。

Winshark打开抓Vmnet1网卡流量,本地资源管理器访问一下,然后抓包分析:

客户机和服务器的21号端口建立三次握手

服务器返回给客户端一个消息Response响应状态码是220,服务器信息是Serv-U FTPServerv15.1 redy   220状态码 成功响应

客户机请求服务器,请求用户名是anonymous

服务器向客户机响应

状态码331,user name okey,please send complete E-mail address as password。

匿名用户没有设置密码,客户机像服务器发送响应报文,Request:PASS IEUSER@

服务器向客户机发送响应报文,Response :230 User logged in,proceed

客户机向服务器确认ACK

客户机向服务器请求,opts utf8 on,请求指定utf8字符编码集

服务器向客户机响应,Response:200 OPTS UTF8  is set to ON

客户机向服务器确认ACK

接着

客户机向服务器发送请求Request :syst

服务器向客户机响应:Response:215 UNIXType:L8(可以看出Serv-U软件的底层是UNIX)

客户机向服务器确认ACK

接着

客户机向服务器请求Request:site help

服务器响应客户机 Response:214,返回了一些Help Message

网络协议与攻击模拟_15FTP协议_第21张图片

pasv 227状态码

端口是49684这个端口我们没有设置过

网络协议与攻击模拟_15FTP协议_第22张图片

接着是客户机和服务器重新建立三次握手

网络协议与攻击模拟_15FTP协议_第23张图片

3、传输模式(binary)

从ftp://192.168.254.133下载到本地一个文件,抓包可以看到文件传输是binary模式.

网络协议与攻击模拟_15FTP协议_第24张图片

四、FTP状态码

状态码 说明
1XX 肯定的初步答复
110 重新启动标记答复
120 服务已就绪,在nnn分钟后开始
125 数据连接已打开,正在开始传输
150 文件状态正常,准备打开数据连接
2xx 肯定的完成答复
200 命令确定
202 未执行命令,站点上的命令过多
211 系统状态,或系统帮助答复
212 目录状态
213 文件状态
214 帮助消息
215 NAME系统类型,其中,NAME是Assigned Numbers文档中所列的正式系统名称
220 服务就绪,可以执行新用户的请求
221 服务关闭控制连接,如果适当请注销
225 数据连接打开,没有进行中的传输
226 关闭数据连接,请求的文件操作已成功(例如:传输文件或放弃文件)
227

进入被动模式(h1,h2,h3,h4,p1,p2)

230 用户已登录,继续进行
250 请求的文件操作正确,已完成
257 已创建“PATHNAME”
3xx 可定的中间答复
331 用户名正确,需要密码
332 需要登录账户
350 请求的文件操作正在等待进一步的信息

4xx

状态否定的完成答复
421 服务不可用,正在关闭控制连接,如果服务确定它必须关闭,将向任何命令发送这一应答
425 无法打开数据连接
426 Connection closed;transfer aborted
450

未执行请求的文件操作,文件不可用(例如:文件繁忙)

451 请求的操作异常终止们正在处理本地错误
452 未执行 请求的操作,系统存储空间不够
5xx 永久性否定的完成答复
500 语法错误,命令无法识别。这可能包括诸如命令行太长之类的情景
501 在参数中有语法错误
502 未执行命令
503 错误的命令序列
504 未执行改参数的命令
530 未登录
532 存储文件需要账户
550 未执行请求的操作,文件不可用(例如:未找到文件,没有访问权限)
551 请求的操作异常终止,未知的页面类型
552 请求的文件操作异常终止,超出存储分配(对于当前目录或数据集)
553 未执行请求的操作,不允许的文件名

你可能感兴趣的:(安全与运维,网络,运维,FTP,Serv-U)