我们目前正在编写一个工具,旨在检查各种应用程序(http, ssh, smb, rdp)的凭据有效性。前者没问题。但是对于RDP,我找不到一种简单的方法。
该工具嵌入在linux机器上托管的web应用程序中,因此没有X服务器可用。
我唯一成功用于从命令行验证RDP凭据的工具是THC-Hydra,通过提供单个用户名和密码,它适用于旧版本的RDP服务器,或者那些网络级别认证已经降低的服务器。
然而,THC-Hydra在检查最新版本的Windows的RDP凭据时似乎挂起了,或者在网络级身份验证已经加强的地方。
Medusa使用补丁版本的rdesktop客户端也失败。(一些服务器需要CredSSP, SSL,…)
还有nmap的ncrack,但由于某种原因,我只得到"READ"超时
EDIT:我让Ncrack工作,但是它失败了-至少在Windows 2008 R2上(即使提供正确的凭证也找不到凭证)。
有什么线索可以帮助我吗?
欢呼
实际上我找到了一个可靠的方法来做到这一点。总是当你不再寻找某样东西的时候,你终于找到了。
使用超级棒的远程桌面客户端FreeRDP和+auth-only开关。认证成功时退出状态为0,否则为1。还有一些错误信息,您可以grep查看。
身份验证失败:
jrm@deb-jrm:~$ static/xfreerdp /v:10.0.0.1 /cert-ignore /u:MyUser /MyDomain /p:WRONGPASS +auth-only
Authentication only. Don't connect to X.
credssp_recv() error: -1
freerdp_set_last_error 0x20009
Authentication failure, check credentials.
If credentials are valid, the NTLMSSP implementation may be to blame.
Error: protocol security negotiation or connection failure
Authentication only, exit status 1
Authentication only, exit status 1
有效的身份验证:
jrm@deb-jrm:~$ static/xfreerdp /v:10.0.0.1 /cert-ignore /u:MyUser /MyDomain /p:GOODPASS +auth-only
Authentication only. Don't connect to X.
Authentication only, exit status 0
Authentication only, exit status 0