AD账户频繁被锁

===问题描述===

用户反应他的账户总是被锁定,起初锁定时间一个小时左右,如今已经缩短到了30秒以内

===原因分析===

造成账户锁定的原因

  1. 通过powershell查看用户在两个星期前修改过密码,这也是造成锁定的导火索
  2. 旧的密码凭据还保留在其他服务器或者客户端上,正在尝试进行某种操作
  3. 用户使用的计算机中了病毒或者有人恶意尝试密码

这里只有他一个人被锁定了,可以排除病毒的可能,恶意尝试不可能什么时间段都锁定,也可以排除

附件上传了一个查看账户锁定的工具,在DC上将其安装,输入被锁账户用户名密码就可以查看用户锁定信息、密码最后修改时间等信息

===事件查看===

默认的日志对于我们查看用户锁定来说没有任何参考价值,需要开启账户登录审核以及账户管理审核

要在有PDC操作主机上的DC开启,Netdom query fsmo这条命令查看PDC主机在哪台DC

1)设置本地策略和组策略都可以,最终的结果都是开启了本地审核策略,设置成图中的选项

2)必须刷新组策略,然后使用auditpol/get /category:*  查看审核策略是否生效

3)等待问题重现后查看日志,事件ID为4740的是账户锁定的日志

从中可以看出用户L70082,锁定源则是一台名为Admin-pc的电脑,这不是被锁定用户登录的计算机

以下说明账户解锁和凭据验证的事件ID,附图

账户解锁,事件ID4767,包括管理员手动解锁和锁定时间后自动解锁

用户凭据验证,事件ID4776,此事件和4740尤为重要,排查问题主要收集这两种日志

===问题排查-排查问题PC===

1)于是就在域OU查找名为Admin-pc这台计算机,

2)使用ping命令查看到电脑的IP地址

3)找网络相关人员查询PC是什么部门在使用,即时消息找到部门人员后,开始排查问题,没有异常的服务和进程,任务计划中也没有和锁定账户相关的任务

将用户计算机也开启本地审核策略,等待问题重现后抓取日志

刷新组策略,auditpol/get /category:*查看策略生效结果

4)开启登录事件:可以看到除了本机用户之外其他用户是否在此计算记进行登录

开启进程跟踪:记录用户计算机每一个操作开始和结束,使用的账户名称以及调用的文件

但是结果并没有发现任何L70082(被锁定账户)的线索

5)下班后将其计算机关闭,查看是否还会出现账户锁定现象, 就30秒左右的时间,账户还是被锁了,源还是Admin-pc

6)为了完全排除这台计算机的嫌疑,将此计算记改名为公司规定计算机名称,锁定源还是Admin-PC

===柳暗花明===

1)日志是不会说谎的,我坚信这一点,在DC上运行如下命令开启Netlogon debug log(会记录用户找DC做验证和登录的信息)问题重现后查看日志,日志路径:c:\windows\debug\netlogon.log

如果有多台DC,详细查看每台DC的Netlogon日志

nltest/dbflag:0x2080ffff

Net Stop NetLogon & Net start Netlogon

日志文件中找到了些有价值的线索,直接在日志中用被锁用户名作为查找信息

箭头所指的意思是Admin-PC使用了L70082这个账户访问了BHAD10的资源

接着往下找找,又看到了一条日志信息,ADMIN-PC又用L70082访问了PRINTERCARD这台服务器

2)经过核实后,Printercard这台服务器是管理公司所有打印服务器的,怀疑可能是打印机使用以前旧密码一直进行打印操作,但是管理员一口咬定说这个管理系统会将无效的打印任务自动删除

3)登录Printercard这台服务器,通过微软的抓包工具Network Monitor

下载地址http://www.microsoft.com/en-us/download/details.aspx?id=4865

安装完成后请点击“Start Page”中的“New capture tab”新建一个任务;

准备好后,请按界面上的“Start”开始数据的抓取;

以管理员身份运行以下命令:

ipconfig /flushdns

nbtstat –rr 问题重现后,按界面上的Stop停止抓包

4)Netlogon日志是无法看到IP地址的,只有通过网络抓包才可以找到问题根源

可以看到源IP为10.124.90.199,但是我通过ping和telnet命令无法和这台计算机通信,可能是防火墙做了什么设置吧,这个也不必太纠结,可能是一台部门用的小型服务器

5)接着上面的排错,通过网络表查找到这个地址段是企业文化部的人在使用,找到这台计算机后用户说是一台对外开放的小型服务器,所有开放了防火墙策略,这也就是为什么我们访问不到它的原因,也是这一点给排错增加了一丝难度

===最后一击===

由于此计算机设计机密文件,无法截图或拍照,操作很简单照着文件看一次就懂了

1)之前的日志信息显示为它在联系打印服务器,那么我们接下来的排错思路肯定是从打印入手,控制面板中找到打印机管理,然后查看打印任务,看到有两个打印任务是6月7号的这也就是被锁定用户修改密码的时间,之所以一直没有打印是因为用户密码已经被修改过了

2)到这里我开始犹豫了,密码到底储存在哪里,哈!当然是管理凭据中了,点击Windows管理凭据,发现里面确实存储了L70082的账户名和密码,将其删除后,账户半小时以内没有再次锁定。(之前可是30秒就一次的)

===解惑===


