最近复习了下域的一些知识,查阅资料的时候感觉比前几年的时候多了不少,越来越透明了,然后这里顺便总结下常见拿域控的方法,都是实战中常用的,每种方法下面都贴了实战或者参考文章的链接,然后平常学习的时候,要理清楚每种漏洞的原理,漏洞需要的条件,然后在实际的环境中,结合收集到的信息,这样才能梳理出正确和清晰的攻击思路。
通过Zerologon、Nopac、PrintNightmare漏洞一把梭,MS17-010,MS-14068运气很好的话说不定也能梭,然后就是漏洞利用的条件以及漏洞原理搞清楚,具体的漏洞利用过程网上文章超级多了。
https://mp.weixin.qq.com/s/rS-LAAjPI-k0-n_HxlSt9w
https://mp.weixin.qq.com/s/pBwIpBx7nJ9wu9R7YJR3xg
https://mp.weixin.qq.com/s/TLloZlFt-fkxg1pGMk9aQ
https://mp.weixin.qq.com/s/LrEKrSJiT5zNGahUrFWPFg
查看有没有域管理员进程,没有就尝试密码喷洒或其他漏洞等方法,尽可能多横向机器,有的话注入到域管理员进程。
可以借助BloodHound更直观。
拿到的这台机器是被域管配置成了非约束委派的话,我们就可以委派域中任意用户去访问任意服务(例如域控的 CIFS 服务),但前提是目标用户向我们发起了 Kerberos 请求,可以使用 PrintBug 或者 PetitPotam等强制认证漏洞来完成。
这种一般是通过CVE-2019-1040加强制认证进行NTLM Realy,配合RBCD或ACL等来打域控或Exchange等,这一部的涉及的知识挺多的,这次也恶补了下。
通过利用漏洞如ProxyShell、ProxyNotSell、ProxyLogon、CVE-2021-26857、PrivExchange等来获取Exchange服务器权限,获得Exchange 权限后,由于特殊组的缘故导致其拥有WriteDACL权限,可以修改域内的ACL,赋予Dcsync ACE权限给指定的用户,允许模拟域控制器,请求域内帐户的哈希值,包括域管理员的哈希值,最终获取域控制器的控制权。
内网里有 ADCS 服务,且开启了证书Web注册服务的话,攻击者只需要拥有一个域账号,再结合 PetitPotam 或者 PrintBug等强制认证漏洞完成,这里就不用配合CVE-2019-1040漏洞了,因为是Relay To HTTP,然后NTLM Relay拿到 DC 的 Base64 证书,通过asktgt拿到TGT,注入TGT配合DCSYNC,从而获取域控的权限。
这个看了下目前是ESC1-11了,上面提到的ASCS Relay是ESC-8,剩下的看下面参考文章吧。
此漏洞受Nopac利用思路的影响,将Nopac中Kerberos认证相关的问题,转向证书认证相关的问题。此漏洞通过将机器账户dNSHostName属性的值修改成与域控一样的方法,来获取域控的机器账户hash,从而获取域控的权限。
可以借助BloodHound分析ACL控制路径,发现可利用权限,比如如A用户对B用户有WriteDACL权限,就可以在A用户上修改B用户为GenericAll权限,让A用户对B用户拥有所有的访问控制权,然后也可以配合GPO滥用达到添加用户权限、添加一个本地管理员、添加一个新的计算机启动脚本等操作。ACL滥用比较经典的案例就是通过漏洞获得Exchange 权限后,由于特殊组的缘故导致其拥有WriteDACL权限,可以修改域内的ACL,赋予Dcsync ACE权限给指定的用户。
这几种都是针对域账户的,枚举用户或脱机爆破。
思考或尝试较多的几篇实战文章(建议细心阅读):
实战环境下还是要结合收集到的信息来制定有效的攻击路线,”实战文章推荐”建议好好阅读一下,涉及了很多知识点利用,思考的过程也都体现了出来。
比如,”实战文章推荐”的第一篇,基于RBCD,通过ADFind或是LDAPsearch等导出LDAP信息,查询机器账户的mS-DS-CreatorSID属性对应的SID和用户账户对应的objectSid值,进行比较发现某用户拉入域内不少机器,推测可能是运维人员,通过鱼叉钓鱼拿下此用户权限配合RBCD拿下了一台域机器权限,之后上线CS进行信息收集,发现3389有连接记录,提取之后登录某WEB服务器,发现其连接的数据库是域内唯一注册了SPN属性的MSSQL服务,之后通过RottenTomato从SERVICE提权提权到了SYSTEM,之后发现有域管进程,至此成功拿下域控。
”实战文章推荐”第二篇,使用了BloodHound来对域内收集信息且收集到m.child.xiaoli的域用户PO同时处于child.xiaoli的AS组(Enterprise Admins),然后通过寻找到达子域控的最短路径,发现当前ra用户处于SN组对主机PGO有管理员权限且PGO主机存在一个名为PGO的用户Session为子域控管理员权限,所以这里直接拿下了子域控,然后在子域上通过BloodHound分析当前PGO用户,发现PGO用户处于Administrators组且拥有GetChangesALL和GetChanges Dnsync权限,所以可以直接拿下PO用户凭据(Enterprise Admins),也就拿下了域林。文中体现了具体的思考过程,多种方法,可以去详细看看。
”实战文章推荐”第六篇,从WEBDAV XXE做NTLM Realy配合RBCD,但是RBCD需要一个机器账户,所以通过把在之前的discuz数据库中的用户名整理成字典,并通过 AS_REQ返回包来判断用户名是否存在,然后将discuz的密码拿到cmd5上批量解密,解密后发现大部分用户的登录密码都是P@ssw0rd,于是使用密码喷射,成功获取到了一个域凭据,有了域凭据后连接域控ldap添加机器账户,然后通过S4U申请ST票据登录WEBDAV服务器,最后通过ssp lsass绕过卡巴dump出了域管理员hash,成功拿下域控。
最后还是做好域内信息收集吧,发现的比如,通讯录、运维密码本等这类信息也收集好,有时候对拿下域控也都有关键作用。