Как защититься от mimikatz в домене Windows

Как защититься от mimikatz в домене Windows

Данная публикация будет посвящена основным методам предотвращения атак на системы Windows в домене Active Directories с помощью Mimikatz–like инструментов.
С помощью утилиты Mimikatz можно извлечь пароли и хэши авторизованных пользователей, хранящиеся в памяти системного процесса LSSAS.EXE (Служба локальной подсистемы безопасности). Рассмотрим как защититься от mimikatz в домене Windows.

Предотвращение возможности получения debug

По умолчанию право доступа к режиму Debugg предоставляется локальной группе администраторов (BUILTIN \ Administrators). Однако в 99% случаев эта привилегия администратора не используется, поэтому из соображений безопасности лучше отключить возможность использования привилегии SeDebugPrivilege.  Это делается через групповую политику (локальную или доменную). Перейдите в Конфигурация компьютера -> Параметры Windows -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя и включите политику программы отладки. Вы должны включить ее в состав доменной группы пользователей, которым необходимы права отладки (как правило это разработчики) и сделать ее пустой, чтобы больше ни у кого из пользователей не было прав на отладку.    

Политика Debug Program - отключения режима debug в Windows

Теперь, если попробовать получить debug через mimikatz появится ошибка:

Как защититься от mimikatz в домене Windows

Примечание. Впрочем, ограничения накладываемые этой политикой можно легко обойти — ссылка.

Отключение WDigest

Протокол WDigest появился в Windows XP и использовался для выполнения дайджест-аутентификации HTTP, функции, которая заключалась в использовании пароля пользователя в виде открытого текста. Windows 8.1 и Server 2012 R2 добавляют возможность полностью предотвратить хранение паролей в открытом виде в LSASS. Чтобы запретить сохранение WDigest в памяти, в этих операционных системах уже есть параметр DWORD32 с именем UseLogonCredential и значение 0 в разделе реестра HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ WDigest.

Если же нужно полностью отключить метод аутентификации WDigest, в этой же ветке (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest) установите значение  ключа Negotiate в 0.

Для поддержки этой возможности в Windows 7, 8 и Windows Server 2008 R2 / 2012 необходимо установить специальное обновление — KB2871997, а потом выставить эти же ключи реестра. В доменной среде параметры реестра проще всего распространить с помощью групповой политики.

UseLogonCredential - отключение WDigest в Windows

При отказе от хранения WDigest в памяти, в первую очередь стоит протестировать корректность авторизации пользователей и приложений на IIS серверах.

Защита LSA от подключения сторонних модулей

В Windows 8.1 и Windows Server 2012 R2 появилась возможность включить защиту LSA, которая защищает память LSA и предотвращает подключение к ней незащищенных процессов. Чтобы включить эту защиту, вам необходимо создать параметр RunAsPPL со значением 1 в разделе реестра HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ LSA.

После применения этого параметра атакующий не сможет получить доступ к памяти LSA, а mimikatz на команду securlsa::logonpassword,  выдаст ошибку

ERROR kuhl_m_securlsa_acquireLSA : Handle on memory (0x00000005).

mimikatz - securlsa::logonpassword ошибка ERROR kuhl_m_securlsa_acquireLSA : Handle on memory (0x00000005).

Отключение LM и NTLM

Устаревший протокол аутентификации LM и соответствующее хранилище хэшей LM должны быть деактивированы с помощью групповой политики сетевой безопасности: Не сохранять значение хэша LAN Manager при следующей смене пароля (на уровне Default Domain Policy).

Далее нужно отказаться от использования как минимум протокола NTLMv1 (политика в разделе Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options  —  Network Security: Restrict NTLM: NTLM authentication in this domain), а как максимум и NTLMv2

И если отказ от NTLMv1 обычно безболезнен, то для отказа от NTLMv2 придется потрудиться. Большие инфраструктуры, как правило, заканчиваются сценарием максимального ограничения использования NTLMv2. По возможности следует использовать аутентификацию Kerberos (как правило, вам придется потратить дополнительное время на настройку аутентификации Kerberos в IIS и SQL), а в остальных системах — NTLMv2.

Запрет использования обратимого шифрования

Следует явно запретить хранить пароли пользователей в AD в текстовом виде. Для этого следует включить доменную политику Store password using reversible encryption for all users in the domain в разделе Computer Configuration -> Windows Settings ->Security Settings -> Account Policies -> Password Policy, выставив ее значание на Disabled.

Store password using reversible encryption for all users in the domain - запрет хранения пароля с обратимым шифрованием

Использование группы Protected Users

Функциональный уровень домена Windows Server 2012 R 2 позволяет использовать специальную защищенную группу Protect Users для защиты привилегированных пользователей. Кроме того, эти учетные записи защищены от хакеров, поскольку члены этой группы могут аутенфицировать себя через Kerberos (без NTLM, WDigest и CredSSP) и т.д. (подробнее по ссылке выше). В эту группу можно включить пользователей, которые имеют учетную запись администратора домена, сервера и т.д. Эта функция работает на серверах и работает на Windows Server 2012 R2 (для Windows Server 2008 R2 необходимо установить дополнительное обновление KB2871997, упомянутое выше).

Запрет использования сохранённых паролей

Вы можете запретить пользователям домена сохранять свои пароли к сетевым ресурсам в CreedManager.

Для этого включите политику Network access: Do not allow storage of passwords and credentials for network authentication  в разделе Computer Configuration -> Windows Settings ->Security Settings ->Local Policies ->Security Options.

Как защититься от mimikatz в домене Windows

<Примечание. Обратите внимание, что тем сам будет запрещено также использование сохранённых паролей в заданиях планировщика.

Запрет кэширования учетных данных

Одна из функций mimikats – получение хеша паролей пользователей системы из ветки реестра HKEY_LOCAL_MACHINE\SECURITY\Cache, в которой хранятся хеш паролей последних 10 (по умолчанию), вошедших в систему. Эти хэши используются для авторизации пользователей в системе, если контроллер домена недоступен.

Рекомендуется отключить сохранение кэшированных учетных записей пользователей, включив политику Interactive Logon: Number of previous logons to cache (in case domain controller is not available) в разделе Computer Configuration -> Windows Settings -> Local Policy -> Security Options, изменив значение ее параметра на 0.

Как защититься от mimikatz в домене Windows

Кроме того, чтобы ускорить очистку памяти процесса lsass от учётных записей пользователей, завершивших сеанс, нужно в в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa нужно создать ключ типа DWORD с именем TokenLeakDetectDelaySecs и значением 30. Т.е. память будет очищаться через 30 секунд после логофа пользователя. В Windows 7, 8/ Server 2008R2, 2012 чтобы этот ключ заработал, нужно установить уже упоминавшееся ранее обновление KB2871997.

Credential Guard

Новый компонент Credential Guard, который был добавлен в Windows 10 Enterprise, Windows Server 2016, позволяет изолировать и защитить системный процес LSASS от несанкционированного проникновения. Подробности тут

Заключение

Эти меры значительно снизят возможности mimikatz и подобных утилит по получению пароля и хэша администратора из процесса LSASS и системного реестра. Принимая решение о внедрении этих политик и методик, они должны вводиться поэтапно со строгим тестированием на совместимость.
Уже в ближайшем будущем мы проведем анализ лучших практик повышения безопасности сети Windows путем ограничения использования учётных записей администраторов, что на технологическом и организационном уровне улучшит защиту домена Windows от таких атак. 

 

 

Click to rate this post!
[Total: 1 Average: 5]

Leave a reply:

Your email address will not be published.