FOEYE通过NTLM Info准确识别邮件系统

2023/02/16 18:09:57

一、NTLM 协议对于攻防两端的价值

Windows 在很多接口中只要带有认证属性,基本上都是通过 NTLM 来进行的,这种情况下都能够利用。

NTLM 是基于各个协议的,在与 Windows 认证交互的过程中,NTLM 身份验证往往给出了大量的系统信息,如操作系统,主机名,版本号等等。

通过 NTLM 可以远程获取大量关于当前机器的系统信息,本文将通过抓包的方式对 NTLM 协议进行介绍,并基于已获取到的NTLM信息,通过FOEYE产品准确识别到邮件系统。

二、什么是NTLM?

NTLM 是 NT LAN Manager 的缩写,是 Microsoft 环境中使用的一种身份验证协议,也是 Windows NT 早期的标准版本协议。从 Windows 2000 开始对 NTLM 进行支持,至今已经存在了 20 多年。作为全球应用广泛的操作系统之一,在 Windows 上存在了如此之久的 NTLM 协议仍然在所有 Windows 系统上维护, 足以见证其强大的生命力。

该协议系列包含在 Windows Msv1_0.dll 中,微软官方对 NTLM 的详细描述为:

NTLM authentication is a family of authentication protocols that are encompassed in the Windows Msv1_0.dll. The NTLM authentication protocols include LAN Manager version 1 and 2, and NTLM version 1 and 2.The NTLM authentication protocols authenticate users and computers ba sed on a challenge/response mechanism that proves to a server or domain controller that a user knows the password associated with an account.

核心知识点:NTLM 允许用户向服务器证明自己的身份,以便用户使用该服务器提供的服务。

三、知识点-如何提取NTLM信息?

我们先从 NTLM 的通信过程入手分析。NTLM 使用质询/应答(Challenge/Response)过程进行用户身份验证。

此过程包含三个步骤:

1. 客户端 --> 协商消息。

2. 服务器 --> 质询消息。

3. 客户端 --> 身份验证消息。

第一步,客户端发送协商消息

(案例都是以 5985WinRM 为例)客户端向服务端发送协商消息。抓包查看对应的信息如下:

图片1.png

第二步,服务端质询消息

服务器用消息进行响应,这包含服务器支持和同意的功能列表。但是,最重要的是,它包含服务器产生的 Challenge 这个消息中包含 Target_Name、Product_Version、OS 等等,能够非常准确的提取出来主机名和操作系统的版本。

抓包查看对应的信息如下:

图片2.png

官方文档:[MS-NLMP]:CHALLENGE_MESSAGE | Microsoft Learn

到这一步我们就获取到了想要的信息,介于本篇只讲NTLM对于信息收集的帮助,就不再讲此阶段的后续流程了。接下来给大家举一个基于NTLM信息识别邮件系统的例子。

四、应用-通过NTLM Info准确识别邮件系统

4.1 分析

SMTP(Simple Mail Transfer Protocol)是用于在计算机网络上发送电子邮件的标准协议。SMTP协议支持身份验证机制,以确保只有经过授权的用户才能发送邮件。常用的SMTP身份验证方式包括DIGEST-MD5 、NTLM、PLAIN、LOGIN、CRAM-MD5、GSSAPI、S/MIME等。其中NTLM身份验证,在验证过程的第2步,服务器用消息进行响应时,通常会携带NetBIOS_Domain_Name字段信息。

NetBIOS_Domain_Name字段是指Windows域名中的NetBIOS名称,对于NTLM身份验证来说非常重要,它可以指定要进行身份验证的Windows域。如果在NTLM身份验证中没有指定NetBIOS_Domain_Name字段,那么客户端将使用本地计算机所在的Windows域进行身份验证。因此,在进行NTLM身份验证时,需要确保NetBIOS_Domain_Name字段的正确性,以避免身份验证失败的情况。

所以通常情况下使用SMTP协议,NTLM报文中包含的NetBIOS_Domain_Name表示是邮件服务器时,我们可以认为这是部署在Windows上的采用NTLM身份验证的邮件系统。

4.2 通过NTLM Info识别SMARTERMAIL邮件系统 

我们先根据NTLM的介绍及分析,先在FOEYE3.0上查找有NTLM信息的资产,登录FOEYE3.0系统,在资产管理下的资产空间搜索页面,使用搜索语法:

banner="NTLM"

图片3.png

根据搜索结果可以看到FOEYE3.0已经能够识别到资产的NTLM信息。 

接下来我们查找下采用SMTP协议的使用NTLM身份验证的SMARTERMAIL邮件系统。继续在空间搜索页面使用查询语法:

protocol="smtp"&&banner="NetBIOS_Domain_Name: SMARTERMAIL"

图片4.png

为了便捷识别资产,可在FOEYE3.0系统上自定义资产指纹规则,这样就可以为符合条件的资产自动打上规则名称,做到自动化识别资产,操作如下:

1.资产管理空间搜索页面点击快速添加规则,在我的规则管理页面即可查看编辑已添加规则,也可以添加新的自定义规则,新添加定义规则和编辑已有的自定义规则基本一致,只需要根据页面提示完成并保存即可。

图片6.png

2.自定义规则添加成功后,会对系统已有资产打上相应的标签,可通过资产列表页面查看到。

图片7.png

五、后续

通过NTLM Info准确识别邮件系统,本文只是举例说明了SMAERTEMAIL邮件系统,可以继续进行深度挖掘更多的邮件系统。也欢迎大家基于此协议开发出更多奇思妙想的用法,在FOEYE3.0中进行实践应用,帮助企业发现更多的资产。

六、参考文献

https://learn.microsoft.com/en-us/windows-server/security/kerberos/ntlm-overview

https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/801a4681-8809-4be9-ab0d-61dcfe762786

https://learn.microsoft.com/en-us/windows/win32/winrm/about-windows-remote-management

明探·FOEYE网络资产测绘及风险分析系统是一款集网络空间资产测绘、高价值漏洞探测、合规风险监控于一体的内网资产安全管理系统,通过主动扫描探测等技术手段对目标网络资产进行全面、精准的立体网络测绘,为客户打造一套实战化、自动化、智能化的资产摸底排查、漏洞定位分析、异常风险预警的资产测绘及风险分析平台,从而提升资产安全治理水平,降低资产安全维护成本,对于内网资产测绘,网络可达,资产可见。