致此现象出现的原因是,这台没有加入域的计算机想要打印文件,但是必须输入有权限的域账户才可以,L70082将自己用户密码保存在了Admin-PC这
台计算机的Windows凭据中,方便使用Admin-pc的用户进行打印任务,L70082修改密码后,Admin-PC就没法进行打印了,由于管理凭
据中存有L70082的账户密码,所以打印任务会一直重试,这种现象也不会被管理打印服务器认定为垃圾打印。

===总结===

为此我咨询微软工程师,账户锁定的问题他们基本没有使用抓包来解决,解决方法如下:

1)开启审核日志,具体信息上文中提到

2)通过事件ID4740和4776找到锁定源

3)在锁定源上开启登录事件和进程跟踪的审核日志

4)确定DC和客户端的时间是同步的,例如在DC中查看4740日志发现用户在10:55:23的时候被锁定了,

就可以在客户端查找相同事件的日志,查看当时在运行哪些进程。就可以准确的找到问题的根源!

出现像我写到的这种特殊情况时,抓包是最好的解决方法!

时间: 2024-12-31 18:57:52

AD账户频繁被锁的相关文章

Powershell批量修改AD账户登陆到的计算机

Powershell 批量修改AD账户登陆到的计算机 上个月有个项目中碰到这样一个需求,讲述步骤前先描述下客户的实际情况:因安全考虑需要,域内的计算机之前都已经设置了指定登陆到的计算机,目前的项目是从Lotus邮件系统迁移到Exchange 2010,Lotus工作流迁移到泛微OA,域内账户输入账号和密码后不能登陆到Exchange系统.原因就是设置了账户的登陆到计算机属性,因为Exchange是新上的系统,没在指定范围内,所以需要添加Exchange服务器CAS01,CAS02,Mail,Ma

AD账户锁定排错(未完)

===问题描述=== 用户反应他的账户总是被锁定,起初锁定时间一个小时左右,如今已经缩短到了30秒以内 ===原因分析=== 造成账户锁定的原因 通过powershell查看用户在两个星期前修改过密码,这也是造成锁定的导火索 旧的密码凭据还保留在其他服务器或者客户端上,正在尝试进行某种操作 用户使用的计算机中了病毒或者有人恶意尝试密码 这里只有他一个人被锁定了,可以排除病毒的可能,恶意尝试不可能什么时间段都锁定,也可以排除 附件上传了一个查看账户锁定的工具,在DC上将其安装,输入被锁账户用户名密

oracle 用户频繁被锁

    今天一个网友发求助信息,说某社会治安综合治理系统的连接的某个oracle用户频繁被锁,使用 alter user XX account unlock 解锁后一会还是又被锁定,使用PLSQL登录时提示ORA-28000     让他执行了一下这条SQL select * from dba_profiles where resource_name like 'FAILED_LOGIN_ATTEMPTS%';     他说limit是10,初定判断是因频繁输错密码登陆超过次10次,导致用户被锁

JAVA通过SSL证书创建MS AD账户及设置密码

近期由于工作需要整理一下自动化的东西,因为公司去年上线了OA,所以公司的入职系统会提交用户的信息到IT部门,最早的做法是入职到了,IT部门收集用户信息在AD中创建对应的用户信息,所以为了提高管理员的工作效率,所以准备实施自动创建AD账户,当OA流程到IT人员审批节点后,IT人员审批后根据人员信息自动创建AD账户,所以整理了一些JAVA创建AD人员信息的信息,但是我们需要注意点的是,对于JAVA语言操作MS AD的一些普通操作是不需要SSL的,但是对于用户密码的重置操作必须使用SSL,当然之前看网

ArcSDE账户频繁被锁定(Oracle显示12560协议适配器错误)

最近遇到了一个比较奇葩的问题,启动系统的时候无法显示地图服务,查找原因时发现无法连接Oracle.出现以下错误: 之前遇到这种问题,通常是由于同时安装了64位和32位Oracle客户端,且二者的环境变量顺序不正确(应该为64位环境变量在前,32位环境变量在后),但是这次并不是由于这个问题,而是由于登录的sde账户被锁定. 发现问题后将sde账户进行解锁并设置了密码不过期(解除锁定详见之前的随笔  Oracle使用笔记(三)) 顺利登录sde账户后打开查看地图服务,发现sde账户又被锁定了. Or

Get AD Object and disable move delete AD account script 查询删除AD账户计算机

Get AD computer account.ps1 下面的脚本实现查询大于90天没有登录的计算机账户,并移动到一个OU中,也可以结合脚本将其disable和删除: # Gets time stamps for all computers in thedomain that have NOT logged in since after specified date Mod by Tilo2013-08-27 import-module activedirectory  $domain = "d

Powershell 修改Office365和AD账户

这段时间需要大量地修改AD用户的一些属性,例如邮件,UPN,登录名等等,以便和Office365的登录账号保持一致.写了个简单脚本进行批量修改. #Import AD Module Import-Module ActiveDirectory #Import Office 365 Module $Sessions=Get-PSSession if ($Sessions.ComputerName -like "outlook.office365.com"){ write-host &quo

Powershell技巧 判断一个AD账户是否存在

AD账户弱密码扫描工具

工具授权:免费工具 软件大小:275KB 软件语言:简体中文 作者博客:http://319216.blog.51cto.com 更新时间:2017/02/22 应用平台:Microsoft ActiveDirectory/Windows Server 2008/Windows Server 2012 1.用户列表文件可以使用Get-ADUser命令来获得,只需要Get-ADUser中用户的Name属性,请导出为CSV文件 2.密码字典文件也是单行密码列,字典文件也需要使用CSV文件进行保存 3