首页 > 其他分享 >NTLM

NTLM

时间:2023-09-21 22:36:50浏览次数:35  
标签:加密 进制 16 NTLM SSP Hash

NTLM

SSPI 和 SSP

SSPI

SSPI(Security Support Provider Interface),即 安全服务提供接口,这是 Windows 定义的一套接口,该接口定义了与安全有关的功能函数,包含但不限于:

  • 身份验证机制
  • 信息完整性
  • 为其他协议提供的会话安全机制

SSP

SSP(Security Service Provider),即 安全服务提供,它是 SSPI 的实现者,是对 SSPI 相关功能函数的具体实现。微软自己实现了如下的 SSP,用于提供安全功能:

  • NTLM SSP
  • Kerberos
  • Digest SSP
  • Cred SSP

​ 在系统层面,SSP 就是一个 dll,来实现身份验证等安全功能,实现的身份验证机制是不一样的。比如 NTLM SSP 实现的就是一种Challenge/Response 验证机制。而 Kerberos SSP 实现的就是基于 ticket 的身份验证机制。

​ DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。

Windows 认证

​ 通过网络访问一个受保护的资源,服务器需要认证自己的身份。双方通过加密对话进行身份验证的过程。Windows常见的两种认证体系NTLM 认证和 Kerberos 认证。

LM Hash加密算法

LM Hash的加密流程如下,我们以口令P@ss1234为例演示:

1)将用户的明文口令转换为大写,并转换为16进制字符串。

P@ss1234->大写 = P@SS1234->转为十六进制= 5040535331323334

2)如果转换后的16进制字符串的长度不足14字节(长度28),用0来补全。

5040535331323334-> 用0 补全为14字节(长度28) = 5040535331323334000000000000

3)将14字节分为两组,每组7字节转换为二进制数据,每组二进制数据长度为56比特位。如图所示

4)将每组二进制数据按7比特位为一组,分为8组,每组未尾加0,再转换成16进制,这样每组也就成了8字节长度的16进制数据了。如图所示。

5)将上面生成的两组16进制数据,分别作为DES加密密钥对字符串“KGS!@#$%"进行加密。然后将DES加密后的两组密文进行拼接,得到最终的LM HASH值。如图所示。

KGS!@#$%转为16进制为: 4B47532140232425

NTLM Hash

从Windows Vista 和 Windows Server 2008开始,默认情况下只存储 NTLM Hash,LM Hash 将不再存在。如果空密码或者不储蓄 LM Hash 的话,我们抓到的LM Hash是AAD3B435B51404EEAAD3B435B51404EE。

NTLM Hash是由明文密码经过三步加密而成:

NTLM Hash = md4(unicode(hex(password)))

NTLM Hash的加密流程分为三步,具体如下
1)先将用户密码转换为16进制格式。

2)再将16进制格式的字符串进行ASCII转Unicode编码。

3)最后对Unicode编码的16进制字符串进行标准MD4单向哈希加密。
如下可以看到P@ss1234通过NTLM Hash的加密流程-步步加密成为NTLM Hash: 74520a4ec2626e3638066146a0d5ceae。

P@ss1234->转为十六进制 = 5040737331323334
5040737331323334->ASCII转Uncode编码=50004000730073003100320033003400
50004000730073003100320033003400 ->MD4加密= 7520a4ec2626e3638066146a0d5ceae

NTLM

(1)NTLM认证过程与NET-NTLM v1\v2

NTLM认证采用质询/应答(Challenge/Response) 的消息交互模式,流程如下:

​ 1.客户端向服务器发送一个请求,请求中包含明文的登陆用户名。在服务器中已经存储了登陆用户名和对应的密码hash

​ 2.服务器接收到请求后,NTLMv2协议下会生成一个16位的随机数(这个随机数称为Challenge),明文发送回客户端。使用存储的登录用户名密码hash加密Challenge,获得challenge1

​ 3.客户端接收到Challenge后,使用当前账户密码的hash(NTLM Hash)对Challenge加密,获得response,将response发送给服务器

​ 4.服务器接收到客户端加密后的response,比较response和Challenge,如果相同,验证成功

?哈希传递攻击?SMB认证?Responder

参考链接:NTLM认证相关攻击技巧(较全) - 先知社区 (aliyun.com)

纯干货-内网渗透系列教程——NTLM 与 NTLM 身份认证 - 知乎 (zhihu.com)

标签:加密,进制,16,NTLM,SSP,Hash
From: https://www.cnblogs.com/huangshisan/p/17721121.html

相关文章

  • NTLM认证协议
    NTLM认证协议介绍NTLM(NTLANManager)最早使用在WindowsNT操作系统,被广泛应用于工作组和域环境。现在在一些旧系统或者老的应用程序可能还在使用,用于用户身份验证(在网络上验证用户的身份,以便他们可以访问共享资源,如文件、打印机和应用程序)。NTLM协议的认证,包括NTLMv1和N......
  • cntlm代理工具学习笔记
    目录目的一、windows侧操作二、虚拟机侧操作目的通过在windows侧设置cntlm代理,使得linux服务器可以访问外网。一、windows侧操作1、下载安装cntlm文件,安装压缩包见附件,建议安装在默认路径。2、打开安装目录下的配置文件cntlm.ini修改配置,需要修改的地方如下:User......
  • NetNTLM 和 NTLMSSP 两种协议的认证步骤 及 对应具体的计算例子
    有待手动验证:NetNTLM和NTLMSSP都是Windows操作系统中用于身份验证的协议,它们在不同的应用场景下有不同的使用方式。以下是它们各自的应用场景:NetNTLM:NetNTLM是一种用于Windows网络上的身份验证协议,其最常见的应用场景之一就是在企业内部网络中保护敏感数据或资......
  • 域内三大协议—NTLM
    参考:https://www.crowdstrike.com/cybersecurity-101/ntlm-windows-new-technology-lan-manager/https://en.hackndo.com/pass-the-hash/简介什么是NTLMNTML全称......
  • 开放远程端口后服务器日志中很多登录进程NtLmSsp攻击的处理办法
    首先按住键盘“Windows+R”键,在运行窗口输入“secpol.msc”,并点击“确定”进入安全设置》本地策略》安全选项,然后下图两个配置项中二选一即可,按照第一个配置项,则日志彻......
  • ntlm & Kerberos _ 转发
    原文: https://www.cnblogs.com/nu1l/p/16317186.html 0x01为什么要理解windows安全认证机制:加深对后续各种漏洞利用的理解深度,还是那句话,要知其然,更要知其所以......
  • NTLM中继攻击
    基本知识点:与NLTM认证相关的安全问题主要有PassTheHash、利用NTLM进行信息收集、Net-NTLMHash破解、NTLMRelay几种。PTH前期已经了,运用mimikatz、impacket工具包的一......