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 的用户外,其余用户都应该添加至此拒绝列表中。
5)制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 目录中活动。
6)修改监听地址和默认端口
7)启用日志记录
修改 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)相关推荐

  1. 漏洞检测与防御:Redis未授权访问漏洞复现

    漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...

  2. Redis未授权访问漏洞复现

    Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...

  3. Druid未授权访问 漏洞复现

    为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述 02 利用方式 03 修复方案 01 漏洞描述 Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池.Druid提供的监控 ...

  4. Redis未授权访问漏洞复现与利用

    1.漏洞介绍 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果 ...

  5. Redis未授权访问漏洞复现(三种方式)

    目录 利用无口令远程登陆redis 利用Redis的持久化写webshell 安装 复现 Redis 利用持久化,利用"公私钥"认证获取root权限 利用无口令远程登陆redis ...

  6. Springboot Actuator未授权访问漏洞复现

    更新时间:2022.07.20 微信公众号:乌鸦安全 1. 漏洞介绍 Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助监控和管理 ...

  7. 常用的30+种未授权访问漏洞汇总

    未授权访问漏洞汇总预览 1 .FTP 未授权访问(21) 2 .LDAP 未授权访问(389) 3 .Rsync 未授权访问(873) 4 .ZooKeeper 未授权访问(2181) 5 .Dock ...

  8. 未授权访问漏洞-Redis未授权访问漏洞

    文章目录 未授权概述 常见未授权访问漏洞 Redis未授权访问 Redis简介 应用场景 Redis 架构 漏洞发现 端口 端口探测 Redis常用命令 Redis历史漏洞 Redis未授权访问 Re ...

  9. JBoss未授权访问漏洞Getshell过程复现

    文章目录 前言 漏洞复现 漏洞描述 靶场搭建 漏洞利用 防御手段 Jexboss脚本 前言 在 2021 年第五届强网杯全国网络安全挑战赛的 EasyWeb 赛题中遇到了 JBoss 未授权访问漏洞 ...

  10. 漏洞复现 - - - 未授权访问漏洞Redis

    目录 一,未授权访问漏洞概述 二,常见的未授权访问漏洞 Redis历史漏洞 三,Redis未授权访问 漏洞信息 Redis 简介 四,环境搭建 漏洞环境搭建 五,漏洞利用方法 实验环境 方法一 ​编辑 ...

最新文章

  1. lifekeeper for linxu安装步骤
  2. Mac下python3配置opencv3 3和Mac下单独opencv的配置以及iOS下配置opencv
  3. pybind 回调 多线程 异常
  4. RuoYi(若依开源框架)-前后台分离版-后端流程简单分析
  5. 走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
  6. Oracle数据库分页的三种方法
  7. (十一)Spring 基础注解(对象创建相关注解、注入相关注解)
  8. data.name.toLowerCase() is not a function问题
  9. c语言中文网 vc++6.0下载量_【新手必看】C语言开发环境,请查收!
  10. Ajax 文件上传之PHP心得
  11. Check the difficulty of problems - poj 2151 (概率+DP)
  12. 用html5开发本地桌面应用,十个使用HTML5开发的精彩应用
  13. javascript xml转json
  14. 如何查询Linux服务的作用
  15. 一味地追求流量正确么?
  16. JavaWeb出现404一个很隐蔽的原因
  17. java中进行socket编程实现tcp、udp协议总结
  18. excel服务器2010网站,勤哲Excel服务器2010高级企业版完整安装包
  19. Java用itext工具根据模板生成PDF
  20. K3 工业单据的对应相关表作用

热门文章

  1. Raspberry Pi (树莓派)折腾记之一
  2. C#数据库编程实战经典
  3. 【java期末复习题】第15章 JDBC数据库编程
  4. 基于ThinkPHP5+MySQL的超市进销存管理系统
  5. 全站仪 经纬仪 水准仪 操作演示视频教程 建筑工程测量放线7日通
  6. C语言学习复盘整理笔记(六)
  7. 北理工珠海学院计算机分数线,北京理工大学珠海学院
  8. CAS单点登录原理分析(一)
  9. 14-Shiro-单点登录原理
  10. 使用SpringCloud实现Java分布式开发【part-2】:Ribbon负载均衡的介绍及使用方式