最近经历了一次非常有意思的排错,虽然经过了两天的时间才找到原因,但是觉得这次排错非常有意思,所以写下来供以后参考,也给大家一个参考。
环境介绍:
在windows 2003的域环境中,有三台DC,另外有Email的服务器,文件服务器,已经数据库服务器等等。
Domain function level为Windows2000 native(还没有升到2003)
Forest function level:windows2000
出现的问题:
在检查日志的过程中发现有12294的报错,报错截图如下:
起初以为只是个别现象,可能是管理员在远程登录时输入错了密码,所以也没有放在心上,但是随后的发现让我有些紧张。当我使用eventcombMT.exe这个工具检测账号时,发现EventID为675的security audit log中有几百条关于管理员账号验证失败的记录。使用的验证失败错误完全一样,如下:
675,AUDIT FAILURE,Security,Tue Dec 28 18:00:27 2010,NT AUTHORITY\SYSTEM,Pre-authentication failed: User Name: administrator User ID: %{S-1-5-21-2380125314-1135609519-1071393968-500} Service Name: krbtgt/cn Pre-Authentication Type: 0x2 Failure Code: 0x18 Client Address: 127.0.0.1
675,AUDIT FAILURE,Security,Tue Dec 28 17:58:52 2010,NT AUTHORITY\SYSTEM,Pre-authentication failed: User Name: administrator User ID: %{S-1-5-21-2380125314-1135609519-1071393968-500} Service Name: krbtgt/cn Pre-Authentication Type: 0x2 Failure Code: 0x18 Client Address: 127.0.0.1
675,AUDIT FAILURE,Security,Tue Dec 28 17:55:22 2010,NT AUTHORITY\SYSTEM,Pre-authentication failed: User Name: administrator User ID: %{S-1-5-21-2380125314-1135609519-1071393968-500} Service Name: krbtgt/cn Pre-Authentication Type: 0x2 Failure Code: 0x18 Client Address: 127.0.0.1
675,AUDIT FAILURE,Security,Tue Dec 28 17:54:37 2010,NT AUTHORITY\SYSTEM,Pre-authentication failed: User Name: administrator User ID: %{S-1-5-21-2380125314-1135609519-1071393968-500} Service Name: krbtgt/cn Pre-Authentication Type: 0x2 Failure Code: 0x18 Client Address: 127.0.0.1
675,AUDIT FAILURE,Security,Tue Dec 28 17:52:15 2010,NT AUTHORITY\SYSTEM,Pre-authentication failed: User Name: administrator User ID: %{S-1-5-21-2380125314-1135609519-1071393968-500} Service Name: krbtgt/cn Pre-Authentication Type: 0x2 Failure Code: 0x18 Client Address: 127.0.0.1
675,AUDIT FAILURE,Security,Tue Dec 28 17:50:52 2010,NT AUTHORITY\SYSTEM,Pre-authentication failed: User Name: administrator User ID: %{S-1-5-21-2380125314-1135609519-1071393968-500} Service Name: krbtgt/cn Pre-Authentication Type: 0x2 Failure Code: 0x18 Client Address: 127.0.0.1
675,AUDIT FAILURE,Security,Tue Dec 28 17:45:14 2010,NT AUTHORITY\SYSTEM,Pre-authentication failed: User Name: administrator User ID: %{S-1-5-21-2380125314-1135609519-1071393968-500} Service Name: krbtgt/cn Pre-Authentication Type: 0x2 Failure Code: 0x18 Client Address: 127.0.0.1
而且日志时间显示几乎每风中都有验证错误的log,而且同时会有多条。
排错过程:
从日志上看,
EventID 675表示是表示登录时Kerberos验证错误
Failure Code:0x18 表示验证信息无效,密码错误
可以参考(http://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=675#fields)
像是有人在不断的尝试管理员密码,莫非是有人在攻击?但是从client IP地址上看,都是127.0.0.1,又有可能是本地中了木马。
采取的措施:
1.使用杀毒软件对DC进行full scan,没有发现病毒。
2.根据Account lockout best pratices中介绍的查看本地的服务,盘符映射,计划任务中是否有以这个用户的账号运行,以防止账号密码改了,没有在这些任务中更新,使这些任务依然使用就密码而造成不断的报错。
3. 使用账号锁定检查工具(Netwrix account lockout Examiner(http://www.netwrix.com))对账号和服务器进行检测,也没有发现服务器,计划任务,盘符映射等的问题,只是看到Invalid logon的次数在不断增加。
4. 运行DCdiag和Netdiag,没有发现什么问题,一切正常。在EventID.Net中查找解决方式,发现没有有效地方式。
5.抓包,在本地抓包,并进行分析,没有发现可疑的包,这确保了是在本地发生的。
6.使用Process Explore检查当前的进程是否有可疑进程,发现除了签名是Symanctec的杀毒软件和签名是Microsoft的进程,没有其它的进程。
7. 这下奇怪了,再次使用EventcombMT.exe检查,发现还是用很多EventID为675的报错,而且实时都在发生。
8. 通过开启netlogon logging(执行nltest /dbflag:2080ffff,log存放在Systemroot\Debug\Netlogon.log),发现都是一些这样的记录:
12/28 16:16:32 [LOGON] CN: SamLogon: Network logon of CN\administrator from domain controller name Entered
没有什么有价值的线索。于是关掉了netlogon loging(nltest /dbflag0不关掉会撑爆硬盘的)。
在没有办法的时候,突然无意中发现了一个帖子,上面似乎跟我的状态差不多,说是检查一下DHCP服务器的DNS Dynamic Update Crendital,于是赶快等到DC上打开DHCP服务器,如下图:
点击Credential,果然是设了管理员用户名和密码,将密码修改以后,过半小时,没有再发现EventID为675的报错了,问题解决。
结论:
这次问题主要出在管理员密码修改之后,没有修改DHCP中DNS Dynamic Update Credential的密码,从而导致DHCP在动态想DNS同步PTR记录时使用没有修改密码的credential,所以总是报错。
关于DHCP DNS Dynamic Update的问题,请参考http://technet.microsoft.com/en-us/library/cc787034(WS.10).aspx
几个比较好的链接:
http://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=675#fields
http://www.windowsecurity.com/articles/Kerberos-Authentication-Events.html
http://blog.sina.com.cn/s/blog_4d52cc8b0100mj9x.html
http://net.it168.com/app/2007-07-31/200707311156578.shtml
有用的工具:
Account Lockout tool: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7af2e69c-91f3-4e63-8629-b999adde0b9e
Netwrix account lockout Examiner:http://www.netwrix.com (这个网站上有很多非常好的工具,有一些是免费的)
DCDiag and Netdiag GUI:http://www.pbbergs.com/windows/downloads.htm