目录
讲在前面:
本文是笔者在学习"三好学生"前辈的文章进而总结的一篇文章,内容主要是在内网渗透中获得明文密码的两种方式。,在笔者看来,两种办法都有一定的限制性和局限性,当然还有其他的办法,这需要笔者进一步的继续深入学习从而总结。
一、CredSSP获取明文密码
CredSSP的研究文章的文章通过CredSSP导出用户的明文口令。这篇文章已经分析的非常清楚如何使用,以及使用的场景,当然优缺点也给大家进行了展示,最主要的是介绍了kekeo的tsssp
模块在不同环境下的利用方法,这里不做赘述,仅列举文章中的组策略设置方法。
注意:添加组策略后,需要等待用户重新登录并输入凭据后才能生效,例如锁屏、注销或重启等,对于不同的网络环境,实现方法存在差异。
1、通过组策略设置CredSSP的凭据分配
组策略位置:
计算机配置->管理模板->系统->凭据分配
组策略设置项:
Allow delegating default credentials
表示在通过使用受信任的X509证书或Kerberos实现服务器身份验证时自动发送当前用户的凭据
Allow delegating default credentials with NTLM-only server authentication
表示在通过NTLM实现服务器身份验证时自动发送注意:
对于工作组环境,需要启用
Allow delegating default credentials with NTLM-only server authentication
对于域环境,需要启用
Allow delegating default credentials
2、通过注册表修改
reg add hklm\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation /v AllowDefaultCredentials /t REG_DWORD /d 1
reg add hklm\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation /v AllowDefCredentialsWhenNTLMOnly /t REG_DWORD /d 1
reg add hklm\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation /v ConcatenateDefaults_AllowDefault /t REG_DWORD /d 1
reg add hklm\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation /v ConcatenateDefaults_AllowDefNTLMOnly /t REG_DWORD /d 1
reg add hklm\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowDefaultCredentials /v 1 /t REG_SZ /d *
reg add hklm\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowDefCredentialsWhenNTLMOnly /v 1 /t REG_SZ /d *
二、Dcsync获取明文密码
原因:帐户可以设置使用可逆加密存储密码属性的关系,勾选这个属性后,用户再次更改密码后使用Dcsync来获取密码时会显示其明文密码,
正常使用的场景:当通过远程访问Internet身份验证服务(IAS)或使用CHAP(质询握手身份验证协议)身份验证时,必须启用使用可逆加密存储密码。 在Internet信息服务(IIS)中使用摘要式身份验证时,也需要启动此项。
查询:
- Powershell查找域内所有使用可逆加密存储的帐户
Get-ADUser -Filter ‘useraccountcontrol -band 128’ -Properties useraccountcontrol | Format-Table name, samaccountname,useraccountcontrol
- 使用ldap条件查询勾选其使用可逆加密存储属性的帐户
get-adobject -ldapfilter "(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=128))"
修改:
有几种方式可以来进行此项的修改:
1、通过组策略进行修改,在组策略内的计算机设置中找到如下项,英文版系统相同
计算机配置->Windows设置->安全性设置->帐户策略->密码策略->使用可逆加密存储密码
2、通过使用Active Directory管理中心添加system项中Password Settings Container项内的密码策略,然后将其应用至指定组即可,设置步骤如下:
3、更改帐户的属性,勾选使用可逆加密存储密码选项:
4、使用Powershell的AD模块进行修改:
Set-ADUser test -AllowReversiblePasswordEncryption $true
AD 用户属性userAccountControl的详细解释
三、总结
以上两种方式都是实现明文脱取密码的其中两种办法,适用的场景不一样,前者需要主机重启或者锁屏等,后者需要用户修改密码后。所以需要各位分场景进行利用。