FTP协议-匿名用户登录 从0到1

news2024/11/28 12:44:13

前言

日常大家可能接触web漏洞比较多而对其他端口及协议不那么了解,其实其他协议漏洞在渗透中也同样重要只是平时可能接触得不多。本文将介绍FTP协议、FTP匿名用户登录及其具体流程分析和自动化利用demo。

FTP简介

FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输。

很多人以为FTP是一个服务,实际上FTP 是一个协议而不是一个服务,应用到FTP协议的服务有很多,常用的就是vsftpd。

FTP有三种用户模式:

  1. 匿名用户模式:
  • 允许任何人无需提供用户名和密码即可登录 FTP 服务器。
  • 通常对访问权限有严格限制,只能访问特定的公共目录,并且可能无法进行上传、删除等操作。

  1. 本地用户模式:
  • 使用服务器操作系统中的本地用户账号和密码进行登录。
  • 登录后,用户的权限与在本地操作系统中的权限相同。
  • 比如,服务器上有个用户名为“user1”,其在操作系统中具有特定的文件和目录权限,那么在通过 FTP 以“user1”登录时,将拥有相同的权限。

  1. 虚拟用户模式:
  • 这并非真正的操作系统用户,而是 FTP 服务器自定义的用户。
  • 具有特定的权限配置,可根据需求灵活设置权限,实现更精细的访问控制。
  • 常用于需要为 FTP 服务创建特殊权限用户,而又不想直接使用本地系统用户的情况。

FTP协议占用情况:

21端口:命令控制,用于接收客户端执行的FTP命令。

20端口:数据传输,用于上传、下载文件数据。、

FTP服务搭建-vsftpd

vsftpd默认以匿名用户访问,不修改配置文件的话本身就存在匿名用户登录漏洞。

vsftpd安装

yum -y install vsftpd

服务启动

systemctl vsftpd start

防火墙规则放行

firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent

复现分析

进行连接

ftp 192.168.174.128

输入用户名 anonymous和ftp都行

经过测试发现密码置为空或者是随意输入都可成功登录

抓包分析

首先进行TCP三次握手建立连接

建立连接后服务端向客户端发送包,表示服务已为新连接的用户就绪以及一些服务信息

客户端发送包表示表示服务器需要切换到UTF8字符集进行工作

服务端再向客户端回包表示表示命令执行成功且已在工作再UTF8模式下

接下来就是整个登录的流程,包括指定用户、输入密码和登录成功

指定登录用户

提示输入密码

输入密码

提示登录成功

脚本测试

可以使用pythonftplib库模拟FTP协议登陆的行为来进行自动化测试

简单demo

# -*- coding:utf-8 -*-
"""
@Created on : 2024/8/1 16:28
@Auther: c
@Des: 
"""
import ftplib

from loguru import logger


def 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_enable=YES修改为anonymous_enable=NO,再重新启动服务。

再次用脚本测试

可以看到登陆失败

在wireshark中同样也是

总结

针对端口协议自动化探测及利用的脚本编写在此只做了简单demo示例。如果想更进一步,可以对端口进行遍历或指定探测,与特定服务返回数据包中固定字段进行匹配识别出协议再打对应协议漏洞poc。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2062500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用Aspose.BarCode 在 C# 中创建微型二维码

Aspose.BarCode提供多种编程语言的 API,例如Java、Python、C等。它提供了强大的解决方案,可以通过编程创建和处理条形码和二维码,我们将实现如何使用Aspose.BarCode for .NET在 C# 中创建微型二维码。接下来,我们还将演示如何以编…

软件测试工程师是做什么的?

软件测试工程师扮演着软件开发过程中的关键角色,他们的主要职责是对软件进行全面的测试,确保其质量和稳定性。 随着软件行业的迅猛发展,对这类专业人才的需求也在不断增长。 本文将深入探讨软件测试工程师的职责及其所需的技能。 一、软件测…

新技术能够区分真实照片和 AI 伪造图片,但为何平台没有使用?|TodayAI

随着生成式 AI 图像工具的快速发展,网络上越来越多的图像真假难辨。尽管已有技术能够区分真实照片和 AI 伪造图片,但大多数在线平台尚未充分利用这一技术。随着美国总统大选临近,网络上充斥着关于候选人唐纳德特朗普和卡玛拉哈里斯的各种照片…

组合模式 详解

组合模式 简介: 将对象组合成树形结构以表示"部分-整体"的层次结构, 使得用户对单个对象和组合对象的使用具有一致性. 组合模式也是一种结构类型的模式.看简介比较容易理解, 毕竟树形结构是数据结构必修的, 我们仍然举个例子方便理解 以公司的组织架构为例 公司 - …

Web大学生网页作业成品——明星EXO介绍网页设计与实现(HTML+CSS)(10个页面)(TABLE布局)

🎉🎉🎉 常见网页设计作业题材有**汽车、环保、明星、文化、国家、抗疫、景点、人物、体育、植物、公益、图书、节日、游戏、商城、旅游、家乡、学校、电影、动漫、非遗、动物、个人、企业、美食、婚纱、其他**等网页设计题目, 可满足大学生网…

LED 数码显示管的结构

