解读windows认证

0x00前言dll劫持的近期忙,没时间写,先给大家写个windows认证的水文。0x01windows认证协议windows上的认证大致分为本地认证,ntlm协议,和Kerberos协议。

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

0x00 前言

 

解读windows认证

 

 

 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次会话才会向服务端发起通讯

 

详细具体的认证步骤,想了解的话可以去看官方文档。

 

1. KDC
全称:key distributed center
作用:整个安全认证过程的票据生成管理服务,其中包含两个服务,AS和TGS
2. AS
全称:authentication service
作用:为client生成TGT的服务
3. TGS
全称:ticket granting service
作用:为client生成某个服务的ticket 
4. AD
全称:account database
作用:存储所有client的白名单,只有存在于白名单的client才能顺利申请到TGT
5. TGT
全称:ticket-granting ticket
作用:用于获取ticket的票据
6.client
想访问某个server的客户端
7. server
提供某种业务的服务

0x02   结尾

刚刚说到的lsass存在的意义,给大家来简单说说,lsass.exe是一个系统重要进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略。如果结束该进程,会出现不可知的错误。

 如果想了解内网渗透的师傅们,还需要熟悉windows认证,记得当时面试某xxx,和团队小伙伴每天背windwos认证协议,机制。

解读windows认证

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119979.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • resnet源码pytorch_pytorch yolov3训练自己的数据集

    resnet源码pytorch_pytorch yolov3训练自己的数据集书上的,很抽象fromtorchimportnnfromtorch.nnimportfunctionalasFimportosimporttorchvisionclassResidualBlock(nn.Module):def__init__(self,inchannel,outchannel,stride=1,shortcut=None…

    2022年10月5日
    1
  • 常用进程调度算法_进程调度算法例题

    常用进程调度算法_进程调度算法例题写在前面:我是【程序员宝藏】的宝藏派发员,致力于创作原创干货。我热爱技术、热爱开源与分享,创作的【计算机基础面试问题】系列文章和【计算机基础主干知识】系列文章广受好评!后期会创作更多优质原创系列文章!如果您对计算机基础知识、编程等感兴趣,可以关注我,我们一起成长!本人力荐:如果觉得CSDN排版不够美观,欢迎来我的个人原创公zong号【程序员宝藏】(号如其名,诚不欺你!)查看有红色重点标记和排版美观的全系列文章(不细你来找我要红包)参考链接:TCP三次握手四次挥手好多同学问我要pdf版,我干脆.

    2022年9月29日
    0
  • qq密码自动测试软件,QQ2004测试版密码获取演示「建议收藏」

    qq密码自动测试软件,QQ2004测试版密码获取演示「建议收藏」QQ2004测试版密码获取演示2004-6-219:142715QQ2004测试版密码获取演示2004-6-219:142715水平不高,请大家包涵最近快毕业了,比较忙。。。。如果补丁在你那里不好用,请给我反馈。QQ2004测试版密码获取演示作者:nbw[NE365]nboy.cnwlt.comwww.vxer.comQQ:343538175以前我做过盗取QQ2003密码的补丁。利用这种补…

    2022年7月20日
    19
  • @SpringBootTest Canot resolve symbol ‘SpringBootTest‘问题解决

    @SpringBootTest Canot resolve symbol ‘SpringBootTest‘问题解决最近在开发中总是遇到一些奇奇怪怪的问题,都是一些不大不小的事情,有一个开发同事反馈,在使用SpringBoot创建单元测试的时候,无论怎么弄都提示注解不存在,如下:一看提示了@SpringBootTestCanotresolvesymbol’SpringBootTest’,第一反应是不是没有添加依赖包,查看pom.xml,里面已经有添加的包了,<dependency><groupId>org.springframework.boot<.

    2022年6月6日
    45
  • 关于ASP.NET编程中,GridView表格无法执行RenderControl()方法的问题

    关于ASP.NET编程中,GridView表格无法执行RenderControl()方法的问题当GridView表格控件设置了“自动排序”时,其RenderControl()方法运行时会报错。 

    2022年7月20日
    13
  • 服务器基础知识全解(汇总版)[通俗易懂]

    服务器基础知识全解(汇总版)[通俗易懂]服务器基础知识全解(汇总版)https://www.zack.cn/archives/729本文对服务器知识进行了汇总,并添加了服务器基准测试和认证章节,内容包括9大章节,从服务器的概念、服务器重要部件技术和架构组成,并且对磁盘、RAID知识,网卡等知识做了深度详细介绍。说明:部分内容首发“智能计算芯世界”微信公众号。简单来说,服务器就是在网络中为其他客户机提供服务的计算机;具有高性能、高可靠、高IO数据传输能力等特点,企业从基础的邮件、打印到核心应用如ERP、数据库等业务,再到我们所熟

    2022年9月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号