FTP协议

(以下为个人理解,可能存在错误,欢迎大家纠错)
FTP一种屏蔽了计算机内部细节的文件传输协议,可以用于客户端和服务器之间,设置有用户名和密码,常用端口是20和21,两个端口职责不同。

端口号21
功能:端口号21是FTP的控制连接端口。它主要用于建立、管理和终止FTP会话。当用户尝试通过FTP客户端连接到FTP服务器时,他们首先会通过这个端口发送登录请求和其他控制命令(如切换目录、列出文件等)。
数据传输类型:端口21上的通信主要是文本格式的命令和控制信息,而不是实际的数据文件。这些命令由FTP协议定义,并遵循特定的语法规则。
安全性:由于FTP的原始版本(即非安全的FTP)在端口21上传输未加密的命令和数据,因此存在安全风险。为了增强安全性,可以使用FTPS(FTP Secure)或SFTP(SSH File Transfer Protocol),它们分别提供了基于SSL/TLS和SSH的加密连接。
端口号20
功能:端口号20是FTP的数据连接端口。一旦用户通过端口21成功登录到FTP服务器并建立了控制连接,数据连接就会根据需要被打开以传输实际的文件内容。这种分离使得控制命令和数据传输可以并行处理,提高了效率。
数据传输类型:与端口21不同,端口20上的通信是二进制格式的文件数据。这意味着它可以传输任何类型的文件,包括文本文件、图像、视频等,而不会受到字符编码的限制。
模式:FTP支持两种数据传输模式:主动模式和被动模式。在主动模式下,FTP服务器会尝试从端口20向客户端发起一个连接来传输数据;而在被动模式下,客户端则打开一个随机端口并向服务器发出连接请求,服务器随后在该端口上进行数据传输。这两种模式的选择取决于网络配置和安全策略。
总结
端口21:用于FTP的控制连接,传输命令和状态信息。
端口20:用于FTP的数据连接,传输实际的文件内容。

三种用户模式:

1.匿名用户模式:
允许任何人无需提供用户名和密码即可登录 FTP 服务器。
通常对访问权限有严格限制,只能访问特定的公共目录,并且可能无法进行上传、删除等操作。
2.本地用户模式:
使用服务器操作系统中的本地用户账号和密码进行登录。
登录后,用户的权限与在本地操作系统中的权限相同。
比如,服务器上有个用户名为“user1”,其在操作系统中具有特定的文件和目录权限,那么在通过 FTP 以“user1”登录时,将拥有相同的权限。
3.虚拟用户模式:
这并非真正的操作系统用户,而是 FTP 服务器自定义的用户。
具有特定的权限配置,可根据需求灵活设置权限,实现更精细的访问控制。
常用于需要为 FTP 服务创建特殊权限用户,而又不想直接使用本地系统用户的情况。

简单理解这些,回到安全问题:

-匿名用户登陆漏洞
条件:目标由于配置不当开启了FTP的匿名服务并允许任何人使用
利用过程:首先用nmap -sV模式扫描服务及版本(-sC也可以)检查是否开启FTP,然后使用ftp工具连接,用户名anonymous或者ftp,密码为空就可登录,使用部分命令。
ftp匿名登陆复现

-笑脸漏洞
条件:使用的是2.3.4版本的vsftpd服务
利用过程:首先依旧nmap扫描服务及其版本,然后用ftp连接,用户名包含:),密码任意,即可运行vsf_sysutil_extra()开放服务器6200端口,然后无需密码即可从该端口以管理员身份登录
笑脸漏洞复刻

posted @ 2026-01-31 20:25  HexCat  阅读(0)  评论(0)    收藏  举报