介绍
欢迎来到本次关于远程桌面协议 (RDP) 枚举和利用的实践实验。RDP 是管理员用于远程管理 Windows 系统的一种常用协议。然而,当配置不当时,它可能成为一个重大的安全风险。
在本次实验中,你将模拟一个常见的攻击向量:攻击者扫描暴露的 RDP 服务,识别配置弱点,并使用默认或易于猜测的凭据来获取访问权限。你将使用标准的渗透测试工具,如 nmap 进行扫描,以及 xfreerdp 连接到远程会话。你的最终目标是导航被攻破的系统并检索隐藏的 flag。
完成实验后,你将能够:
- 验证到目标系统的网络连接。
- 使用
nmap扫描和枚举 RDP 服务。 - 识别安全弱点,例如低加密级别。
- 使用
xfreerdp尝试使用弱凭据获取访问权限。 - 执行基本的后渗透操作以查找敏感信息。
让我们开始这次网络安全实践。
使用 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 连接目标
在此步骤中,你将尝试使用 administrator 和 password 这组凭据连接到 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

成功身份验证后,将打开一个新窗口,显示目标系统的远程桌面。你现在已获得对该机器的图形访问权限。
探索目标系统并定位 Flag
在此步骤中,你的最终目标是探索远程系统并找到 Flag。这模拟了后渗透阶段,攻击者在此阶段会搜索有价值的数据。
在 RDP 会话窗口中,你将看到一个桌面环境。你有几种方法可以定位和查看 Flag:
方法 1:使用文件管理器
- 定位并打开 文件管理器 应用程序(它可能看起来像一个文件夹图标)。
- 导航到
administrator用户主目录下的Documents文件夹:/home/administrator/Documents。 - 找到名为
flag.txt的文件。 - 双击
flag.txt使用文本编辑器(Mousepad)打开它。

方法 2:使用终端
- 从桌面或菜单中打开 终端 应用程序。
- 运行命令:
cat /home/administrator/Documents/flag.txt

任一方法都可以显示 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 暴露在互联网上、使用弱密码或默认凭据,以及采用过时的安全设置,都可能导致严重的漏洞。通过理解这些攻击向量,你将能更好地实施强大的防御措施。



