NTLM认证原理及其过程
windows认证协议主要有以下两种:
- 基于ntlm的认证方式,主要用在早期的windows工作组环境中,认证的过程也相对比较简单、
- 另一种是基于Kerberos的认证方式,主要用在域环境中
NTLM认证
正在上传…重新上传取消
以下步骤刻画了 NTLM 非交互式认证过程, 第一步中提供了用户的 NTLM 认证信息,该步是用户交互式认证(Logon)过程的一部分。
- (交互式登录到某客户机)用户使用:域名、用户名、密码,登陆到某台客户端。客户端计算并存储用户密码的加密散列值(Hash),然后将真实的密码丢掉(即不保存用户真实的密码)
- 客户端将用户名以纯文本的方式发送到要访问的服务器
- 服务器产生一个 16 字节的随机数并将该随机数发送给客户端,该随机数通常称为:挑战(Challenge)
- 客户端使用用户密码的散列值加密服务器发送过来的 Challenge,并将结果发回给服务器, 该步骤通常称为:应答 (Response)
- 服务器将下面三项内容发送到域控制器 (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,似乎改变了一些现状,但也可能只是似乎
总结:
- 用户登录客户端电脑
- (type 1)客户端向服务器发送type 1(协商)消息,它主要包含客户端支持和服务器请求的功能列表。
- (type 2)服务器用type 2消息(质询)进行响应,这包含服务器支持和同意的功能列表。但是,最重要的是,它包含服务器产生的Challenge。
- (type 3)客户端用type 3消息(身份验证)回复质询。用户接收到步骤3中的challenge之后,使用用户hash与challenge进行加密运算得到response,将response,username,challeng发给服务器。消息中的response是最关键的部分,因为它们向服务器证明客户端用户已经知道帐户密码。
- 服务器拿到type 3之后,使用challenge和用户hash进行加密得到response2与type 3发来的response进行比较。如果用户hash是存储在域控里面的话,那么没有用户hash,也就没办法计算response2。也就没法验证。这个时候用户服务器就会通过netlogon协议联系域控,建立一个安全通道,然后将type 1,type 2,type3 全部发给域控(这个过程也叫作Pass Through Authentication认证流程)
- 域控使用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认证原理及其过程相关推荐
- 详解Wi-Fi连接上网认证接入的原理和过程
引言 在正式看文章之前,我们需要了解的知识是:WiFi的STA和AP模式指什么? 1.AP,也就是无线接入点,是一个无线网络的创建者,是网络的中心节点.一般家庭或办公室使用的无线路由器就一个AP. 2 ...
- 域渗透基础之NTLM认证协议
域渗透基础的两个认证协议ntlm和Kerberos协议是必须总结的~ 这篇简单总结下ntlm协议 晚上写下kerberos 0x01 NTLM简介 NTLM使用在Windows NT和Windows ...
- 关于HttpClient绕过SSL认证以及NTLM认证
前言 本篇文章只涉及本人在工作上使用HttpClient遇到的情况,并不会详细地展开讲如何使用HttpClient. 1. 为什么使用HttpClient? 一开始其实是考虑使用RestTemplat ...
- kerberos认证原理---讲的非常细致,易懂
前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去.后来想想原因有以下两点:对于一个没有完全不了解Ker ...
- 基于NTLM认证的中间人攻击(含实战)
文章目录 中间人攻击 0x01 域和工作组 0x02 NTLM认证(Windows) 本地认证 NTLM Hash的生成 网络认证 工作组环境NTLM认证流程 域环境NTLM认证 0x03 域名解析协 ...
- NTLM 工作原理概述
NTLM 工作原理概述 1. 为何采用NTLM 微软采用 Kerberos 作为 Windows 2000及之后的活动目录域的默认认证协议.当某个服务器隶属于一个Windows 服务器域或者通过某种方 ...
- T1187 强制 NTLM 认证
在上一篇文章 一文理解 Windows 身份验证原理 介绍了什么是 NTLM 以及一些利用 NTLM 进行更一步获取权限的方式,其中就有 NTLM 中继. Net-NTLM hash 破解.但实现这些 ...
- 两个简单的Demo示例向读者展示Flash和ASP.NET交互原理以及过程
ASP.NET与FLASH交互学习了ASP.NET的基础知识之后,终于等到学习交互的时候了.请大家和我一起来进行让人激动的交互吧!本章我将用两个简单的Demo示例向读者展示Flash和ASP.NET交 ...
- HTTP摘要认证原理以及HttpClient4.3实现
基本认证便捷灵活,但极不安全.用户名和密码都是以明文形式传送的,也没有采取任何措施防止对报文的篡改.安全使用基本认证的唯一方式就是将其与 SSL 配合使用. 摘要认证是另一种HTTP认证协议,它试图修 ...
最新文章
- LeetCode实战:二叉搜索树的最近公共祖先
- mysql下载为csv_MySQL 查询结果保存为CSV文件
- 机器学习-线性回归与梯度下降
- mysql 多表查询 优化_Mysql 多表联合查询效率分析及优化
- java-第九章-编写程序,打印如图案,要求图案的行数由用户输入.
- Elemant-UI日期范围的表单验证
- python-flask-1
- 【Elasticsearch】Elasticsearch 索引 索引模板 生命周期 关系
- java中abcd_java中请不要出现aBcd类似的变量名
- AT指令:AT+CPMS
- 把图片隐藏起来的html代码,教你把图片、文档、影片等隐藏起来
- macOS版本大升级,这几项的细节值得你关注
- java——ArrayList中contains()方法中的疑问
- 13.文本文件和二进制文件的区别
- 【风电功率预测】基于matlab BP神经网络风电功率预测【含Matlab源码 399期】
- 代码 点胶gcode_3D打印机启停代码Gcode
- 如何批量将class文件反编译为java文件?
- ecshop批量打印快递单
- 多开助手完美版,APP一键多开,支持安卓10
- redis:CLUSTER cluster is down 解决方法
热门文章
- Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)
- 微信小程序的运营与装修,简单几步掌握
- Shopro商城,多平台移动商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App购物商城)
- Xlua解析json,你造吗?
- 项目管理岗,HR和PMO青睐的点有哪些差异?
- 【大数据】RAID介绍
- 搜索引擎核心读书心得2:暗网抓取
- Spring Boot应用的启动和停止(Spring Boot应用通过start命令启动)
- 网络安全实验室-基础关 WP
- 基于laravel免费开源CMS推荐