#渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现01-笑脸漏洞(vsftpd)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读!!!

评论区留言获取资料等学习内容!!!

 

目录

笑脸漏洞(vsftpd)

一、漏洞概述

二、漏洞触发机制

三、漏洞利用流程

四、漏洞复现:

 五、Python脚本检测

六、漏洞修复

七、检测方法

八、防御措施


笑脸漏洞(vsftpd)

一、漏洞概述

笑脸漏洞是存在于vsftpd(Very Secure FTP Daemon)2.3.4版本中的一个严重安全漏洞。该漏洞允许攻击者在登录时,通过在用户名后输入特殊字符 :)(类似笑脸的符号),从而触发漏洞。当输入这个特殊字符时,vsftpd服务会在目标系统上开启一个监听在6200端口的后门,攻击者可以利用这个后门直接执行系统命令。这可能导致未经授权的远程访问和潜在的恶意操作。

二、漏洞触发机制

  1. 用户名检测:当vsftpd 2.3.4版本的FTP服务器检测到用户名中包含特殊字符 :) 时,会触发一个后门函数。
  2. 后门端口开启:触发后门函数后,服务器会在6200端口开启一个shell,使得攻击者能够通过这个端口直接连接并执行系统命令。
  3. 权限提升:由于vsftpd服务是以root权限运行的,因此攻击者通过这个后门获得的权限也是root,这意味着攻击者可以获得对整个系统的完全控制权。

三、漏洞利用流程

  1. 连接FTP服务器:攻击者首先需要连接到目标FTP服务器的21端口。
  2. 输入特殊用户名:在用户名中包含特殊字符 :),例如 user :)
  3. 连接后门端口:一旦用户名被验证,服务器会在6200端口开启一个后门。攻击者可以使用工具如nc(netcat)连接到这个端口。
  4. 执行系统命令:连接成功后,攻击者可以在目标系统上执行任意系统命令

四、漏洞复现:

笑脸漏洞(vsftpd)

攻击机 和靶机在同一网段中

配置kali

配置靶机

查看kali ip的配置

确认靶机的网络配置

确认靶场的IP 为192.168.10.130

然后查看端口开放情况

发现21端口开发,且端口版本vsftpd2.3.4

查看6200端口开放情况

连接21端口 输入账号密码,账号以‘:)’结尾

再新打开终端 ,查看6200端口已经打开

再次连接6200端口,获得root  权限

kali开启msf

搜索笑脸漏洞vsftpd漏洞的相关模块

选择攻击模块,查看当前模块可用的选项

执行漏洞测试,拿下shell

 五、Python脚本检测

以下是一个简单的Python脚本,用于检测目标系统是否存在FTP笑脸漏洞:
import socket 
from ftplib import FTP url = input("请输入你需要检测的地址: ")
username = 'anonymous'  # 用户名可以是任意值 
password = 'anonymous'  # 密码可以是任意值 try:ftp = FTP()ftp.connect(url,  21, timeout=10)  # 使用FTP登录,设置超时时间为10秒 ftp.login(username,  password)ftp.quit() s = socket.socket() s.connect((url,  6200))  # 尝试连接6200端口 s.close() print("发现笑脸漏洞!")
except:print("没有发现笑脸漏洞!")

将该脚本保存到桌面上(例如 xiaolian.py ),然后在命令行中运行该脚本,并输入目标IP地址进行检测。

六、漏洞修复

为了防止笑脸漏洞被利用,建议采取以下措施:

  1. 升级vsftpd版本:尽快将vsftpd升级到2.3.4之后的版本,因为该漏洞在后续版本中已被修复。
  2. 关闭不必要的服务和端口:如果不需要使用FTP服务,可以考虑关闭相关端口,以减少潜在的攻击面。

七、检测方法

可以通过以下方法检测目标系统是否存在FTP笑脸漏洞:

  1. 使用nmap扫描:使用nmap扫描目标系统的21端口,确认FTP服务版本是否为vsftpd 2.3.4。
  2. 尝试连接后门端口:使用工具如nc连接到6200端口,看看是否能够成功连接并执行命令。

