Пошук джерела блокування користувача в Active Ditectory

Необхідні вихідні умови.
Алгоритм пошуку джерела блокування

Цих дій буде достатньо для швидкого пошуку ПК зі шкідливим програмним забезпеченням, що підбирає паролі користувачів. Як правило, досить швидко обчислити джерело проблеми та ізолювати його для подальшого розслідування. Алгоритм пошуку процесу безпосередньо викликає блокування користувача залежить від ПЗ, встановленого на кінцевому ПК.

Використовувані командлети PowerShell

  • Get-ADDomainController – для визначення власника ролі PDC-емулятора
  • Get-WinEvent - "чарівний" командлет, завдяки якому і став можливим швидкий пошук

У чому "магія" Get-WinEvent? По-перше він шукає події з кінця і має параметр -MaxEvents, що дозволяє знайти тільки останню подію або кілька останніх подій. По-друге, він має чудовий параметр -FilterHashtable, який дозволяє дуже гнучко задати умови пошуку події.

Скрипт пошуку

Для себе я підготував невеликий скрипт PowerShell. На вході скрипт приймає або ім'я користувача, для якого необхідно знайти джерело блокування, або кількість (за замовчуванням - 1) останніх заблокованих користувачів.

Так, є Account Lockout and Management Tools з чудовою утилітою LockoutStatus.exe, але вона довго опитує всі контролери домену (а деякі з них можуть бути і недоступні). Запропонований скрипт не претендує на заміну LockoutStatus.exe (у них зовсім різний принцип роботи). Зазвичай я використовую їх разом.

Готовий скрипт можна завантажити з Google Drive: Find-Locker.ps1

Хардкорна конфа за С++. Ми запрошуємо лише профі.