Microsoft Telnet 客户端 MS-TNAP 服务器端身份验证令牌漏洞(完整版复现)

admin 2025年5月9日09:40:30评论2 views字数 2435阅读8分7秒阅读模式

Microsoft Telnet 客户端 MS-TNAP 服务器端身份验证令牌漏洞(完整版复现)

01

前言

Hacker Fantastic 发布的报告揭示,Microsoft Telnet Server 存在严重的零点击远程身份验证绕过漏洞。该漏洞利用 Microsoft Telnet 身份验证协议(MS-TNAP)的缺陷,允许远程攻击者绕过身份验证机制,在无有效凭据的情况下直接获取管理员权限,对传统 Windows 系统构成重大安全威胁。

02

受影响的系统

安装 Microsoft Telnet 客户端时的所有 Windows 版本:

WindowsNT4.0Windows2000WindowsXPWindowsServer2003  Windows服务器2003WindowsServer2003 R2WindowsVistaWindowsServer2008  Windows服务器2008WindowsServer2008 R2Windows7WindowsServer2012  Windows服务器2012WindowsServer2012 R2Windows8Windows8.1Windows10WindowsServer2016  Windows服务器2016WindowsServer2019  Windows服务器2019WindowsServer2022Windows11WindowsServer2025

03

漏洞利用机制与攻击路径解析

该漏洞的根源在于 Microsoft Telnet 客户端所采用的 MS-TNAP 身份验证协议。当 Windows 用户连接恶意 Telnet 服务器时,无论是手动建立连接,还是点击嵌入在电子邮件、网页或文档中的特制 telnet:// 超链接,客户端都会触发身份验证流程。

在安全策略配置层面,若服务器处于 Intranet 或受信任区域,或者系统策略启用静默身份验证,Windows 系统会在无任何提示或用户确认的情况下,自动传输用户的 NTLM 身份验证数据。而处于 Internet 区域时,系统会在发送凭据前向用户发出提示;处于内联网 / 受信任站点区域,凭据则可能直接自动发送,用户对此毫无察觉。比如,输入 “192.168.1.1” 这类未指定协议头(http://)的 IP 地址,意味着主机默认信任 Telnet 等所有协议,而非仅针对 Web 流量,这无疑为攻击者提供了可乘之机。

攻击者可按以下步骤利用该漏洞:

  1. 1. 搭建恶意 Telnet 服务器:构建用于截获用户身份验证数据的恶意服务器。
  2. 2. 实施钓鱼诱骗:通过网络钓鱼邮件、恶意网页等方式,诱使用户点击特制的 telnet:// 链接。
  3. 3. 捕获 NTLM 哈希:在用户连接服务器触发身份验证时,获取客户端传输的 NTLM 哈希值。
  4. 4. 破解与入侵:利用捕获的哈希值,实施 NTLM 中继攻击,或使用 Hashcat 等工具进行离线破解,进而访问敏感系统和数据。
  5. 04

    概念验证和漏洞代码

https://github.com/hackerhouse-opensource/telnetclientpoc中,提供了一个概念验证(PoC)项目,它揭示了 Microsoft Telnet 客户端所采用的 MS-TNAP 身份验证协议存在的严重漏洞。

工具编译

下载工具源码

https://github.com/hackerhouse-opensource/telnetclientpoc.git

使用 Visual Studio C++ 编译器手动进行编译,或者使用带有“nmake”、“nmake static”和“nmake clean”的 Makefile。

cl telnetclientpoc.cpp getopt.cpp stdafx.cpp /EHsc /MT ws2_32.lib secur32.lib
Microsoft Telnet 客户端 MS-TNAP 服务器端身份验证令牌漏洞(完整版复现)

命令行选项

telnetclientpoc.exe [-d domain] [-s server] [-c challenge] [-o logfile]
  • -d domain: Set the domain name (default: WIN2K3)-d domain :设置域名(默认:WIN2K3)
  • -s server: Set the server name (default: WIN2K3)-s server :设置服务器名称(默认:WIN2K3)
  • -c challenge: Set a custom NTLM challenge (8 bytes as hex string)-c challenge :设置自定义 NTLM 挑战(8 个字节的十六进制字符串)
  • -o logfile: Set a custom log file path (default: telnetclientpoc.log)-o logfile :设置自定义日志文件路径(默认值:telnetclientpoc.log)

漏洞复现步骤

第一步,在完成工具编译后,执行该工具并使其监听 23 端口。在命令行中输入以下指令:

C:> telnetclientpoc.exe

此时,会显示 “Server listening on port 23...”,表示工具已成功启动并监听 23 端口。

第二步,接下来进行漏洞复现操作,可通过构造 telnet:// 链接,或者直接使用 telnet 工具连接到目标服务器。值得注意的是,当连接到 Telnet 服务器时,Windows 系统会依据不同的安全区域对服务器进行检查,其行为如下:

  • Internet 区域:在发送凭据之前,系统会向用户弹出警告提示,需用户确认是否继续发送。
  • 内联网区域:系统可以在不向用户发出任何提示的情况下,静默发送凭据。
  • 受信任的站点:同样可能在未经提示的情况下,自动默默发送凭据。
Microsoft Telnet 客户端 MS-TNAP 服务器端身份验证令牌漏洞(完整版复现)

当客户端连接时,应用程序:

  1. 1. 将详细的 NTLM 身份验证步骤记录到 telnetclientpoc.log
  2. 2. 在 netntlmv2.hash 文件中捕获 NetNTLMv2 哈希值,在 ntlmv1.hash 中捕获 NTLMv1 哈希值
  3. 3. 在控制台上提供详细的调试输出
Microsoft Telnet 客户端 MS-TNAP 服务器端身份验证令牌漏洞(完整版复现)

原文始发于微信公众号(应龙御甲实验室):Microsoft Telnet 客户端 MS-TNAP 服务器端身份验证令牌漏洞(完整版复现)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月9日09:40:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Microsoft Telnet 客户端 MS-TNAP 服务器端身份验证令牌漏洞(完整版复现)http://cn-sec.com/archives/4045111.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息