八、防御措施

  1. 及时更新软件:定期检查并更新系统上的所有软件,确保它们都是最新的稳定版本。
  2. 限制权限:尽量避免以root权限运行服务,降低潜在漏洞带来的风险。
  3. 监控异常行为:使用入侵检测系统(IDS)和入侵防御系统(IPS)监控异常行为,及时发现并阻止潜在攻击。

未完待续~~~!!!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab2024a安装

1.开始安装 2.点击安装 3.选择安装密钥 4.接受条款 5.安装密钥 21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-60034-42697-39512-63953 6 7.选择许可证文件 8.找许可证文件 9.选…

第二节——计算机网络(四)物理层

车载以太网采用差分双绞线车载以太网并未指定特定的连接器,连接方式更为灵活小巧,能够大大减轻线束重量。传统以太网一般使用RJ45连接器连接。车载以太网物理层需满足车载环境下更为严格的EMC要求,100BASE-T1\1000BASE-T1对于非屏蔽双绞线的传…

电脑还原重置Windows系统不同操作模式

电脑有问题,遇事不决就重启,一切都不是问题!是真的这样吗。其实不然,主机系统重启确实可以自动修复一些文件错误,或者是设置问题,但是,当你由于安装了错误的驱动或者中毒严重,亦或是蓝屏,那么重启这个方子可能就治不了你的电脑了。 那么,除了当主机出现异常故障现象…

Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组

一、回顾统计函数 1、使用SUMIF函数 sumif(条件区域,求和条件,求和区域) 2、使用SUMIFS函数 SUMIFS(求和范围, 条件范围1, 条件1, 条件范围2, 条件2, ...) 二、认识数组 1、数组生成原理 所谓数组,是有序的元素序列。组成数组的各个变量称为数组的元素。对于Ex…

JVM知识点学习-1

