windows认证协议主要有以下两种:

  1. 基于ntlm的认证方式,主要用在早期的windows工作组环境中,认证的过程也相对比较简单、
  2. 另一种是基于Kerberos的认证方式,主要用在域环境中

NTLM认证

正在上传…重新上传取消

以下步骤刻画了 NTLM 非交互式认证过程, 第一步中提供了用户的 NTLM 认证信息,该步是用户交互式认证(Logon)过程的一部分。

  1. (交互式登录到某客户机)用户使用:域名、用户名、密码,登陆到某台客户端。客户端计算并存储用户密码的加密散列值(Hash),然后将真实的密码丢掉(即不保存用户真实的密码)
  2. 客户端将用户名以纯文本的方式发送到要访问的服务器
  3. 服务器产生一个 16 字节的随机数并将该随机数发送给客户端,该随机数通常称为:挑战(Challenge)
  4. 客户端使用用户密码的散列值加密服务器发送过来的 Challenge,并将结果发回给服务器, 该步骤通常称为:应答 (Response)
  5. 服务器将下面三项内容发送到域控制器 (Domain Controller)
  • 用户名
  • 发送给客户端的 Challenge
  • 从客户端收到的 Response

7.域控制器使用 用户名 从安全账号管理数据库 (Security Account Manager database)中获得用户密码的散列值, 并使用获得的密码散列值来加密 Challenge

8.域控制器比较步骤(6)中计算得到的加密后的 Challenge值与步骤(4)中客户端加密得到的 Response,如果两者一致,则认证通过

NTLM是一种基于挑战(challenge)/响应(response)消息交互模式的认证过程,从整个认证过程来看,安全确实不怎么到位,也就是说入侵者只需要拿到一个系统管理员的hash,直接给dc认证就好了,反正账户名和域名都知道,早期的pass the hash (psexec)确实就是通过这种方式来进行的,如果本地管理员的账号密码相同,其实不用密码一样可以被认证,我们所要做的就是不断通过这种方式来尝试拓展内网的其他机器,直到控制整个域,但后来的kb2871997,似乎改变了一些现状,但也可能只是似乎

总结:

  1. 用户登录客户端电脑
  2. (type 1)客户端向服务器发送type 1(协商)消息,它主要包含客户端支持和服务器请求的功能列表。
  3. (type 2)服务器用type 2消息(质询)进行响应,这包含服务器支持和同意的功能列表。但是,最重要的是,它包含服务器产生的Challenge。
  4. (type 3)客户端用type 3消息(身份验证)回复质询。用户接收到步骤3中的challenge之后,使用用户hash与challenge进行加密运算得到response,将response,username,challeng发给服务器。消息中的response是最关键的部分,因为它们向服务器证明客户端用户已经知道帐户密码。
  5. 服务器拿到type 3之后,使用challenge和用户hash进行加密得到response2与type 3发来的response进行比较。如果用户hash是存储在域控里面的话,那么没有用户hash,也就没办法计算response2。也就没法验证。这个时候用户服务器就会通过netlogon协议联系域控,建立一个安全通道,然后将type 1,type 2,type3 全部发给域控(这个过程也叫作Pass Through Authentication认证流程)
  6. 域控使用challenge和用户hash进行加密得到response2,与type 3的response进行比较

参考:https://klionsec.github.io/2016/08/10/ntlm-kerberos/

https://blog.csdn.net/qq_26886929/article/details/53905654

NTLM认证原理及其过程相关推荐

  1. 详解Wi-Fi连接上网认证接入的原理和过程

    引言 在正式看文章之前,我们需要了解的知识是:WiFi的STA和AP模式指什么? 1.AP,也就是无线接入点,是一个无线网络的创建者,是网络的中心节点.一般家庭或办公室使用的无线路由器就一个AP. 2 ...

  2. 域渗透基础之NTLM认证协议

    域渗透基础的两个认证协议ntlm和Kerberos协议是必须总结的~ 这篇简单总结下ntlm协议 晚上写下kerberos 0x01 NTLM简介 NTLM使用在Windows NT和Windows ...

  3. 关于HttpClient绕过SSL认证以及NTLM认证

    前言 本篇文章只涉及本人在工作上使用HttpClient遇到的情况,并不会详细地展开讲如何使用HttpClient. 1. 为什么使用HttpClient? 一开始其实是考虑使用RestTemplat ...

  4. kerberos认证原理---讲的非常细致,易懂

    前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去.后来想想原因有以下两点:对于一个没有完全不了解Ker ...

  5. 基于NTLM认证的中间人攻击(含实战)

    文章目录 中间人攻击 0x01 域和工作组 0x02 NTLM认证(Windows) 本地认证 NTLM Hash的生成 网络认证 工作组环境NTLM认证流程 域环境NTLM认证 0x03 域名解析协 ...

  6. NTLM 工作原理概述

    NTLM 工作原理概述 1. 为何采用NTLM 微软采用 Kerberos 作为 Windows 2000及之后的活动目录域的默认认证协议.当某个服务器隶属于一个Windows 服务器域或者通过某种方 ...

  7. T1187 强制 NTLM 认证

    在上一篇文章 一文理解 Windows 身份验证原理 介绍了什么是 NTLM 以及一些利用 NTLM 进行更一步获取权限的方式,其中就有 NTLM 中继. Net-NTLM hash 破解.但实现这些 ...

  8. 两个简单的Demo示例向读者展示Flash和ASP.NET交互原理以及过程

    ASP.NET与FLASH交互学习了ASP.NET的基础知识之后,终于等到学习交互的时候了.请大家和我一起来进行让人激动的交互吧!本章我将用两个简单的Demo示例向读者展示Flash和ASP.NET交 ...

  9. HTTP摘要认证原理以及HttpClient4.3实现

    基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种HTTP认证协议,它试图修 ...

最新文章

  1. LeetCode实战:二叉搜索树的最近公共祖先
  2. mysql下载为csv_MySQL 查询结果保存为CSV文件
  3. 机器学习-线性回归与梯度下降
  4. mysql 多表查询 优化_Mysql 多表联合查询效率分析及优化
  5. java-第九章-编写程序,打印如图案,要求图案的行数由用户输入.
  6. Elemant-UI日期范围的表单验证
  7. python-flask-1
  8. 【Elasticsearch】Elasticsearch 索引 索引模板 生命周期 关系
  9. java中abcd_java中请不要出现aBcd类似的变量名
  10. AT指令:AT+CPMS
  11. 把图片隐藏起来的html代码,教你把图片、文档、影片等隐藏起来
  12. macOS版本大升级,这几项的细节值得你关注
  13. java——ArrayList中contains()方法中的疑问
  14. 13.文本文件和二进制文件的区别
  15. 【风电功率预测】基于matlab BP神经网络风电功率预测【含Matlab源码 399期】
  16. 代码 点胶gcode_3D打印机启停代码Gcode
  17. 如何批量将class文件反编译为java文件?
  18. ecshop批量打印快递单
  19. 多开助手完美版,APP一键多开,支持安卓10
  20. redis:CLUSTER cluster is down 解决方法

热门文章

  1. Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)
  2. 微信小程序的运营与装修,简单几步掌握
  3. Shopro商城,多平台移动商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App购物商城)
  4. Xlua解析json,你造吗?
  5. 项目管理岗,HR和PMO青睐的点有哪些差异?
  6. 【大数据】RAID介绍
  7. 搜索引擎核心读书心得2:暗网抓取
  8. Spring Boot应用的启动和停止(Spring Boot应用通过start命令启动)
  9. 网络安全实验室-基础关 WP
  10. 基于laravel免费开源CMS推荐