FTP协议抓包分析

1-3号包是tcp三次握手,建立连接,可见ftp是基于tcp的

4号包,服务器向客户端发送自己的相关信息,后面的状态码220表示服务准备就绪

5号包应该是编码相关内容,具体不知
6-13号包,登录,8号包发送输入的用户名:ftp,11号包向服务端发送输入的密码:111111(明文传输->不安全),12号包提示,登录成功(状态码230表示登录成功)
14-16号包,期间去百度ftp相关知识,没有操作,可以看到大约两分钟后(13-14时间差),服务器提示超时,主动关闭了连接(状态码421表示服务关闭)
17-18号包,因为当时不知道ftp服务器会超时关闭连接,继续操作时提示连接已经关闭,看了数据包才知道(14-16),服务器已经关闭了连接,17-18是我刚才尝试继续操作的时候,被服务器拒绝(客户端没有自动提示连接超时关闭,当超时后再操作才提示连接已关闭,具体提示内容没有截图)


FTP响应码 响应代码 解释说明 
110 新文件指示器上的重启标记              120 服务器准备就绪的时间(分钟数)          125 打开数据连接,开始传输 
150 打开连接                                         200 成功 202 命令没有执行                                   211 系统状态回复
 212 目录状态回复                                            213 文件状态回复                                                    214 帮助信息回复 
215 系统类型回复                                             220 服务就绪                                                             221 退出网络 
225 打开数据连接                                             226 结束数据连接                                                    227 进入被动模式(IP 地址、ID 端口) 
230 登录因特网                                                  250 文件行为完成                                                   257 路径名建立 
331 要求密码                                         332 要求帐号                                               350 文件行为暂停 
421 服务关闭                                         425 无法打开数据连接                                           426 结束连接
 450 文件不可用                                                451 遇到本地错误                                        452 磁盘空间不足
 500 无效命令                                        501 错误参数                                               502 命令没有执行
 503 错误指令序列                                            504 无效命令参数                                                   530 未登录网络 
532 存储文件需要帐号                                    550 文件不可用                                                        551 不知道的页类型 
552 超过存储分配                                             553 文件名不允许

ftp协议分析2 (本次操作是登录后下载了IcY.asp文件,执行命令get IcY.ASP,顺便测试一下windows是不区分大小写的)

1-13号包是登录过程,上面已经解释过了
下面主要解释ftp文件下载过程:get IcY.ASP(服务器上文件名是IcY.asp)
14号包:我想从Ip = 169.254.69.245(就是客户端自己的地址) 端口:59*256+77=15181连接你的数据端口(256是约定好的常数) 使用PORT 主动模式(对服务器来说 :意思就是让服务器主动来连接客户端,从下面分析可以看到)
15号包,服务器同意
16号包:我想下载IcY.ASP文件(服务器上该文件的命名是IcY.asp)
17号包:给你传了(这里过滤包时不要直接追踪1-17号包的TCP流,因为ftp的控制连接和数据连接是两个不同的TCP连接,如果直接追踪,看不到数据连接,也就是看不到数据传输的过程)

18-20号包:TCP连接三次握手,可以看到ftp为数据传输又开辟了一个TCP连接(数据连接),服务器端口是20,常说的ftp21端口是ftp的控制连接(1-17号包)

21-161是传输IcY.asp文件的过程
可见,服务器每发两个包,客户端ack一次
162-165:数据连接关闭,文件传输完成(注意只是关闭了数据连接)
166-168:服务器通过控制连接告诉客户端,我传完了
169-170:此时我输入了quit命令,退出ftp客户端
171-174:四次挥手,断开控制 连接,至此,ftp连接完全关闭(控制连接+数据连接)


文件下载后的名是IcY.ASP (是按照我请求的文件名,而不是服务器中的文件名IcY.asp)


FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。




ftp服务器搭建:
具体百度,补充,在ftp的目录下放上文件后直接客户端get 下载提示access denied (状态码好像是5**,忘了)
解决方法,在服务器中把文件的权限配置:右击文件属性-安全-添加用户everyone-完全控制


ftp客户端:
cmd命令行下
输入 ftp 服务器IP
输入用户名和密码即可


参考:《Wireshark网络分析就这么简单》 林沛满著 

 

  • 27
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值