单次身份验证失败后帐户锁定

Sun*_*nny 4 windows-server-2003 windows-server-2008 samba accounts

我有 2 个独立服务器(不在任何域/AD 中)——Windows 2003 和 Windows 2008。

当使用 Windows 2000 专业版或 Samba(在 linux 下)的 UNC 路径连接到它们上的共享时,如果我输入密码错误,这些服务器将在第一次尝试时锁定帐户。

从 Windows 2003、Windows 2008 和 Vista 连接时,它工作正常。

在所有连接的机器上,它将报告身份验证失败,并再次要求提供凭据。但是从 Windows 2000 和 Samba 开始,即使密码正确,它在第二次尝试时也会继续失败。尝试登录这些机器将报告帐户被锁定。

策略集是在 10 次失败时锁定帐户,并且在从 W2008 或 W2003 进行连接尝试时它的行为是正确的 - 即即使第一次尝试失败,下一次尝试也会成功。

我已经完成了解锁帐户的实验,从 W2000 盒子我故意尝试使用错误的密码登录,即使没有第二次尝试,我也可以看到该帐户已被锁定。

知道我可能会改变什么,所以我避免这个问题吗?它通常发生在我赶时间的时候(当然:) ),因此处理登录机器以解锁帐户真的很令人沮丧。

fis*_*ion 9

我不确定您对 Wireshark 的熟悉程度,所以如果这太冗长或简洁,我深表歉意。;-)

本质上,您希望在任一端安装并启动 Wireshark——无论哪一个——并开始在适当的界面上捕获:

  1. 在 Wireshark 中,单击Capture菜单,然后Options…
  2. 选择合适的接口。
  3. 由于您提到您不在域中,因此我建议输入 aCapture Filter以限制捕获的流量量,例如:
    host 169.254.255.127
    IP 地址应用于远程主机。
  4. Start 捕获,然后尝试浏览共享。
  5. 等到共享出现,或者您看到无效的用户名/密码框,然后停止捕获。

我可能会建议您在每个位置执行两次此操作;首先,使用正确的用户名和密码;其次,使用无效的用户名和/或密码。在每次尝试之间,请确保与远程共享​​断开连接(以便它重新请求身份验证),执行以下操作:

net use \\remoteserver\SharedFolder /delete
Run Code Online (Sandbox Code Playgroud)

我们在这里寻找的是SMB数据,因此删除所有无关内容的第一种方法是在工具栏中的字段中应用一个简单的显示过滤器Filter:

smb
Run Code Online (Sandbox Code Playgroud)

一开始,您应该在Info现场基本上看到三种类型的传输:

  • Negotiate Protocol Request/Response
    这些显示了客户端支持的协议,以及服务器接受的协议。您可以在Packet details部分展开它以查看服务器是否正在使用 NTLM、Kerberos 等。
  • Session Setup AndX Request/Response
    这是身份验证,希望以质询/响应方式发生。您将看到Response来自服务器的几个可能的s:
    • STATUS_MORE_PROCESSING_REQUIRED: 身份验证正在进行中。
    • STATUS_LOGON_FAILURE: 这是登录失败——你会对这些最感兴趣!
    • (无),在这种情况下,您可以展开SMB>SMB Header并查找NT Status: STATUS_SUCCESS,这表示身份验证成功。
  • Tree Connect AndX Request/Response
    这是客户端要求连接到服务器上的特定位置;您通常会看到访问IPC$以及您真正想要的共享。

那么,您实际上要寻找的是表示STATUS_LOGON_FAILURE. 然后,查看上面的一行以查看哪个用户未通过身份验证。

现在,每当您浏览共享时,通常都会看到登录失败;这是因为 Windows 首先尝试使用登录的用户帐户进行身份验证。因此,即使在“现代”操作系统系列(2k3、Vista、2k8)之间,也不要惊讶地看到登录失败。

当我早些时候运行这个测试时,LOCALCOMPUTER\localuser在它甚至尝试使用之前我看到了三个登录失败REMOTECOMPUTER\remoteuser(在我的例子中,它在第一次尝试时成功了)。当我在另一个域上的一台机器上尝试它时,我有十次登录失败!那是在它甚至提示我提供备用凭据之前。

如果要过滤除身份验证以外的所有内容,请将显示过滤器更改为:

smb.cmd == 0x73
Run Code Online (Sandbox Code Playgroud)

要查看所有登录失败的列表,请将显示过滤器更改为:

smb.nt_status == 0xc000006d
Run Code Online (Sandbox Code Playgroud)

请记住,这些登录失败可能不会产生任何影响,因为该帐户通常不会存在于远程计算机上(因此没有“负面记帐”,可以这么说,要对其进行处理)。

编辑:当它提示输入备用凭据时,您可能希望暂停几秒钟,以便您清楚地了解哪些身份验证失败属于“自动”尝试,哪些属于您故意输入错误的凭据。

让我们知道你发现什么!