ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

内网渗透学习-windows认证

2022-07-18 12:04:47  阅读:182  来源: 互联网

标签:HASH 密码 windows 认证 渗透 票据 加密


内网渗透学习-windows认证

  • windows本地认证
  • windows网络认证
  • kerberos域认证

前言:

进入公司实习期间,参与了护网红队的工作,见识了师傅们逆天强悍的操作,深刻认识到了要学的还有很多很多很多,所以假期着手用空闲时间整理一个内网学习系列,针对内网渗透做一个总结。

本章内容是Windows认证,在内网横向渗透中还是非常重要的。

windows本地认证

 过程图:

(lsass用于微软Windows系统的安全机制,它用于本地安全和登录策略。) 

其中牵涉到了两个非常重要的加密算法,即windows存储密码的方式,一般是使用的lmhash和ntlmhash,尤其ntlmhash,在本文中牵涉的三种认证,都离不开这个算法。

LM HASH消息验证

LM HASH采用的方式是DES加密

参考链接,原文附python实现的加密脚本(https://xz.aliyun.com/t/2445)

 加密过程如下:

  1. 用户的密码长度被限制载14个字节以内
  2. 将输入的所有密码转换为大写
  3. 将内容转换为16进制,不足14字节用0补齐
  4. 6进制字符串分成两个7byte部分。每部分转换成比特流,并且长度位56bit,长度不足使用0在左边补齐长度,再分7bit为一组末尾加0,组成新的编码
  5. 上步骤得到的8byte二组,分别作为DES key为"KGS!@#$%"进行加密。
  6. 将二组DES加密后的编码拼接,得到最终LM HASH值。

这种加密算法下,如果密码不超过8位安全就很低(转16进制后面都是用0补齐,破解难度大大降低。密码长度最大14位,且14位密码也很好破),而且用的是DES加密算法,学过密码学就知道,这种算法放现在暴力破解难度很低。

从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash。在Windows Server 2012 R2及之后版本的操作系统中,默认不会在内存中保存明文密码,Mimikatz 就读不到密码明文,只能读取哈希值。

NTLM HASH消息验证

NTML HASH采用的方式是先16进制编码,再转unicode,最后利用MD4加密的方式,安全性相对更高。

采用的消息验证机制(详情:https://xz.aliyun.com/t/2445)

 

windows网络认证

网络认证的过程图:

 

 

 实际利用过程中会利用Mimikatz抓取的hash进行伪造,与相应的计算机交互、

中间利用psxec进行一些远程命令的执行

psxec和Mimikatz的使用在网上有大量的内容和教程,此处不多赘述

kerberos域认证

 kerberos域认证是域渗透中很重要的内容,这部分内容学校计算机网络课程中也提到过

 

 

 网上关于kerberos的介绍也很多,这里做一个简单的梳理(参考:https://blog.csdn.net/Howell_0626/article/details/125532666及https://blog.csdn.net/m0_58606546/article/details/121435198)

首先罗列一下整个环节中的重要名词

DC(Domain Control):域控制器

KDC(Key Distribution Center):密钥分发中心,在域环境中,KDC服务默认会安装在域控中。

AD(Account Database):账户数据库

AS(Authentication Service):身份验证服务,验证client的credential(身份认证信息),发放TGT。

TGS(Ticket Granting Service):票据发放服务,验证TGT,发放ST。

ST(Service Ticket):服务票据,由KDC的TGS发放,是客户端应用程序访问Server某个服务的凭证,Server端验证通过则完成Client与Server端信任关系的建立。

TGT(Ticket Granting ticket):票据授权票据,由KDC的AS发放,客户端获取到该票据后,以后申请其他应用的服务票据(ST)时,就不需要向KDC的AS提交身份认证信息(credential),TGT具有一定的有效期。由 KBRTGT HASH 加密的 sessionkey-as 和 Timestamp 等信息。TGT=KBRTGT HASH()

Ticket:票据

Master Key:长期密钥

Session Key:短期会话密钥

krbtgt账户:每个域控制器都有的KDC服务账户,这是一个特殊账户,它是一个无法登录的账户,创建域时系统会自动创建这样一个账户,在整个kerberos认证中会多次用到它的Hash值去做验证。它是获得黄金票据的关键一环。

Session key:用来加密client和TGS之间传输的数据。

Server session key:用来加密client和server之间传输的数据。

一张总结非常非常到位的图(来源:https://blog.csdn.net/Howell_0626/article/details/125532666)

 

 

 实际渗透中的两个重要概念:

黄金票据:伪造TGT,前提是有域控管理员的权限(利用mimikatz获取krbtgt账户密码哈希值),获取krbtgt账户的Hash(NTML哈希)。伪造要求是域名称,域SID值,域的krbtgt账户的Hash,需要伪造的用户名。
白银票据:相对黄金票据简单很多,要求获取通信服务器的NTML Hash密码

金票银票的区别在于:获取的权限不同,认证的流程不同,加密方式不同。

以下是关于Kerberos域渗透的一些可能出现的面试题:

白银票据与黄金票据的原理?

 

针对Kerberos的攻击?

 

 

 

 

 

标签:HASH,密码,windows,认证,渗透,票据,加密
来源: https://www.cnblogs.com/willing-sir/p/16489942.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有