解读windows认证
0x00 前言

dll劫持的近期忙,没时间写,先给大家写个windows认证的水文。
0x01 windows认证协议
windows上的认证大致分为本地认证,ntlm协议,和Kerberos协议。
(1)本地认证
我们先来看到本地认证,本地认证是
Windows的本地认证是由 winlogon.exe 接受用户输入的密码 然后去lsass.exe 进程里面去取值,lsass会向sam文件里面读取hash密码 。如果hash值相对应那么就认证成功。这也是我们的lsass进程的内存中为什么会有hash的缘故,也是我们在抓取hash值时候都转存lsass进程的原因。
这里思考一个问题,为什么要有lsass这个进程,为什么winlogon不能直接从sam文件里面去取hash来认证。
(2)NTLM hash 与NTLM 协议
实际上NTLM hash的NTLM协议是2个东西,NTLM HASH 是一串经过特殊加密的hash值,而ntlm协议是一种网络认证协议。但是他们有着密切的关系,如果有了ntlm hash值可以直接使用pass the hash登录该机器。
NTLM hash的加密过程:
1.将明文转换成hex
2.转换hex的值在Unicode编码
3.unicode编码的值再md4加密
然后得到该用户的ntlm hash值。
NTLM 协议:
NTLM是一种网络认证协议,它是基于挑战(Challenge)/响应(Response)认证机制的一种认证模式。
NTLM协议的认证过程分为三步:
第一步:协商
第二步:质询
第三步:验证
第一步质询: 先发起请求,判断对方版本是ntlm v1还是v2 。
第二步质询:
就是挑战(Chalenge)/响应(Response) ,客户端向服务端发起一个用户名,服务器收到请求,生成一个(ntlmV1是8位数的challenge)16位数的 随机数 被称为challenge ,使用登陆名字对应的NTLM hash值来加密challenge。 同时会将challenge发送给客户端 客户端进行同样的用户的ntlm hash来加密 。
第三步验证:这时候就进行了第三步,2个加密后的challeng 进行比对 如果一样那么就验证通过。
(3)kerberos协议
简短洁说:客户端向服务端发起请求,如果请求的用户在ad内 as为client生成tgt
用户拿着tgt对kdc发起第二次交互,kdc会识别 我们的tgt到底有没有权限访问server,如果有那么就会分发一个ticket 也就是票据这步由tgs完成 ,然后拿着ticket 去请求server。
客户端要和dc建立2次会话才会向服务端发起通讯
详细具体的认证步骤,想了解的话可以去看官方文档。
. KDC
全称:key distributed center
作用:整个安全认证过程的票据生成管理服务,其中包含两个服务,AS和TGS
. AS
全称:authentication service
作用:为client生成TGT的服务
. TGS
全称:ticket granting service
作用:为client生成某个服务的ticket
. AD
全称:account database
作用:存储所有client的白名单,只有存在于白名单的client才能顺利申请到TGT
. TGT
全称:ticket-granting ticket
作用:用于获取ticket的票据
.client
想访问某个server的客户端
. server
提供某种业务的服务
0x02 结尾
刚刚说到的lsass存在的意义,给大家来简单说说,lsass.exe是一个系统重要进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略。如果结束该进程,会出现不可知的错误。
如果想了解内网渗透的师傅们,还需要熟悉windows认证,记得当时面试某xxx,和团队小伙伴每天背windwos认证协议,机制。

