首页 文章

Active Directory自定义身份验证

提问于
浏览
2

我已经为Windows-7登录创建了一个子身份验证包 . 它成功地用于本地帐户登录 . 然后,我尝试在Windows Server 2008 r2中为活动目录实现相同的子身份验证包 . 我将我的DLL放在 Windows\System32\ 文件夹中,并修改了Kerberos的注册表值为this Microsoft文档解释为子身份验证DLL .

我设置的值是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos 值: Auth0 设置为 C:\Windows\System32\SubAuth.dll (我在这里吗?) .

但是在进行身份验证时,我注意到我的子身份验证包没有被调用,因为在针对AD对客户端计算机上的用户进行身份验证时,我不会被要求提供第二个因素 .

我在设置中遗漏了什么,或者我的子身份验证包中有一些东西需要更改 .

如果我在这里错过任何信息,请告诉我 .

PS:子身份验证包是根据Microsoft的凭据提供程序文档(在Msv1_0SubAuthenticationFilter例程中)开发的 .

2 回答

  • 0

    为了实现我所提出的问题,我需要在Microsoft的身份验证包中进行攻击 .

    这就是我做的 .

    与活动目录通信并进行身份验证w.r.t. AD,我必须在凭证提供商之前完成 .

    所以我的解决方案的控制流程在Credential提供程序中如下所示:

    • 检查用户是否已连接到网络 .

    • 如果是,则与AD服务器通信,AD服务器是预定义的,并根据AD条目验证用户 .

    • 如果用户已经过验证,则仅在凭证提供程序中询问第二个因子,然后在成功验证时,将用户传递给子验证模块并绕过子验证中的第二个因子 .

    • 如果用户未连接到网络,则使用sub-auth模块进行验证 .

    所以基本上,如果用户需要验证AD并稍后在子authh模块中执行密码验证,我必须首先执行第二次FA .

  • 0

    看起来这是设计 - 来自kerberos \ ssv1_0 subauth包的Msv1_0SubAuthenticationFilter例程将不会被调用用于缓存域交互式登录 .

    对于交互式登录,сall链将是这样的:

    LsaApLogonUserEx2->MsvSamValidate->MsvpSamValidate->MsvpPasswordValidate
    LsaApLogonUserEx2->MsvSamValidate->MsvpSamValidate->Msv1_0SubAuthenticationRoutine
    

    但对于缓存的交互式登录сall链看起来像:

    LsaApLogonUserEx2->MsvpPasswordValidate 
    <and there is no call to Msv1_0SubAuthenticationRoutine here>
    

相关问题