获取Windows中登录用户的用户名/密码

den*_*isV 10 winapi mfc visual-c++

是否有任何API可以在Windows中获取当前登录用户的名称和密码?

先感谢您.

小智 29

密码:不,出于安全原因,这不会被保留 - 它被使用,然后被丢弃.您可以从注册表中检索此用户的加密密码,并获得足够的权限,然后使用彩虹表等方法对其进行解密,但这使用当前方法非常耗费资源并且非常耗时.提示用户好多了.

或者,如果你想像Novell那样实现某种"单点登录"系统,你应该通过GINA(Vista之前)或Credential Provider(Vista)来实现,这将导致您的代码被赋予用户名和登录时的密码,密码可用的唯一时间.

对于用户名,获取当前用户名(运行代码的用户名)很简单:AdvApi32.dll中的GetUserName函数可以为您完成此操作.

如果您作为服务运行,则需要记住没有人"登录用户":除了任何实际的人之外,还有几个在任何时候,例如LocalSystem,NetworkService,SYSTEM和其他帐户.本文提供了一些示例代码和文档.


Mil*_*lbe 5

对于许多认为不可能泄露当前登录用户的密码的评论者,请参阅转储登录用户的明文密码,其中显示了如何使用mimikatz来做到这一点:

mimikatz # privilege::debug
Demande d'ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full
...
Utilisateur principal       : user
Domaine d'authentification  : domain
        kerberos :
         * Utilisateur  : user
         * Domaine      : domain
         * Mot de passe : pass
Run Code Online (Sandbox Code Playgroud)