RDP 枚举与弱密码访问

LinuxBeginner
立即练习

介绍

欢迎来到本次关于远程桌面协议 (RDP) 枚举和利用的实践实验。RDP 是管理员用于远程管理 Windows 系统的一种常用协议。然而,当配置不当时,它可能成为一个重大的安全风险。

在本次实验中,你将模拟一个常见的攻击向量:攻击者扫描暴露的 RDP 服务,识别配置弱点,并使用默认或易于猜测的凭据来获取访问权限。你将使用标准的渗透测试工具,如 nmap 进行扫描,以及 xfreerdp 连接到远程会话。你的最终目标是导航被攻破的系统并检索隐藏的 flag。

完成实验后,你将能够:

  • 验证到目标系统的网络连接。
  • 使用 nmap 扫描和枚举 RDP 服务。
  • 识别安全弱点,例如低加密级别。
  • 使用 xfreerdp 尝试使用弱凭据获取访问权限。
  • 执行基本的后渗透操作以查找敏感信息。

让我们开始这次网络安全实践。

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

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

在此步骤中,你将执行侦察的第一阶段:确认目标系统在线且可从你的机器访问。ping 命令是一个标准的网络诊断工具,它向主机发送 ICMP 数据包以测试连接性。

你的环境中包含一个可通过主机名 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.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms

在确认连接性后,你已准备好进行更详细的扫描。

使用 Nmap 扫描开放端口

在此步骤中,你将使用 nmap 扫描目标开放的端口,并识别其上运行的服务。这是枚举的关键部分,因为它揭示了潜在的攻击面。我们将特别检查 RDP 服务,它通常运行在端口 3389 上。

执行以下 nmap 命令,对端口 3389 (-p 3389) 执行版本扫描 (-sV),并运行一个脚本 (--script) 来检查 RDP 加密级别:

nmap -sV -p 3389 --script rdp-enum-encryption target

输出将提供关于 RDP 服务的详细信息。

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

PORT     STATE SERVICE       VERSION
3389/tcp open  ms-wbt-server xrdp
| rdp-enum-encryption:
|   Security layer
|     CredSSP (NLA): SUCCESS
|     CredSSP with Early User Auth: SUCCESS
|     Native RDP: SUCCESS
|     RDSTLS: SUCCESS
|     SSL: SUCCESS
|   RDP Encryption level: High
|     128-bit RC4: SUCCESS
|_  RDP Protocol Version:  RDP 5.x, 6.x, 7.x, or 8.x server

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

从扫描结果中,可以观察到端口 3389/tcp 是开放的,并且运行着 xrdp 服务。虽然加密级别显示为“High”,但主要漏洞在于弱凭据,而非加密弱点。该服务支持多种身份验证方法,我们将在下一步利用弱密码身份验证。

通过 RDP 连接目标

在此步骤中,你将尝试使用 administratorpassword 这组凭据连接到 RDP 服务。这组凭据是常见的默认值,通常是暴力破解攻击的主要目标。你将使用 xfreerdp,一个适用于 Linux 的命令行 RDP 客户端。

首先,请确保已安装 xfreerdp。设置脚本应该已经处理了这个问题,但如果需要,你可以运行 sudo apt install freerdp2-x11

现在,执行以下命令连接到 target

xfreerdp /u:administrator /p:password /v:target
  • /u:administrator: 指定用户名。
  • /p:password: 指定密码。
  • /v:target: 指定服务器地址。

你可能会看到一个证书警告,因为目标正在使用自签名证书。这在实验环境中是正常的。输入 yes 并按 Enter 继续。

[11:25:30:789] [INFO][com.freerdp.client.x11] - Please check if the server is running with the correct certificate.
[11:25:30:789] [INFO][com.freerdp.client.x11] - Certificate details:
...
The certificate is not trusted. Do you trust the certificate? (Y/N) yes
RDP Connection

成功身份验证后,将打开一个新窗口,显示目标系统的远程桌面。你现在已获得对该机器的图形访问权限。

探索目标系统并定位 Flag

在此步骤中,你的最终目标是探索远程系统并找到 Flag。这模拟了后渗透阶段,攻击者在此阶段会搜索有价值的数据。

在 RDP 会话窗口中,你将看到一个桌面环境。你有几种方法可以定位和查看 Flag:

方法 1:使用文件管理器

  1. 定位并打开 文件管理器 应用程序(它可能看起来像一个文件夹图标)。
  2. 导航到 administrator 用户主目录下的 Documents 文件夹:/home/administrator/Documents
  3. 找到名为 flag.txt 的文件。
  4. 双击 flag.txt 使用文本编辑器(Mousepad)打开它。
File Manager

方法 2:使用终端

  1. 从桌面或菜单中打开 终端 应用程序。
  2. 运行命令:cat /home/administrator/Documents/flag.txt
Terminal window showing command to display flag

任一方法都可以显示 Flag 文件的内容。

labex{w34k_p4ssw0rd_rdp_pwn3d}

恭喜!你已成功枚举了 RDP 服务,利用了弱密码,并获取了 Flag。

重要提示: 要完成实验验证,你需要复制 Flag 值并将其保存到主机上的一个文件中。在 /home/labex/project 目录中创建一个名为 flag.txt 的文件,并将 Flag 内容粘贴进去。

echo "labex{w34k_p4ssw0rd_rdp_pwn3d}" > /home/labex/project/flag.txt

现在你可以关闭 RDP 窗口以断开会话。

总结

在此实验中,你成功地对一个配置错误的远程桌面协议(RDP)服务执行了一次模拟攻击。你完成了渗透测试的关键阶段:

  • 侦察(Reconnaissance): 你使用 ping 命令确认目标在线。
  • 枚举(Enumeration): 你使用 nmap 配合特定脚本,识别出开放的 RDP 端口,并收集了其配置详情,例如弱加密级别。
  • 利用(Exploitation): 你使用 xfreerdp,通过利用 administrator 账户的弱密码和可预测性,成功访问了远程系统。
  • 后渗透(Post-Exploitation): 你浏览了被攻陷系统的文件结构,以定位并获取 Flag。

本次练习展示了保护远程访问服务的重要性。将 RDP 暴露在互联网上、使用弱密码或默认凭据,以及采用过时的安全设置,都可能导致严重的漏洞。通过理解这些攻击向量,你将能更好地实施强大的防御措施。