Kerberos认证与攻击学习总结
0、背景
聆听了n1nty大佬(90后黑客代表)的谆谆指导,学习了n1nty大佬的基本操作,决定总结一下,做一个简要的读书笔记,也把之前自己记录的关于Windows的安全的一些博客能够串联起来。所以首先鸣谢:90后黑客代表n1nty大佬。
1、Kerberos的基本认证
1.1、NTLM的挑战认证
不啰嗦,直接说要点,server接到client的请求认证后,会回复16字节随机数据,也就是挑战。client使用自己生成的账号的NTLM的hash值对挑战数据进行某种加密运算,发送到server,server对这一数据进行验证,计算方法相同,比对一直即通过,否则不通过。这一段可以查阅之前博客Windows NTLM Hash和Hash传递、Key传递攻击
1.2、Kerberos验证
不啰嗦具体细节可以参考之前的博客Kerberos认证协议分析,这里有分三个步骤
1.2.1、第一步AS验证
核心是:账号口令的hash值加密时间戳(timestamp),记忆账号身份信息给AS服务器(KDC的一部分,KDC是DC的一部分,DC是域控,对应的数据库是AD),AS服务器解密时间戳,核对在五分钟以内,且不是重放,则返回TGT和Session-Key。在Wireshark中,Session-KEY是外侧的enc-part数据,Session-Key由password的hash值加密后,生成新的enc-part数据,存在TGT里面。
1.2.1.1、域内用户枚举攻击:
一张图解决问题,发送AS-REQ,根据AS-REP来判断问题:

1.2.1.2、TGT Session Key离线爆破
一段话解决问题:session-key经过hash加密成为tgt的一部分,拿到tgt后可以尝试离线暴力破解hash的明文,与NTLM的爆破原理一致,明文字典经过hash计算形成hash值,然后尝试加密session-key与tgt的session-key对应,一致,则爆破成功。
1.2.1.3、PtK(Pass the Key)攻击
在AS-REQ中时间戳经过NT hash或者账号的AES128(AES256)的加密,形成加密数据,你可以通过如下方式获取:

