LogonUser和其他人在Windows Server 2003 x86中返回错误1337

时间:2010-10-30 00:15:34

标签: windows security winapi impersonation

经过一些更新后,我在所有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工作正常,无论计算机是否已修补

有人遇到过同样的问题吗?微软是否认为它是一个错误?

有解决方法吗?由于runas正在运行,我认为有一种替代方法可以执行LogonUser所做的事情。

1 个答案:

答案 0 :(得分:0)

显然,我正在开发的产品中出现了导致此类行为的内容,而非Windows漏洞。

来自WinError.h

//
// MessageId: ERROR_INVALID_SID
//
// MessageText:
//
// The security ID structure is invalid.
//
#define ERROR_INVALID_SID                1337L