当前位置: 首页 > news >正文

Kerberos实验

  • kdc:192.168.72.163

  • 客户端(机器账户win10):192.168.72.159

  • 用户:administrator

  • 抓包:开机登录win10,使用administrator域用户凭据登录。

生成 Kerberos 解密文件

  1. 抓取 krbtgt 用户和 win10 机器账户的 hash 。
    • krbtgt 用户的 hash 是为了解密 as-rep 中 tgt 里的加密部分。

    • 机器账户的 hash 是为了解密 tgs-rep 中 st 里的加密部分(使用 administrator 登录机器需要向 kdc 申请 st)。

抓取 hash 内容如下:

打开mimikatz
​
lsadump::dcsync /user:hacker\krbtgt
lsadump::dcsync /user:hacker\win10$
​
krbtgt 和 win10$ 的 hash 分别如下:

  1. 使用脚本生成解密文件

    https://github.com/dirkjanm/forest-trust-tools/blob/master/keytab.py 为生成解密文件的工具

下载脚本后替换脚本的 key 为krbtgt 和 win10$ 的 hash ,如下图所示

执行命令:python keytab.py 1.kt 后
​
生成的 1.kt 就是解密 流量的文件

登录时抓包

  1. 当开启 win10 机器后,输入域用户 administrator 账号密码进行登录,并使用 wireshark 抓包。
  2. 打开 wireshark ,并导入 1.kt 解密文件,如下图(点击 “编辑” ,再点击 “首选项”,找到 “KRB5协议” ,引入解密文件 1.kt):

抓包分析

此时我们就能分析 kerberos 的报文了,这里我们只看关键部分。我们先分析前4个包。

as-req

关键部分:

  • pA-ENC-TIMESTAMP:用户 hash 加密的时间戳

  • cname:发起请求的用户:administrator

  • sname:要访问的服务:krbtgt

as-rep

图中的 ticket 就是 tgt。

关键部分:

  • tgt加密部分中的 key :是 tgt 内部的 Logon Session Key。

  • authorization-data :存放的 PAC 信息,如下图。

tgs-req

关键部分:

  • 发送的 tgt 。

  • 发送的 Logon Session Key 加密的时间戳。

  • 其他信息。

tgs-rep

关键部分:

  • ticket :就是返回的 st 。

  • enc-part 中的 key : Logon Session Key 加密的 Server Session Key。

多出来的 tgs-req 和 tgs-rep

这里还多出来一个 tgs-req 和 tgs-rep,这是怎么回事呢?

其实 administrator 登录 win10 后,不光申请了访问 win10 机器账户的 st,也申请了访问域控机器账户的 st,这样用户在 win10 上访问域控的话,能直接使用这个访问域控的 st,不需要另行申请了。也就是说 administrator 仅使用了1个 tgt 就申请到了2个 st。

但是我们观察它申请出来的 st 没有被解密(如下图),这是因为这里的st是被域控机器账户的 hash 加密了,而我们生成解密文件 1.kt 时,没有引入域控机器账户的 hash 。

http://www.lryc.cn/news/506139.html

相关文章:

  • Android之RecyclerView显示数据列表和网格
  • docker mysql挂载
  • 顺序表-递增有序表合并
  • 【Qt】qt安装
  • CXF WebService SpringBoot 添加拦截器,处理响应报文格式
  • vue iframe进行父子页面通信并切换URL
  • 基于Spring Boot的摄影师分享交流社区
  • Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:电影院后台管理系统(前后端源码 + 数据库 sql 脚本)
  • Linux(网络协议和管理)
  • C++ 入门第 20 天:STL 容器之无序集合与无序多重集合
  • devops-部署Harbor实现私有Docker镜像仓库
  • rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别
  • Vulhub:Jackson[漏洞复现]
  • strongswan构建测试环境
  • 前端:金额高精度处理
  • 面试题整理3----nc命令的常见用法
  • Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】
  • IntelliJ IDEA 使用技巧与插件推荐
  • Oracle 技术精选学习
  • sqlilabs第三十关到第三十五关靶场攻略
  • windows免登录linux
  • matlab绘图时设置左、右坐标轴为不同颜色
  • springboot+javafx使用aop切面导致的fx:id不能被注入问题
  • 说说你对java lambda表达式的理解?
  • 优化你的 3D Tiles:性能与质量的平衡
  • 【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
  • 设计模式之桥接模式:抽象与实现之间的分离艺术
  • 网络隧道与代理
  • 游戏关卡分析:荒野大镖客2雪山终战
  • Java 中的 LocalDateTime、DateTime 和 Date 的区别解析