LED 数码显示管是一种常用的字符显示器件,能与 CMOS、TTL 等集成电路直接配合,作静态、动态扫描显示之用。图12-33(a)是LED数码显示管的实物图,图 12-33(b)是LED数码显示管的内部结构。它实际上是由8个发光二极管构成的,其中7个发光二极管排列成“8”字形…

【线性表】内容总结

1.单链表,循环链表,双向链表的循环效率 2.顺序表和链表的比较 1.什么是存储密度 1.定义: 存储密度是指结点数据本身所占的存储量和整个结点结构中所占的存储量 之比,即: 2.实例 比如在32位系统上,一个12字节的结…

保姆级Python与PyCharm安装教程

本文演示所用的所用的所有工具包都已经打包好了,【点击这里】即可获得 一、简介 Python是一种广泛使用的高级编程语言,因其简洁的语法和丰富的库支持,在数据科学、Web开发、人工智能等领域广受欢迎。PyCharm是由JetBrains开发的一款针对Pyt…

一篇文章带你了解归并排序-分治法

文章目录 两个有序数组排序一个局部有序数组排序分治法归并排序 两个有序数组排序 先来一个场景假设,先有两个有序数组{1,3,5,9}、{2,4,6,8},要求合并成一个有序数组。 我们先上一段简单的处理代码 public static int[] merge(int[] leftArr, int[] righ…

Redis后台线程之非阻塞删除

当Redis执行删除命令的时候,如果被删除的对象是列表、集合、散列类型,因为这些数据类型包含的元素存放在不同的内存块中,redis需要遍历所有元素来释放其对应的内存块空间,这个耗时操作可能导致redis阻塞,redis4提供的U…

[数据集][目标检测]agvs仓储机器人检测数据集VOC+YOLO格式967张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):967 标注数量(xml文件个数):967 标注数量(txt文件个数):967 标注类别…

API接口安全101:基础概念与最佳实践

文章目录 API定义协议架构风格描述语言 Webservicewsdl介绍复现 SOAPswagger介绍指纹查找利用存在目录复现 HTTPWebpack介绍复现 在当今数字化时代,API接口已成为现代软件架构中不可或缺的组成部分。它们连接着各种应用程序和服务,促进了数据交换和功能集成。然而,随着API的普及…

【PyTorch】神经网络的基本骨架-nn.Module的使用以及convolution-layers卷积层介绍

前提文章目录 【PyTorch】深度学习PyTorch环境配置及安装【详细清晰】 【PyTorch】深度学习PyTorch加载数据 【PyTorch】关于Tensorboard的简单使用 【PyTorch】关于Transforms的简单使用 【PyTorch】关于torchvision中的数据集以及dataloader的使用 文章目录 前提文章目录nn.…

从易车“超级818冠军之夜” 看如何借势体育营销点燃汽车消费热潮

编辑 | 魏力 发布 | 大力财经 导语:这个8月,是属于奥运的8月。 巴黎奥运会虽圆满落幕,但属于奥运健儿们的热度还在持续。在这股奥运热潮的带动下,全民运动热情持续释放,同时也激发出巨大的消费潜力。 赛场外&#…

Go 1.23中值得关注的几个变化

距离上一次Go 1.22版本发布[1]又过去六个月了,我们如期迎来了Go 1.23版本的发布](https://mp.weixin.qq.com/s/IpDUOe0AUDKW2PYCWmvLYw)。 对于Go项目乃至整个Go社区而言,这个版本还有一点额外的意义,那就是这是Russ Cox[2]作为Tech lead&…

nginx 日志格式化,每日分割文件(已亲测)

首先nginx版本是1.23.4,在安装目录的conf文件夹下,配置nginx.conf。配置如下: logformat 代表日志格式设置 frmain 代表日志配置别名 map 行代表设置每日切割文件格式 需要在配置文件location指定访问的路径下,配置日志输出路径…

AI自动生成PPT怎么用?5大AI生成PPT技巧教会你

处暑悄然而至,标志着炎热夏季的逐渐远去,自然界的万物开始步入收获与沉淀的季节。值此节气更迭之际,何不借助现代科技的力量,用一份精美的PPT来宣传处暑的独特魅力? 无需繁琐制作,AI生成PPT免费工具就能助…

C学习(数据结构)-->实现链式结构二叉树

目录 一、链式二叉树结构 二、实现 1、申请新结点 2、前、中、后序遍历 1)前序遍历 例: 2)中序遍历 3)后序遍历 3、结点个数 1)二叉树结点个数 例:​编辑 2)二叉树叶子结点个数 3&…

C++入门基础知识27

成长路上不孤单😊【14后小学生一枚,C爱好者,持续分享所学,如有需要欢迎收藏转发😊😊😊😊😊😊😊(!!&#xff01…

工厂老板、设计师怎么选通风采光天窗?重点关注哪些方面?

选通风采光天窗首先看预算与通风采光需求,然后看品牌和售后,选购过程中重点关注天窗的型号、规格尺寸、材料配置、外观造型及颜色。一、预算与通风采光需求 通风采光天窗已成为厂房建筑上必备的屋顶设备,现目前天窗的型号多样,价位…