目录

  • 哈希处理
  • LM-hash
  • NTLM-hash
  • kerberos协议

哈希处理

Windows系统默认使用两种方法对用户的密码进行哈希处理,它们分别是 LAN Manager(LM)哈希和 NT LAN Manager(NTLM)哈希。hash就是使用一种加密函数对其进行加密。这个加密函数对一个任意长度的字符串数据进行一次数学加密函数运算,然后返回一个固定长度的字符串。Windows加密过的密码口令,我们称之为hash,Windows的系统密码hash默认情况下一般由两部分组成:第一部分是 LM-hash,第二部分是 NTLM-hash。在windows2000以后的系统中,第一部分的LM-hash 都是空值,因为LM-hash可以很容易的破解,所以windows2000之后这个值默认为空,所以第二部分的NTLM-hash才真正是用户密码的哈希值。现在已经有了更新的NTLM v2以及Kerberos验证体系。

LM-hash

LAN Manager(LM)哈希是Windows系统所用的第一种密码哈希算法。它只有唯一一个版本且一直用到NTLAN Manager(NTLM)哈希的出现,NTLM哈希用Windows 2000及其之后系统中。新版操作系统因兼容缘故仍然支持LM哈希算法。但是在Windows Vista和Windows 7 开始,LM-hash是默认关闭的。
LM加密过程
口令大写
转换为HEX(十六进制)
用0补齐14字节(112bit)
两组分组
每组7字节HEX转为二进制,每7bit一组末尾加0,再转换成十六进制组成得到2组8字节的编码
两组8字节编码,分别作为DES加密key为字符串“KGS!@#$% ”进行加密
两组DES加密后的编码拼接

NTLM-hash

New Technology LAN Manager(NTLM)哈希算法是微软认可的另一种算法。Windows2000以后的 windows 系统都是用 NTLM-hash 处理用户的密码。在渗透测试中,通常可从windows系统中的SAM文件和域控的NTDS.dit文件中获得所有用户的hash,通过mimikatz读取lsass.exe进程能获得已登陆用户的NTLM hash。
NTLM加密过程
密码换成HEX
HEX字符串进行ASCII转Unicode
Unicode字符串进行标准MD4单向哈希加密
NTLM认证

客户端发起认证请求
服务端收到认证请求,向客户端发送随机数(chanlleng/挑战)
客户端使用NTLM Hash打乱该随机数,生成Net-NTLM Hash,发送回服务端 (这里会造成pth攻击)

kerberos协议

在域环境中,Kerberos协议被用来作身份认证,下图是详细的认证过程:

KDC(Key Distribution Center):密钥分发中心里面包含两个服务:AS和TGS
AS(Authentication Server):身份认证服务
TGS(Ticket Granting Server):票据授予服务
TGT(Ticket Granting Ticket):由身份认证服务授予的票据,用于身份认证,存储在内存,默认有效期为10小时
Pass The Ticket:如果我们能够拿到用户的TGT,并将其导入到内存,就可以冒充该用户获得其访问权限

详细认证过程,分为三个步骤:
第一:从AS服务器中获取TGT票据
用户在客户端输入账号和密码之后,会对密码进行hash处理,作为user-secret-key

  1. 客户端将用户名发送给AS服务器申请服务,在AS服务器中会对用户名进行验证,在AS服务器本地数据库中查询到该用户名的密码,并使用hash生成user-secrect-key.
  2. AS服务器向用户发送两样东西:
    1) Client/TGS会话密钥,使用user-secrect-key进行加密
    2) TGT,包含TGS会话密钥,用户信息,时间戳,TGT有效期。使用TGS密钥进行加密
  3. 用户接收到消息之后,会使用本地的user-secret-key对消息1)进行解密,如果解密成功,说明用户提供的凭证是正确的,此时用户得到了加密后的TGT。

第二:从TGS服务器中获取访问权限

  1. 客户端向TGS服务器发送信息:
    1) 第一步骤中的TGT
    2) 认证信息(认证符(Authenticator)),包含用户id以及时间戳,通过TGS会话密钥进行加密。
  2. TGS服务器收到消息之后,会使用TGS密钥对消息1)进行解密,获取到TGS会话密钥,进而对消息2)进行解密,在对用户id以及时间戳进行认证,如果认证成功,向客户端发送消息:
    1) client-server-ticket(包含SS会话密钥,用户名信息以及时间戳),使用ss密钥进行加密
    2) ss会话密钥使用TGS会话密钥进行加密
  3. 客户端收到信息之后会对消息2)进行解密,获得ss会话密钥。

第三:访问服务

  1. 客户端向ss服务器发送以下消息:
    1)第二步骤中的client-server-ticket
    2)新的Authenticator,包含用户信息,时间戳。通过SS会话密钥进行加密
  2. SS服务器收到消息之后,会使用ss密钥对消息1)进行解密,解密之后使用ss会话密钥对消息2)解密,解密成功之后会得到authenticator,认证之后,发送:
    1)新时间戳,Client发送的时间戳加1,通过ss会话密钥进行加密
  3. 客户端收到时间戳之后,解密确认,成功之后发送服务请求
  4. ss服务器收到之后提供服务。

