【问题标题】:LogonUser and others return error 1337 in Windows Server 2003 x86LogonUser 和其他人在 Windows Server 2003 x86 中返回错误 1337
【发布时间】: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 所做的事情。

【问题讨论】:

    标签: windows security winapi impersonation


    【解决方案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 在某些情况下损坏.
    猜你喜欢
    • 1970-01-01
    • 2014-08-28
    • 2016-05-22
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多