Dou*_*oug 9 windows windows-server-2008 active-directory
我们有一个 Windows Server,它上面有一个应用程序,它在登录到应用程序时使用域凭据。在最近的一次渗透测试中,测试人员能够使用该应用程序,以便根据应用程序的响应枚举有效的域用户名(对于无效的用户名和无效的密码,它给出了不同的响应)。
应用程序正在修复中,所以它不会透露这些信息,但我也觉得我们应该检测到这种攻击,因为在短时间内有超过 2000,000 次无效用户名尝试。我们没有看到它,即使我们的管理员正在密切关注 Active Directory。显然,故障只出现在安装应用程序的服务器的本地事件日志中。
我的问题:1) 有没有办法让 Active Directory 将这些失败的用户名请求记录在一个中心位置,以便我们可以注意到它们的峰值?
2)如果没有,未来监控和主动检测此类攻击的最佳方法是什么(希望不必购买太多新设备)。
谢谢你的帮助。
Rya*_*ies 11
很好的问题。
首先,我认为大多数“渗透测试人员”都是脚本小子。我的偏见可能不公平或不准确,但我提出此免责声明,以便如果您发现我语气中的任何愤世嫉俗,您就会知道它来自哪里。我并不是说没有熟练的渗透测试人员,但这是我的概括。
(终身蓝队!)
我的问题:1) 有没有办法让 Active Directory 将这些失败的用户名请求记录在一个中心位置,以便我们可以注意到它们的峰值?
您没有提供足够的信息让任何人都能够彻底和自信地回答这个问题。你说你的应用程序被发现包含一个允许攻击者枚举用户帐户的缺陷。我试图了解您认为 AD 需要以何种方式为您的应用程序执行日志记录。
显然,故障只出现在安装应用程序的服务器的本地事件日志中。
显然,服务器上的事件日志中出现了故障?或者故障确实出现在服务器的事件日志中?如果是这样,事件究竟说明了什么?谁记录了它们?你的申请?还是窗户?去找出答案,我也许可以为我的答案添加额外的说明。
根据您的假设,这些事件应该由 Active Directory 以某种方式记录下来,我将在这里冒险……如果您的渗透测试人员实际上根本没有利用您的应用程序中的缺陷,而是使用Kerberos 本身在枚举用户名方面的一个众所周知的缺陷?Kerberos 本身包含我认为的设计缺陷,其中攻击者可以尝试成千上万次“预身份验证”尝试(即蛮力攻击),而 KDC 将根据用户帐户是否存在而做出不同的响应。这不是特定于 Active Directory 的行为,但同样适用于 MIT Kerberos、Heimdal 等。 KDC 将响应KDC_ERR_PREAUTH_REQUIRED如果一个有效的用户名没有预认证数据,即使没有尝试实际认证。通过这种方式,您可以从 KDC 枚举用户名。但是因为攻击者(或攻击者使用的工具,例如 KrbGuess - 因为渗透测试人员在使用其他人的工具时处于最佳状态)不必继续进行完整的身份验证尝试,因此不会记录任何内容,因为没有已尝试实际身份验证!
现在,进入你的下一个问题:
2)如果没有,未来监控和主动检测此类攻击的最佳方法是什么(希望不必购买太多新设备)。
几件事。
首先,有付费的企业级产品旨在检测此类攻击(以及其他许多产品)。许多供应商都提供此类产品,并且产品推荐对于 Serverfault 来说是题外话,但足以说明它们已经过时了那里。许多这些产品的工作原理是要求您在域控制器和这些“数据收集器”之间配置端口镜像,以便它们能够查看和分析进入或退出域控制器的每个数据包。
(对不起,这有点属于你的“不买太多新东西”条款。)
另一件可能对您有帮助的事情是注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
LogLevel = 1
记录在这里。
如果您启用此注册表项,您的安全事件日志中应该充斥着有关 Kerberos 错误的事件,这些事件提到需要 Kerberos 预身份验证。此类事件的示例:
A Kerberos Error Message was received:
on logon session DOMAIN\serviceaccount
Client Time:
Server Time: 12:44:21.0000 10/9/2012 Z
Error Code: 0x19 KDC_ERR_PREAUTH_REQUIRED
Extended Error:
Client Realm:
Client Name:
Server Realm: DOMAIN
Server Name: krbtgt/DOMAIN
Target Name: krbtgt/DOMAIN@DOMAIN
Error Text:
File: e
Line: 9fe
Error Data is in record data.
Run Code Online (Sandbox Code Playgroud)
但是,如果它没有指定 Kerberos 请求海啸的确切来源,这可能对您有帮助,也可能无济于事。这让我们回到我之前提到的那些企业入侵检测产品。
并且不要忘记 Windows 事件转发,它可以让您的服务器将事件转发到一个集中位置,以便您可以使用任何工具进行分析。
到目前为止,整个答案都基于 Kerberos 协议,我什至不能认为这是理所当然的,因为您在帖子中提供的细节太少。尽管如此,我希望这至少有一点帮助。
| 归档时间: |
|
| 查看次数: |
5596 次 |
| 最近记录: |