学习视频:狂神说Java 类加载器和双亲委派机制 类加载器 作用:加载Class文件 流程:这里的名字car1。。在栈里面,但是数据在堆里面 类加载器的几个类型: 虚拟机自带的类加载器;启动类(根Boot…

Spring源码的分析之启动流程

一.前言 这篇文章的话就是我个人通过一些技术博客以及自己写一些Demo测试获得的一些感悟但是 由于本人的技术水平有限所以肯定就是会出现一些问题所以希望看这篇文章的时候如果发现错误的时候可以提出来然后我个人的话进行修改 二.SpringApplication 的构造函数 创建的一个简单…

Scala学习记录,全文单词统计

package test32 import java.io.PrintWriter import scala.io.Source //知识点 // 字符串.split("分隔符":把字符串用指定的分隔符,拆分成多个部分,保存在数组中) object test {def main(args: Array[String]): Unit {//从文件1.t…

Linux下的三种 IO 复用

目录 一、Select 1、函数 API 2、使用限制 3、使用 Demo 二、Poll 三、epoll 0、 实现原理 1、函数 API 2、简单代码模板 3、LT/ET 使用过程 (1)LT 水平触发 (2)ET边沿触发 4、使用 Demo 四、参考链接 一、Select 在…

LeetCode 3208.交替组 II:滑动窗口

【LetMeFly】3208.交替组 II:滑动窗口 力扣题目链接:https://leetcode.cn/problems/alternating-groups-ii/ 给你一个整数数组 colors 和一个整数 k ,colors表示一个由红色和蓝色瓷砖组成的环,第 i 块瓷砖的颜色为 colors[i] &a…

与7无关的数

与7无关的数 C语言代码C 语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 一个正整数,如果它能被7整除,或者它的十进制表示法中某一位上的数字为7,则称其为与7相关的数。现求所有小…

07.ES11 08.ES12

7.1、Promise.allSettled 调用 allsettled 方法&#xff0c;返回的结果始终是成功的&#xff0c;返回的是promise结果值 <script>//声明两个promise对象const p1 new Promise((resolve, reject) > {setTimeout(() > {resolve("商品数据 - 1");}, 1000)…

git 上传代码时报错

在上传代码时&#xff0c;显示无法上传 PS E:\JavaWeb\vue3-project> git push To https://gitee.com/evening-breeze-2003/vue3.git! [rejected] master -> master (non-fast-forward) error: failed to push some refs to https://gitee.com/evening-breeze-20…

视觉语言模型(VLM)学习笔记

目录 应用场景举例 VLM 的总体架构包括&#xff1a; 深度解析&#xff1a;图像编码器的实现 图像编码器&#xff1a;视觉 Transformer 注意力机制 视觉-语言投影器 综合实现 训练及注意事项 总结 应用场景举例 基于文本的图像生成或编辑&#xff1a;你输入 “生成一张…

digit_eye开发记录(3): C语言读取MNIST数据集

在前两篇&#xff0c;我们解读了 MNIST 数据集的 IDX 文件格式&#xff0c;并分别用 C 和 Python 做了 读取 MNIST 数据集的实现。 基于 C 的代码稍长&#xff0c;基于 Python 的代码则明显更短&#xff0c;然而它们的共同特点是&#xff1a;依赖了外部库&#xff1a; 基于 C …

C#窗体小程序计算器

使其能完成2个数的加、减、乘、除基本运算。界面如下图&#xff0c;单击相应的运算符按钮&#xff0c;则完成相应的运算&#xff0c;并将结果显示出来&#xff0c;同时不允许在结果栏中输入内容 代码如下&#xff1a; private void button1_Click(object sender, EventArgs e)…

Linux命令进阶·如何切换root以及回退、sudo命令、用户/用户组管理,以及解决创建用户不显示问题和Ubuntu不显示用户名只显示“$“符号问题

目录 1. root用户&#xff08;超级管理员&#xff09; 1.1 用于账户切换的系统命令——su 1.2 退回上一个用户命令——exit 1.3 普通命令临时授权root身份执行——sudo 1.3.1 为普通用户配置sudo认证 2. 用户/用户组管理 2.1 用户组管理 2.2 用户管理 2.2.1 …

【JavaEE】JavaEE、web 开发、框架(Spring) 、Maven

文章目录 一、JavaEE 发展历程二、什么是 web 开发1、什么是 web 开发&#xff1f;2、web 网站的工作流程 三、框架1、什么是框架&#xff1f;2、为什么要学框架&#xff1f;3、框架的优点&#xff08;Spring Boot VS Servlet&#xff09; 四、Maven 一、JavaEE 发展历程 Java…

虚拟机玩游戏,轻松实现多开不同IP

嘿&#xff0c;亲爱的游戏小伙伴们&#xff01;今天要和大家分享一个超级实用的技巧&#xff0c;让你在游戏中轻松多开不同IP&#xff0c;享受开挂的乐趣&#xff01; 第一步&#xff1a;准备虚拟机 首先&#xff0c;你需要下载一个虚拟机软件&#xff0c;比如VMware或者Virt…

MySQL常用语句整理

《SQL必知必会》(第3版)SQL是目前使用最为广泛的数据库语言之一。本书没有涉及理论&#xff0c;而是从实践出发&#xff0c;由浅入深地讲解了广大读者所必需的SQL知识&#xff0c;适用于各种主流数据库。实例丰富&#xff0c;便于查阅。本书涉及不同平台上数据的排序、过滤和分…

【MATLAB】基于RSSI的蓝牙定位与例程,设置4个基站、二维定位

目录 ​编辑 商品描述 主要功能 技术细节 适用场景 下载链接 商品描述 这款基于接收信号强度指示&#xff08;RSSI&#xff09;原理的蓝牙定位程序&#xff0c;专为需要高效、可靠定位解决方案的开发者和研究人员设计。它能够在二维平面内&#xff0c;通过4个锚点实现对未…