3

从 5.50 版开始,Bitvise SSH 服务器允许连接的客户端对 Windows 用户帐户进行身份验证,而无需提供该用户的 Windows 密码。见这里:https ://www.bitvise.com/ssh-server-version-history

我自己检查过——确实如此。

我的问题纯粹是出于好奇:这是什么魔法?是否有任何允许此类事情的 WinAPI 或者这是某种巧妙的 hack?我一直认为没有密码就不可能冒充其他用户(因为即使将 Windows 服务或计划任务配置为“以用户身份运行”也需要提供一个)。

4

2 回答 2

1

IIRC,Cygwin 中的 SSH 服务器做同样的事情。

如果您有适当的权限,您可以使用 ZwCreateToken 创建访问令牌,无需密码。这样的令牌有一些限制。例如,您无法在没有密码的情况下访问网络资源,并且无法访问某些加密材料

这里有一个解释和一些示例代码

于 2013-03-29T22:45:57.633 回答
1

从 5.50 版本开始,Bitvise SSH Server 带有一个 Windows 身份验证包。身份验证包可以以自定义方式增强 Windows 登录过程。当 SSH 服务器需要您登录,但没有密码(例如,因为您使用公钥登录)时,它会调用身份验证包来构造一个登录令牌,该登录令牌与由以下人员创建的登录令牌非常相似视窗。正如 arx 所指出的,以这种方式创建的会话不包含您的身份验证凭据,因此副作用是您无法访问网络资源和 EFS 等内容。

于 2013-03-30T01:42:56.967 回答