windows认证机制相关推荐

  1. 内网渗透——WINDOWS认证机制之KERBEROS

    之前两篇文章整理了NTLM协议的分析与利用 1.内网渗透--WINDOWS认证机制之NTLM 2.利用netsh抓取连接文件服务器的NET NTLM Hash 本篇文章来学习域内认证的Kerberos ...

  2. Windows认证机制之Kerberos协议

    Windows认证机制 首先,我们简短介绍下Windows的认证机制.主要有以下三种, 本地认证 网络认证 域内认证 如图所示: Kerberos协议 Kerberos 是一种由 MIT(麻省理工大学 ...

  3. windows 认证机制

    目录 Windows认证协议 NTLM(NT LAN Manager) Kerberos NTLM认证 Windwos 密码hash NTLM hash NET-NTLM hash 流程 注意 图解 ...

  4. Windows认证机制详解(借物表在文章末尾)

    一.本地认证 基础知识 Windows系统在本地认证过程中,操作系统会要求用户输入密码作为凭证去做身份验证. 在验证过程中,系统并不保存明文密码,而是将用户输入的密码转变为NTLM hash(也叫NT ...

  5. Windows域认证机制

    文章目录 Windows认证机制 Windows认证基础 本地认证 网络认证 hashcat破解net-ntlm hash 域认证 Kerberos认证协议的基础概念 Kerbreros认证流程 1. ...

  6. 渗透测试之攻击Windows认证

    Windows系统存在着两种主要认证方式,它们分别是NTLM和Kerbose Windows认证机制 Hash存储位置 本机用户:C:\Windows\system32\config\SAM (系统运 ...

  7. Windows认证基础知识

    Windows认证 本地认证 基础知识 本地登录,操作系统会使用用户输入的密码作为凭证去与系统中的密码进行验证 密码存储位置:%SystemRoot%\system32\config\sam SAM保 ...

  8. 深入详解windows安全认证机制ntlmKerberos

    0x01 为什么要理解windows 安全认证机制: 加深对后续各种漏洞利用的理解深度,还是那句话,要知其然,更要知其所以然,不废话,咱们直接开始 0x02 windows认证协议主要有以下两种: 基 ...

  9. SSO 认证机制对比

    2019独角兽企业重金招聘Python工程师标准>>> SSO 认证机制对比 博客分类: 架构 几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单 ...

最新文章

  1. Linux基础之grep攻坚
  2. h5手机端浏览器机制_H5测试介绍
  3. android中的broadcastReceiver
  4. 防止html转义字符,如何防止我的HTML标签被转义?
  5. windows10 C盘清理
  6. Ubuntu16.04+cuda10.0+cudnn7.6配置tensorflow1.x环境
  7. 配置Eclipse 实现按任意键代码自动补全
  8. 仿生软体机器人就业咋样_工业之美|静若灯笼、动如鱿鱼,仿生届又出黑科技产品...
  9. 在 Web 级集群中动态调整 Pod 资源限制
  10. 函数在区间连续可以推出什么_A-22 函数的点连续、单侧连续、区间连续
  11. 力扣-231 2的幂
  12. Pure Storage到底是一家怎样的企业?
  13. 超详细软件工程黑书思维导图(从第一章到第八章)
  14. Redis(三) Redis的持久化 RDB与AOF
  15. 灯的开关状态 :有 N 个灯放在一排,从 1 到 N 依次顺序编号。有 N 个人也从 1 到 N 依次编号。1 号将灯 全部关闭,2 将凡是 2 的倍数的灯 打开;3 号将凡是 3 的倍数的灯作相
  16. IOS小知识点5之内存警告、循环引用、交叉引用
  17. 华为机试---小东分苹果
  18. u盘插上计算机未响应,插U盘没反应的一种情况与解决
  19. 【TensorFlow 官网 可以直接访问】让中国开发者更容易地使用TensorFlow打造人工智能应用
  20. 罗马数字的写法~~~

热门文章

  1. 科研经验003:获取指定期刊的Latex/word模板
  2. 计算机组装与维护 听课记录,《计算机组装与维护》之“机箱和电源”说课稿...
  3. 漫步微积分三十四——体积计算:圆柱壳法
  4. win和linux下的磁盘测速(读写速度)
  5. JQuery的一个插件boxy
  6. 基于555芯片的延时小灯
  7. .NET 使用sock5做代理(不是搭建服务端)
  8. 小沙的长路 【欧拉图】
  9. 会计学原理学习笔记——第一章——总论(1.7会计基础)
  10. unipush解决华为、小米、魅族收不到厂商推送的问题