FTP 枚举与匿名访问

NmapBeginner
立即练习

介绍

欢迎来到本次关于网络枚举和文件传输协议利用的实践实验。在网络安全领域,评估系统安全的第一步是了解它向网络暴露了哪些服务。这个过程称为枚举。

在本次实验中,你将模拟渗透测试的初始阶段。你将首先确认与目标机器的连接。然后,你将使用强大的网络扫描工具 nmap 来发现开放端口并识别运行的服务。最后,你将利用一个配置错误的 FTP 服务,该服务允许匿名访问以检索隐藏的 flag。这个练习将为你提供网络侦察和利用方面的基础技能。

完成之后,你将了解如何:

  • 使用 ping 验证网络连接。
  • 使用 nmap 扫描开放端口和服务。
  • 连接到支持匿名访问的 FTP 服务。
  • 利用常见的配置错误来访问文件。

让我们开始吧。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 98%。获得了学习者 100% 的好评率。

使用 Ping 验证与目标的连通性

在此步骤中,你将通过验证与目标系统的连接来开始侦察阶段。ping 命令是一个基础的网络工具,用于测试主机在 IP 网络上是否可达。它向目标发送 ICMP Echo Request 数据包,并等待 ICMP Echo Reply 数据包。

你的环境已预先配置了一个可通过主机名 target 访问的目标系统。

在终端中运行以下命令,向 target 发送四个数据包并确认其在线:

ping -c 4 target

你应该会看到类似以下的输出,表明目标正在响应并且连接稳定。具体的 IP 地址和时间值可能会有所不同。

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms

一旦你看到成功的回复,你就可以确信你的机器可以与目标进行通信。

使用 Nmap 扫描开放端口

在此步骤中,你将使用 nmap 对目标执行端口扫描。Nmap (Network Mapper) 是网络发现和安全审计的重要工具。通过扫描开放端口,你可以识别目标上运行的服务,这是查找潜在漏洞的关键一步。

在你的终端中执行以下命令,以扫描开放端口并检测服务版本:

nmap -sV target

Nmap 现在将启用版本检测来扫描 target 机器。片刻之后,它将显示其发现的报告。输出应类似于:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-15 10:00 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.5
Service Info: OS: Unix

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

仔细观察输出。Nmap 已发现端口 21/tcpopen 的,并且正在运行 ftp 服务,版本为 vsftpd 3.0.5。这是我们进入下一步的入口点。

通过 FTP 连接目标

在此步骤中,你将尝试连接到你发现的开放 FTP 端口。FTP (File Transfer Protocol) 是一种用于在服务器和客户端之间传输计算机文件的标准通信协议。其主要漏洞在于可能被错误配置为允许匿名访问而无需适当的身份验证。我们将利用一种允许匿名登录的常见错误配置。

运行 ftp 命令连接到 target

ftp target

你将连接到 FTP 服务并被提示输入用户名。

Connected to target.
220 (vsFTPd 3.0.5)
Name (target:labex):

系统正在请求登录。FTP 服务中一种常见的错误配置允许匿名访问。在登录提示符处输入 anonymous 并按 Enter。由于该服务配置为允许匿名访问而无需密码,因此在提示输入密码时可以再次按 Enter。

Name (target:labex): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

如果成功,你将被登录并看到一个 FTP 提示符 (ftp>)。这表明你已成功访问 FTP 服务。

ftp>

你现在已连接到 FTP 服务,可以与远程文件系统进行交互。

探索目标系统并定位 Flag

在此步骤中,你已成功获得对 FTP 服务的访问权限,你的最终任务是探索可用文件并下载 flag。这模拟了攻击者寻找敏感信息的后渗透阶段。

你目前已连接到 FTP 服务。使用 ls 命令列出当前远程位置的文件和目录。

ftp > ls

你应该会看到一个文件列表。查找名为 flag.txt 的文件。

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0              42 Sep 15 11:30 flag.txt
226 Directory send OK.
ftp>

既然你已找到文件,请使用 get 命令将其下载到你的本地机器。这将把文件从远程服务器传输到你当前的本地目录。

ftp > get flag.txt

文件将被下载,你应该会看到传输状态消息。

ftp> get flag.txt
local: flag.txt remote: flag.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for flag.txt (42 bytes).
226 Transfer complete.
42 bytes received in 0.00 secs (17.6 kB/s)
ftp>

现在退出 FTP 会话并查看下载的文件内容。

ftp > exit

使用 cat 命令显示下载的 flag.txt 文件的内容。

cat flag.txt

终端将显示 flag 的哈希值。

labex{d3adb33f_p0rt_sc4nn1ng_m4st3ry}

恭喜!你已成功地从目标系统枚举、访问并检索了 flag。复制 flag 值以完成实验。

总结

在此实验中,你完成了一个从侦察到获得访问权限的基础渗透测试流程。你学会了如何:

  • 使用 ping 确认目标在线且可达。
  • 使用 nmap -sV 执行端口扫描,识别开放端口及其上运行的服务。
  • 识别并连接到配置错误的、允许匿名访问的 FTP 服务。
  • 利用一种常见的错误配置来访问远程系统上的文件。
  • 使用 FTP 命令从远程服务器列出和下载文件。

本次练习突出了网络安全基础知识的重要性。FTP 服务应通过身份验证和访问控制进行正确配置。除非有特定需求,否则应禁用匿名访问,并且所有文件传输服务都应使用 SFTP 或 FTPS 等安全协议。通过了解攻击者如何运作,你将能更好地保护自己的系统。