FTP(匿名登录)未授权访问漏洞复现(vsftpd2.3.4)
Posted GuRan.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP(匿名登录)未授权访问漏洞复现(vsftpd2.3.4)相关的知识,希望对你有一定的参考价值。
FTP(匿名登录)未授权访问漏洞复现
0x01 漏洞简述
FTP匿名登录一般指使用FTP的用户启用了匿名登录功能,容易被黑客攻击,发生恶意文件上传或更严重的入侵行为。
0x02 风险等级
漏洞评定结果如下:
评定方式 等级
威胁等级 严重
影响面 广泛
0x03 漏洞详情
FTP是文件传输协议(File Transfer Protocol)的缩写,是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输的, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而,用户并不需要真正登陆到自己想要存取的计算机上面而成为完全用户,可用FTP程序访问远程资源,实现用户往返传输文件、目录管理以及访问电子邮件等等,即使双方计算机可能配有不同的操作系统和文件存储方式。
如果目标开启了匿名FTP服务,匿名FTP允许任意用户通过FTP来访问开放的目录和文件来进行信息收集进行下一步的攻击。使用匿名访问FTP服务可以尝试在Kali中nc:xxx.xxx.xxx.xxx,使用 anonymous和空密码认证。
0x04 知识拓展
FTP工作原理?
FTP基于TCP协议服务,是互联网中进行文件传输的协议,默认使用20、21号两个端口,一个数据端口和一个命令端口,端口20是数据端口,用于文件在客户端和服务器之间传输数据流。端口21是命令端口,用于传输控制流,接受客户端发出的相关FTP命令与参数。
FTP客户端在计算机网络中向FTP服务器发送服务请求,FTP服务器接收与响应FTP客户机的请求,并向FTP客户机提供所需的文件传输服务。根据TCP协议的规定,FTP服务器使用熟知端口号20、21来提供服务,FTP客户机使用临时端口号来发送请求。FTP协议为控制连接与数据连接规定不同的熟知端口号,为控制连接规定的熟知端口号是21,为数据连接规定的熟知端口号为20。FTP协议采用的是持续连接的通信方式,它所建立的控制连接的维持时间通常较长。
ftp基本模型
0x05 影响版本
全版本
0x06 漏洞环境搭建
测试环境
FTP版本:vsftpd2.3.4
靶机:Centos 7 IP: 192.168.3.2
攻击机:Kali IP: 192.168.3.22
靶机:Centos里安装vsftpd2.3.4
一、永久关闭网络管理(因为刚安装完Centos后我发现网卡丢失了所以关闭了网络管理)
二、查看当前是否默认安装vsftpd
三、卸载当前已安装的vsftpd(为后面复现vsftpd2.3.4笑脸漏洞做准备,也可以不移除)
四、查看是否移除默认安装版本
五、下载vsftpd2.3.4版本(后来才知道这个版本并没有笑脸漏洞)
wget http://www.linuxidc.com/files/2015/07/31/vsftpd-2.3.4.tar.gz
六、解压下载的压缩包
七、进入文件夹中,查看builddefs.h文件
八、编辑builddefs.h文件
九、确认打开所有权限
十、编辑opts.c文件并解决编码问题(先输入vi opts.c编辑内容再输入sed -i 's/lib\\//lib64\\//g' vsf_findlibs.sh改变编码)
十一、编译安装发现没有gcc,安装gcc(我并没有设置默认root用户)
十二、安装完gcc后编译安装又报错
解决方法:install tcp_wrappers
install tcp_wrappers-devel
解决办法:yum install openssl*
解决方法:yum install libcap-devel
十三、测试一下编译结果
十四、vsftp缺省配置需要“nobody”用户,如果系统中没有就先创建(system default have create this useraccount)
vsftpd缺省配置需要目录“/usr/share/empty”,没有该目录的话就创建一个(system default have create this directory)
这里显示目录已经存在
十五、匿名文件传输协议(anonymous FTP)需要创建用户“ftp”,创建一个主目录(属主不能是用户ftp,且用户ftp不可写)
用户ftp已存在,转至下面的命令(更改ftp目录的属主、数组及权限):
修改后ftp目录权限如下:
将配置样例拷贝到etc目录下
十六、编辑/etc/vsftpd.conf,在底部增加“listen=YES”(作用是让vsftpd不从inetd启动)
十七、运行vsftpd
十八、关闭防火墙(与Linux版本有关,我这里是CentOS 7)
十九、随便复制几个文件到“/var/ftp”目录下,然后连接FTP
安装一下FTP命令
至此环境搭建成功
0x07 漏洞验证
首先扫描目标是否开放21端口
先使用ftp账号登录发现没有异常
使用nc连接ftp
使用anonymous用户+空密码 登陆成功
0x08 修复建议
不同 FTP 服务软件可能有不同的防护程序,本修复方案以Linux 中的vsftpd服务为例,您可参考以下方案对您的 FTP 服务进行安全加固。 请确保您的 FTP 服务软件为官方最新版本。同时,建议您不定期关注官方发布的补丁,并及时进行更新。 强烈建议不要将此类型的服务在互联网开放,您可以使用 VPN 等安全接入手段连接到 FTP 服务器端,同时使用 安全组 来控制访问源IP。 Linux 系统 vsftpd 服务安全加固 1)及时安装更新补丁 在安装更新补丁前,备份您的 vsftp 应用配置。从 VSFTPD官方网站 获取最新版本的 vsftp 软件安装包,完成升级安装。或者,您可以下载最新版 vsftp 源码包,自行编译后安装更新。您也可以执行yum update vsftpd命令通过 yum 源进行更新。 2)禁止匿名登录服务 A.添加一个新用户(test),并配置强密码。例如,执行useradd -d /home -s /sbin/nologin test命令: 其中,/sbin/nologin参数表示该用户不能登录 Linux shell 环境。test为用户名。 通过passwd test命令,为该用户配置强密码。密码长度建议八位以上,且密码应包括大小写字母、特殊字符、数字混合体,且不要使用生日、姓名拼音等常见字符串作为密码。 B.修改配置文件 vsftpd.conf,执行#vim /etc/vsftpd/vsftpd.conf命令: anonymous_enable=NO,将该参数配置为 NO 表示禁止匿名登录,必须要创建用户认证后才能登录 FTP 服务 3)禁止显示 banner 信息 修改 VSFTP 配置文件 vsftpd.conf,设置ftpd_banner=Welcome。重启 vsftp 服务后,即不显示 banner 信息。 4)限制FTP登录用户 在 ftpusers 和 user_list 文件中列举的用户都是不允许访问 FTP 服务的用户(例如 root、bin、daemon 等用户)。除了需要登录 FTP 的用户外,其余用户都应该添加至此拒绝列表中。 限制FTP用户目录 A.修改 VSFTP 配置文件 vsftpd.conf chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list B.新建 /etc/vsftpd/chroot_list 文件,并添加用户名。例如,将 user1 添加至该文件,则 user1 登录 FTP 服务后,只允许在 user1 用户的 home 目录中活动。 修改监听地址和默认端口 启用日志记录 修改 VSFTP 配置文件 vsftpd.conf,启用日志记录。 xferlog_enable=YES xferlog_std_format=YES 如果您需要自定义日志存放位置,可以修改xferlog_file=/var/log/ftplog。 8)其他安全配置 修改 VSFTP 配置文件 vsftpd.conf。 #限制连接数 max_clients=100 max_per_ip=5 #限制传输速度 anon_max_rate=81920 local_max_rate=81920
0x09 学习链接
https://blog.csdn.net/qq_34412985/article/details/86737163
以上是关于FTP(匿名登录)未授权访问漏洞复现(vsftpd2.3.4)的主要内容,如果未能解决你的问题,请参考以下文章