Время прочтения: 3 мин.

Существует практика администрирования учетных записей (далее -УЗ) в домене, при которой администраторы в домене Active Directory (далее AD) могут заводить новые УЗ с общеизвестным транспортным паролем без блокировки УЗ, либо осуществлять сброс паролей существующих УЗ по заявкам пользователей на общеизвестный транспортный пароль. При таком подходе, для УЗ проставляется признак «Требовать смены пароля при следующем входе в систему» для того, чтобы пользователь при входе в домен заменил транспортный пароль на личный. Если по каким-то причинам пользователь не совершил вход в домен после установки указанного признака, то такая УЗ не блокируется.

Такая практика существенно повышает риски несанкционированного доступа к автоматизированным системам и информационным ресурсам организации, риск проведения несанкционированных операций в автоматизированных системах, риск утечки конфиденциальной информации.

   Для получения информации об активных УЗ, которые длительное время не входили в домен и имеют признак «Требовать смены пароля при следующем входе в систему» можно использовать модуль Active Directory Module для Windows PowerShell, при этом не обязательно иметь права администратора домена, достаточно быть авторизованным пользователем домена.

Пример скрипта в сессии PowerShell:

Get-ADUser  -Filter {(Enabled -eq 'True') -and (pwdLastSet -eq '0')} -Properties DisplayName,name,distinguishedName,lastLogonTimestamp, pwdLastSet,company,department,title,mail,PasswordNeverExpires,CannotChangePassword,whenCreated | select DisplayName,name, PasswordNeverExpires,CannotChangePassword, distinguishedName,company, epartment,title,mail  whenCreated, pwdLastSet, @{n="lastLogonTimestamp";e={[datetime]::FromFileTime($_.lastLogonTimestamp)}} | Export-csv c:\temp\user.csv -NoType -Encoding UTF8 -Delimiter ";"

Скрипт выберет все активные УЗ, имеющие признак «Требовать смены пароля при следующем входе в систему» с информацией о логине пользователя, подразделении и должности, дате смены пароля, дате последнего входа в домен, а также выгрузит этот список в CSV файл. Затем из полученного списка необходимо выделить УЗ, для которых в качестве транспортного установлен общеизвестный пароль. Сделать это можно вручную (проверить возможность входа в домен УЗ с транспортным паролем) либо автоматизировать эту процедуру. Например, можно использовать BAT-файл, который будет пытаться подключить сетевой ресурс (нужно предварительно найти такой сетевой ресурс в домене, у которого открыт доступ для всех пользователей — можно даже на чтение) от имени найденных учетных записей. Ниже приведен пример подключения с паролем «1q2w3e4r»:

echo IvanovII>> c:\tryConnection.txt & net use u: \\FIR /user:Domen\IvanovII 1q2w3e4r>> c:\tryConnection.txt 2>&1
echo PetrovPP>> c:\tryConnection.txt & net use u: \\FIR /user:Domen\PetrovPP 1q2w3e4r>> c:\tryConnection.txt 2>&1
echo SidorovSS>> c:\tryConnection.txt & net use u: \\FIR /user:Domen\SidorovSS 1q2w3e4r >> c:\tryConnection.txt 2>&1

В результате отработки BAT-файла будет создан файл tryConnection.txt (по сути, это лог подключения сетевого ресурса от имени каждой учетной записи), из которого нужно будет взять только строки с результатом «Перед первым входом в систему пользователь должен сменить свой пароль» — это и есть искомые УЗ с общеизвестным транспортным паролем. По результатам проведенного аудита необходимо провести мероприятия по устранению выявленных проблем безопасности при администрировании учетных записей в домене организации.