解读windows认证的更多相关文章
- Windows认证体系解读
目录 Windows认证方式 Windows本地认证 NTLM认证方式(工作组环境中) wiresharek抓包NTLMv2,使用Hashcat爆破 NTLM认证方式(域环境中) Kerberos认证 ...
- 微软架构师解读Windows Server 2008 R2新特性
目前众多企业都开始为自己寻找一个更加适合自身发展的服务器操作平台.微软的Windows Server 2008 R2就是可以为大家解决服务器平台问题.微软最新的服务器平台Windows Server ...
- Jetty支持Windows认证
WAFFLE是什么? Jetty增加WAFFLE支持 DEMO 小结 WAFFLE是什么? WAFFLE是一个Windows认证框架,支持Negotiate, NTLM和Kerberos认证.WAFF ...
- asp.net权限认证:Windows认证
asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...
- 自定义HttpModule,用于未登录用户,不弹出Windows认证窗口,而是跳转回SSO站点
2012年的一篇随笔记录,可以学习到如何自定义HttpModule,而具体里面针对需求开发的代码,可能未必能让大伙了解到什么,可快速扫描而过. using System; using System.W ...
- 7.内网渗透之windows认证机制
文章参考自三好学生域渗透系列文章 看了内网渗透第五篇文章,发现如果想要真正了解PTT,PTH攻击流程,还需要了解windows的认证机制,包括域内的kerberos协议. windows认证机制 在域 ...
- SQL Server如何正确的删除Windows认证用户
在SQL Server数据库中,有时候会建立一些Windows认证的账号(域账号),例如,我们公司习惯给开发人员和Support同事开通NT账号权限,如果有离职或负责事宜变更的话,那么要如何正确的删除 ...
- python中用分别用selenium、requests库实现Windows认证登录
最近在搞单位的项目,实现python自动化,结果在第一步就把我给拒之门外,查资料问大佬,问我们开发人员,从周一折腾到周五才搞定了 接下给大家分享一下 项目背景:我们系统是基于Windows平台实现的, ...
- (转)IIS windows认证
转自 https://my.oschina.net/u/2551141/blog/2878673 IIS配置Windows认证方式: 1.IIS->>要设置的网站->>身份验证 ...
随机推荐
- 微信小程序注册和简单配置
微信小程序注册 1.直接搜索微信小程序,按照流程进行注册 2.如果有微信公众号,可以在公众号内部点小程序,进入注册流程 小程序中的概念 开发设置 在开发设置中获取AppID和AppSecret App ...
- Vue2.0 【第二季】第6节 Component 初识组件
目录 Vue2.0 [第二季]第6节 Component 初识组件 第6节 Component 初识组件 一.全局化注册组件 二.局部注册组件局部 三.组件和指令的区别 Vue2.0 [第二季]第6节 ...
- throttle工具函数
// fn是我们需要包装的事件回调, delay是时间间隔的阈值 export function throttle(fn, delay) { // last为上一次触发回调的时间, timer是定时器 ...
- 关于动态路由中路由之间的跳转(页面a跳转到页面b)
由addRouters方法获取到后台的动态路由,要实现路由之间的跳转,不可直接用path: '***',而是将动态路由存储到vuex中,再从vuex中取得,如:this.$store.menu.nav ...
- 在kubernetes1.17.2上结合ceph部署efk
简绍 应用程序和系统日志可以帮助我们了解集群内部的运行情况,日志对于我们调试问题和监视集群情况也是非常有用的.而且大部分的应用都会有日志记录,对于传统的应用大部分都会写入到本地的日志文件之中.对于容器 ...
- (转)协议森林09 爱的传声筒 (TCP连接)
协议森林09 爱的传声筒 (TCP连接) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在TCP协议与"流" ...
- 深入理解计算机系统 (CS:APP) - 高速缓存实验 Cache Lab 解析
原文地址:https://billc.io/2019/05/csapp-cachelab/ 这个实验是这学期的第四个实验.作为缓存这一章的配套实验,设计得非常精妙.难度上来讲,相比之前的修改现成文件, ...
- Sqli-labs 搭建SQL注入平台
sqli-labs是一款学习sql注入的开源平台,共有75种不同类型的注入. 搭建步骤: 1.在Windows系统中安装WAMP 下载地址:https://pan.baidu.com/s/1HY0hF ...
- Effective Python读书笔记
有些位置可能翻译理解的不到位,各位看官如有疑问,欢迎留言赐教. Pythonic Thinking 大家经常用Pythonic来形容python语法风格的编程方式:简单优美,没有之一:通过import ...
- [转载] 全局键盘钩子(WH_KEYBOARD)
为了显示效果,在钩子的DLL中我们会获取挂钩函数的窗体句柄,这里的主程序窗体名为"TestMain",通过FindWindow查找. KeyBoardHook.dll代码 libr ...