LogonUser 和其他人在 Windows Server 2003 x86 中返回错误 1337
Posted
技术标签:
【中文标题】LogonUser 和其他人在 Windows Server 2003 x86 中返回错误 1337【英文标题】:LogonUser and others return error 1337 in Windows Server 2003 x86 【发布时间】:2010-10-30 00:15:34 【问题描述】:经过一些更新后,我在所有 Windows Server 2003 成员服务器(仅限 x86)上看到以下问题:LogonUser 和 LogonUserEx 调用失败并出现错误 1337(安全 ID 结构无效)。
基本上,以下代码失败:
HANDLE token;
BOOL b = LogonUserA( "username", "DOMAIN", "password",
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &token );
我也注意到了
运行与本地系统相同的 LogonUser 代码可以正常工作 在未打补丁的 Windows Server 2003 上运行此代码很长一段时间都可以正常工作 最新补丁后,WS2003 x86失败,GetLastError()返回1337 配置“作为操作系统的一部分”权限没有帮助。代码中也没有显式启用 SE_TCB_NAME 权限。 Runas /user:DOMAIN\username 工作正常,无论计算机是否打补丁有人遇到过同样的问题吗? Microsoft 是否已将其识别为错误?
有解决方法吗?由于 runas 正在工作,我认为有另一种方法可以做 LogonUser 所做的事情。
【问题讨论】:
【参考方案1】:显然,是我正在开发的产品中的某些东西导致了这种行为,而不是 Windows 错误。
来自WinError.h
:
//
// MessageId: ERROR_INVALID_SID
//
// MessageText:
//
// The security ID structure is invalid.
//
#define ERROR_INVALID_SID 1337L
【讨论】:
看到错误 1337 总是让我觉得有人想搞笑。 同上 - 有人不够利特:p 我知道人们可能会如何看待这个错误,但这真的是破坏 SID 结构的东西,信不信由你 我很好奇您可能会做什么来呈现损坏的 sid 结构。LogonUser
甚至没有采用安全标识符!
@Ian Boyd 我一直在使用的应用程序(审计软件)使用代码注入 lsass 来监控登录,并且该代码中有一个错误,导致 SID 在某些情况下损坏.以上是关于LogonUser 和其他人在 Windows Server 2003 x86 中返回错误 1337的主要内容,如果未能解决你的问题,请参考以下文章
如何在启用 UAC 的 Windows 服务中调用 LogonUser() 以获取不受限制的完整令牌?
使用 LOGON32_LOGON_NETWORK 从 Delphi 反复调用 LogonUser 会导致帐户被锁定吗?
LogonUser 返回 ERROR_NO_LOGON_SERVERS