PowerShell 技能连载 - 清除所有账户的 Kerberos 票证

在前一个技能中我们介绍了 klist.exe 以及如何用它来清除当前用户的所有 Kerberos 票证,这样新的权限可以立即生效。

由于 PowerShell 可以很好地调用外部应用程序,例如 klist.exe,所以结合其它 PowerShell 命令,功能可以变得更强大。以下代码可以获取所有非使用 NTLM(例如 Kerberos 会话)的登录会话:

1
Get-WmiObject -ClassName Win32_LogonSession -Filter "AuthenticationPackage != 'NTLM'"

在提权过的 PowerShell 中运行这行代码,将可以看到所有登录会话。只需要做一点小修改,就可以获取十六进制的登录 ID:

1
2
Get-WmiObject -ClassName Win32_LogonSession -Filter "AuthenticationPackage != 'NTLM'" |
ForEach-Object {[Convert]::ToString($_.LogonId, 16)}

要清除所有会话的缓存的 Kerberos 票证,您可以(在提权的 PowerShell 中)运行这段代码:

1
2
3
Get-WmiObject -ClassName Win32_LogonSession -Filter "AuthenticationPackage != 'NTLM'" |
ForEach-Object {[Convert]::ToString($_.LogonId, 16)} |
ForEach-Object { klist.exe purge -li $_ }

PowerShell 技能连载 - 清除所有账户的 Kerberos 票证

http://blog.vichamp.com/2018/04/12/purging-kerberos-tickets-for-all-accounts/

作者

吴波

发布于

2018-04-12

更新于

2022-07-06

许可协议

评论