Windows认证及抓密码总结(2)
Kerberos提供了一个集中式的认证方式,在整个认证过程中总共要涉及到三方:客户端,服务端和KDC, 在Windows域环境中,KDC的角色由DC来担任,Kerberos是一种基于票据的认证方式,票据(Ticket)是用来安全的在认证服务器和用户请求的服务之间传递用户的身份,同时也会传递一些附加信息,用来保证使用Ticket的用户必须是Ticket中指定的用户,Ticket一旦生成,在生存时间内可以被Client多次使用来申请同一个Server的服务。这里就存在一个票据窃取问题。 说下kerberos的大致工作流程,域中的客户端要想访问同域中的某个服务器资源时,需要首先购买该服务端认可的票据(Ticket),也就是说,客户端在访问服务器之前需要预先买好票,等待服务验票之后才能入场,但是这张票不能直接购买,还需要一张认购权证(TGT),也就是说客户端在买票之前需要预先获得一张认购权证,这张认购权证和进入服务器的入场券均由KDC发售。引用网络上一张思路很清晰的图。 5. 域渗透中针对Kerberos的姿势主要有哪些? 说完认证过程后,就要说下经常用的两种票据:白银票据和黄金票据了。 白银票据的特点是:不需要与KDC进行交互、需要目标服务的NTLM Hash。因此当拥有Server Hash时,我们就可以伪造一个不经过KDC认证的一个Ticket。 利用: kerberos::golden /domain:<域名> /sid:<域SID> /target:<服务器主机名> /service:<服务类型> /rc4: /user:<用户名> /ptt 由于白银票据需要目标服务器的Hash,所以没办法生成对应域内 所有服务器的票据,也不能通过TGT申请。因此只能针对服务器 上的某些服务去伪造。如cifs服务用于Windows主机间的文件共享,用其他如LDAP等服务则无法访问server的文件系统。 与白银票据相比,黄金票据的特点是需要与DC通信、需要krbtgt用户的hash,也就是需要拿下域控。 利用: lsadump::dcsync /domain:域名 /user:krbtgt kerberos::golden /domain:<域名> /sid:<域SID> /rc4: /user:<任意用户名> /ptt 拿到黄金票据后,就可以伪造黄金票据,然后就能获取任何Kerberos服务权限,登录任意域内任意一台主机。mimikatz导出域内所有主机的票据,命令是sekurlsa::tickets /export,或者dump NTDS.dit也可以。 那最后就要说下拿域控的姿势了。 最常用的毫无疑问是ms14068。主要利用工具是goldenPac.py或者kekeo/PyKEK。利用方式网上很多文章,这里不详细说。 6. Windows Access Token主要知识点浅谈 Windows Access Token(访问令牌)有两种,一种是Delegation token(授权令牌),主要用于交互会话登录(例如本地用户直接登录、远程桌面登录),另一种是Impersonation token(模拟令牌),主要用于非交互登录(利用net use访问共享文件夹)。 每个进程创建时都会根据登录会话权限由LSA(Local Security Authority)分配一个Token。如果CreaetProcess时自己指定了 Token, LSA会用该Token, 否则就用父进程Token的一份拷贝。当用户注销后,系统将会使授权令牌切换为模拟令牌,不会将令牌清除,只有在重启机器后才会清除。 一般通过incognito.exe或者msf中的incognito模块来窃取令牌(Metasploit中的incognito,是从windows平台下的incognito移植过来的),从而获得令牌对应的权限,比如已获得admin权限,然后通过窃取令牌然后令牌假冒来获得system权限。 除此之外,推荐看一下3gstudent大佬的Windows-Token九种权限的利用一文。个人感觉到了内网渗透的后期,想要更好的理解、利用相关漏洞,还是需要对win32有一定的熟悉,否则会一直浮于表面,并不能做的很深入。 最后附上自己总结的Windows认证的思维导图。 参考链接: https://www.cnblogs.com/artech/archive/2011/01/25/NTLM.html https://www.secpulse.com/archives/94848.html https://blog.csdn.net/cxzhq2002/article/details/80938770 【编辑推荐】
点赞 0 (编辑:ASP站长网) |