server端会依照解密,验证时间戳。获取Key之后可以传递这个Key,获取TGT。
1.2.2、第二步TGS验证
核心是:client给server发送使用使用krbtgt的口令hash加密的TGT和加密的session-key,server端使用krbtgt的口令hash值解密TGT获取加密的session-key与外部加密的session-key进行比较,一致,就返回访问服务使用的普通ticket和新的session-key,否则验证失败。
1.2.2.1、Golden Ticket
使用方法和原理请参见之前博客黄金票据(Golden Ticket)的原理与实践,总结一句话:TGT的伪造很简单,只需要sid,session-key加密所需要的key(NT-hash、AES256KEY、AES128KEY)即可,域名、username即可。session-key的原始值是随机值,可以任意伪造,加密后两个加密的session-key一致即可通过。
1.2.3、第三步AP验证
原理与TGS相同,验证普通ticket中的session-key与新的session-key是否一致。
1.2.3.1、Sliver Ticket
与Golden Ticket的原理一致,不同的是加密的是service ticket(普通ticket),使用的服务启动账号的口令hash值而不是krbtgt的账号的口令的hash值,所以只能访问该账号启动的服务,而不是全域服务。
2、委派
2.1.1 无限制委派
缓存各个账户的TGT进行代理验证,危险。
2.2.2 受限制委派
涉及S4U2Self和S4U2Proxy协议,暂不赘述。
Kerberos认证与攻击学习总结的更多相关文章
- 域渗透 | kerberos认证及过程中产生的攻击
文章首发于公众号<Z2O安全攻防> 直接公众号文章复制过来的,排版可能有点乱, 可以去公众号看. https://mp.weixin.qq.com/s/WMGkQoMnQdyG8UmS ...
- Kerberos认证流程详解
Kerberos是诞生于上个世纪90年代的计算机认证协议,被广泛应用于各大操作系统和Hadoop生态系统中.了解Kerberos认证的流程将有助于解决Hadoop集群中的安全配置过程中的问题.为此,本 ...
- yarn 用户导致的被挖矿 启用Kerberos认证功能,禁止匿名访问修改8088端口
用户为dr.who,问下内部使用人员,都没有任务在跑: 结论: 恭喜你,你中毒了,攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未授权的情况下远程 ...
- Kerberos认证浅析
1 引言 在希腊神话中Kerberos是守护地狱之门的一条凶猛的三头神犬,而我们在本文中所要介绍的Kerberos认证协议是由美国麻省理工学院(MIT)首先提出并实现的,是该校雅典娜计划的一部分.这个 ...
- kerberos认证协议爱情故事
0x01.kerberos简介 kerberos是一种域内认证协议,Kerberos的标志是三头狗,狗头分别代表以下角色: Client Server KDC(Key Distribution Cen ...
- [Kerberos] Kerberos 认证过程整理
Kerberos是一种安全认证协议,意在提供 more secure authentication simplified management of password convenience of s ...
- hadoop的kerberos认证
言归正传,介绍过hadoop的simple认证和kerberos后,我们在这一章介绍hadoop的kerberos认证 我们还使用hadoop集群的机器. OS 版本: Centos6.4 Kerbe ...
- KafkaManager编译安装使用(支持kerberos认证)
为了能够方便的查看及管理Kafka集群,yahoo提供了一个基于Web的管理工具(Kafka-Manager). 这个工具可以方便的查看集群中Kafka的Topic的状态(分区.副本及消息量等),支持 ...
- Java Api Consumer 连接启用Kerberos认证的Kafka
java程序连接到一个需要Kerberos认证的kafka集群上,消费生产者生产的信息,kafka版本是2.10-0.10.0.1: Java程序以maven构建,(怎么构建maven工程,可去问下度 ...
随机推荐
- iOS : 判断运行设备类型是否是iPad
以下代码由 CocoaChina 版主 “cclv” 分享,可用于判断应用运行的设备是否是 iPad #define isPad (UI_USER_INTERFACE_IDIOM() == UIUse ...
- Write operations are not allowed in read-only mode 只读模式下(FlushMode.NEVER/MANUAL)写操作不允
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read ...
- PowerDesigner使用技巧(转载)
1.如何打开PowerDesigner 快捷工具栏 paletteTools(工具栏)--> customsize toolbars(自定义工具栏)-->勾选 palette(调色板) 2 ...
- Publish/Subscribe Model——Notification chain——观察者模式
内核中用的很多,整理时间子系统的时候又遇到了notification mechanism,因此做次记录: 参考:1.http://msdn.microsoft.com/en-us/library/ff ...
- hbase深入了解
http://blog.csdn.net/u010967382/article/details/37878701?utm_source=tuicool&utm_medium=referral ...
- 页面加载中jquery逐渐消失效果实现
为了获得更好的用户体验,现在大多数网页都会在页面中加一个加载中效果,这里实现一个加载中逐渐消失的效果,以至于看上去不那么生硬. html: <div id="loading" ...
- Activity 经历如下3个阶段
Activity 经历如下3个阶段 开始Activity: 在这个阶段依次执行3个生命周期的方法,分别是onCreate onStart onResume 三个方法. Activity重新获取焦点:o ...
- Visual Studio 2012中使用GitHub
前言 一直以来都想使用Git来管理自己平时积累的小代码,就是除了工作之外的代码了.有时候自己搞个小代码,在公司写了,就要通过U盘或者网盘等等 一系列工具进行Copy,然后回家才能继续在原来的基础上作业 ...
- create table repo_folder_operate_log_bak as select * from repo_folder_operate_log;
create table repo_folder_operate_log_bak as select * from repo_folder_operate_log;
- alsa wav
wav_parser.h文件: //File : wav_parser.h //Author : Loon <sepnic@gmail.com> #ifndef __WAV_PARSER_ ...