网站建设公司商务网站项目书,wordpress获取当前分类文章数,宁波市有哪些网站建设公司,怎么做PayPal网站收款前言
日常大家可能接触web漏洞比较多而对其他端口及协议不那么了解#xff0c;其实其他协议漏洞在渗透中也同样重要只是平时可能接触得不多。本文将介绍FTP协议、FTP匿名用户登录及其具体流程分析和自动化利用demo。
FTP简介
FTP是File Transfer Protocol#xff08;文件传…前言
日常大家可能接触web漏洞比较多而对其他端口及协议不那么了解其实其他协议漏洞在渗透中也同样重要只是平时可能接触得不多。本文将介绍FTP协议、FTP匿名用户登录及其具体流程分析和自动化利用demo。
FTP简介
FTP是File Transfer Protocol文件传输协议的简称用于internet上的控制文件的双向传输。
很多人以为FTP是一个服务实际上FTP 是一个协议而不是一个服务应用到FTP协议的服务有很多常用的就是vsftpd。
FTP有三种用户模式
匿名用户模式
允许任何人无需提供用户名和密码即可登录 FTP 服务器。通常对访问权限有严格限制只能访问特定的公共目录并且可能无法进行上传、删除等操作。 本地用户模式
使用服务器操作系统中的本地用户账号和密码进行登录。登录后用户的权限与在本地操作系统中的权限相同。比如服务器上有个用户名为“user1”其在操作系统中具有特定的文件和目录权限那么在通过 FTP 以“user1”登录时将拥有相同的权限。 虚拟用户模式
这并非真正的操作系统用户而是 FTP 服务器自定义的用户。具有特定的权限配置可根据需求灵活设置权限实现更精细的访问控制。常用于需要为 FTP 服务创建特殊权限用户而又不想直接使用本地系统用户的情况。 FTP协议占用情况
21端口:命令控制用于接收客户端执行的FTP命令。
20端口:数据传输用于上传、下载文件数据。、
FTP服务搭建-vsftpd
vsftpd默认以匿名用户访问不修改配置文件的话本身就存在匿名用户登录漏洞。
vsftpd安装
yum -y install vsftpd
服务启动
systemctl vsftpd start
防火墙规则放行
firewall-cmd --zonepublic --add-serviceftp --permanent
firewall-cmd --zonepublic --add-port21/tcp --permanent
复现分析
进行连接
ftp 192.168.174.128 输入用户名 anonymous和ftp都行 经过测试发现密码置为空或者是随意输入都可成功登录 抓包分析
首先进行TCP三次握手建立连接 建立连接后服务端向客户端发送包表示服务已为新连接的用户就绪以及一些服务信息 客户端发送包表示表示服务器需要切换到UTF8字符集进行工作 服务端再向客户端回包表示表示命令执行成功且已在工作再UTF8模式下
接下来就是整个登录的流程包括指定用户、输入密码和登录成功 指定登录用户 提示输入密码 输入密码 提示登录成功 脚本测试
可以使用python的ftplib库模拟FTP协议登陆的行为来进行自动化测试
简单demo
# -*- coding:utf-8 -*-Created on : 2024/8/1 16:28
Auther: c
Des: import ftplibfrom loguru import loggerdef anonymous_login(ip):try:ftp ftplib.FTP(ip)logger.info(尝试匿名用户登录 ip)ftp.login()except ftplib.all_errors as e:logger.info(f匿名用户利用失败: {e})else:logger.info(存在匿名用户 ip)if __name__ __main__:anonymous_login(192.168.174.128) 我们可以具体跟进看到login函数 默认的用户为anonymous密码为anonymous 确实是登录成功了
修复措施
vsftpd下禁用匿名用户登录需修改配置文件/etc/vsftpd/vsftpd.conf将anonymous_enableYES修改为anonymous_enableNO再重新启动服务。 再次用脚本测试 可以看到登陆失败 在wireshark中同样也是
总结
针对端口协议自动化探测及利用的脚本编写在此只做了简单demo示例。如果想更进一步可以对端口进行遍历或指定探测与特定服务返回数据包中固定字段进行匹配识别出协议再打对应协议漏洞poc。