Nmap 端口扫描与 Telnet 访问

NmapBeginner
立即练习

介绍

欢迎来到本次关于网络枚举和访问的实操实验。在网络安全领域,评估系统安全的第一步是了解它向网络暴露了哪些服务。这个过程被称为枚举。

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

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

  • 使用 ping 验证网络连接性。
  • 使用 nmap 扫描开放的端口和服务。
  • 连接到 Telnet 服务。
  • 利用简单的配置错误来获得系统访问权限。

让我们开始吧。

使用 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 target

Nmap 现在将扫描 target 机器。片刻之后,它将显示一份发现报告。输出应该类似于:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-12 10:54 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Other addresses for target (not scanned): 172.17.0.2 172.17.0.2 172.17.0.2 172.17.0.2
Not shown: 999 closed ports
PORT   STATE SERVICE
23/tcp open  telnet

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

仔细观察输出。Nmap 发现端口 23/tcpopen 的,并且正在运行 telnet 服务。这是我们进入下一步的入口点。

通过 Telnet 连接目标

在此步骤中,你将尝试连接到你发现的开放 Telnet 端口。Telnet 是一个古老且不安全的协议,它为远程主机提供命令行界面。其主要漏洞在于它以明文传输所有数据,包括用户名和密码。我们将尝试利用一个常见的错误配置:一个密码为空的账户。

运行 telnet 命令连接到 target

telnet target

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

Trying 172.17.0.2...
Connected to target.
Escape character is '^]'.
target login:

系统正在请求登录。在渗透测试中,一个常见的做法是尝试默认或常见的用户名。让我们试试 root。在登录提示符处输入 root 并按 Enter。由于系统可能配置错误允许空密码,请不要输入密码,如果被提示输入密码,只需再次按 Enter 即可。

target login: root

如果成功,你将被登录,并看到一个 shell 提示符,例如 #。这表明你已获得目标系统的管理员访问权限。

/ #

你现在已进入目标系统的 shell。

探索目标系统并定位 Flag

在此步骤中,你已成功获得目标系统的访问权限,你的最终任务是探索文件系统并找到 flag。这模拟了攻击者寻找敏感信息的后渗透阶段。

你目前位于目标机器的根目录 (/)。使用 ls 命令列出当前位置的文件和目录。

ls

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

/ ## ls
bin         dev         etc         flag.txt    home        root        usr
/ #

现在你已经找到了文件,使用 cat 命令显示其内容。这将揭示 flag。

cat flag.txt

终端将显示 flag 的哈希值。

/ ## cat flag.txt
labex{d3adb33f_p0rt_sc4nn1ng_m4st3ry}
/ #

恭喜!你已成功地枚举、访问并从目标系统检索了 flag。复制 flag 值以完成实验。要退出 Telnet 会话,你可以输入 exit 并按 Enter。

总结

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

  • 使用 ping 确认目标在线且可达。
  • 使用 nmap -sV 执行端口扫描,识别开放端口及其上运行的服务。
  • 识别并连接到不安全的 Telnet 服务。
  • 利用常见的错误配置(一个密码为空的用户)来获得远程系统的 shell 访问权限。
  • 导航目标的文件系统以查找并检索敏感信息(flag)。

这个练习突出了网络安全基础知识的重要性。像 Telnet 这样的服务不应暴露在互联网上,所有账户都必须用强大且唯一的密码进行保护。通过了解攻击者如何运作,你就能更好地保护自己的系统。