NTLM-хеши
Атаки с использованием NTLM (Path-the-Hash) и netNTLM (SMB Relay)
Что такое NTLM
NTLM (NT LAN Manager) — это протокол аутентификации, разработанный Microsoft для проверки подлинности пользователей в Windows-средах. Он используется для подтверждения личности пользователей при доступе к сетевым ресурсам, таким как файловые серверы, принтеры или другие службы. NTLM считается менее безопасным по сравнению с Kerberos.
NTLM состоит из нескольких версий:
LM-хеш (LAN Manager): устаревший и небезопасный хеш, разработанный для совместимости с очень старыми системами. Использует алгоритм DES и имеет множество уязвимостей.
NTLM-хеш: более современный хеш, использующий алгоритм MD4. Хотя он безопаснее LM, он всё ещё уязвим к атакам.
NTLMv2: улучшенная версия, которая включает защиту от replay-атак и использует HMAC-MD5 для создания хешей. Это наиболее безопасная версия протокола
Где хранятся NTLM-хеши
NTLM-хеши хранятся в нескольких местах в зависимости от конфигурации системы:
SAM (Security Account Manager):
База данных на локальных машинах, где хранятся хеши паролей локальных пользователей.
SAM защищён с помощью системного ключа (Syskey), но может быть извлечён с помощью инструментов, таких как Mimikatz.
LSASS (Local Security Authority Subsystem Service):
Процесс, который хранит хеши в памяти.
Популярная цель для атак, так как злоумышленники могут извлекать хеши из памяти.
Active Directory:
В доменных средах хеши паролей хранятся в Active Directory в файле NTDS.dit.
Хеши могут быть извлечены с помощью атак, таких как DCSync.
Атаки c использованием NTLM-хешей
Обычные NTLM-хеши используются для атак Pass the Hash, так как они эквивалентны паролям.
Сетевые хеши (NetNTLM) не могут быть использованы для PtH, но они уязвимы к атакам, таким как NTLM Relay.
Обычные NTLM-хеши и Pass the Hash (PtH)
Под обычными NTLM-хешами я понимаю хеши паролей, которые хранятся в локальных или доменных системах.
Pass the Hash (PtH) — это атака, при которой злоумышленник использует захваченный локальный NTLM-хеш для аутентификации на удалённой системе без знания фактического пароля. Это возможно, потому что NTLM-аутентификация основана на хешах, а не на самих паролях.
Извлечение хеша:
Злоумышленник получает NTLM-хеш с помощью инструментов, таких как Mimikatz, или извлекает его из памяти (LSASS) или базы данных (SAM).
Использование хеша для аутентификации:
Злоумышленник использует хеш для аутентификации на другой системе, имитируя легитимного пользователя.
Например, с помощью инструментов, таких как Impacket, Crack Map Exec.
Получение доступа:
Если аутентификация успешна, злоумышленник получает доступ к системе с правами пользователя, чей хеш был использован.
NTLM-хеши являются эквивалентом паролей в системе. Они используются для проверки подлинности, и сервер не требует знания фактического пароля. Протокол NTLM не включает механизмы защиты от повторного использования хешей.
Сетевые хеши, Responder и Relay (почему тут не получится сделать PtH)
Что такое сетевые хеши (NetNTLM)?
Сетевые хеши (NetNTLM) — это хеши, которые используются в процессе аутентификации по протоколу NTLM в сетевых запросах. Они создаются на основе:
Хеша пароля пользователя.
Случайного значения (challenge), отправленного сервером.
NetNTLM-хеши не являются эквивалентом пароля и не могут быть напрямую использованы для аутентификации, как обычные NTLM-хеши.
Что такое Responder?
Responder — это инструмент, который используется для перехвата NetNTLM-хешей. Он работает, имитируя сетевые службы (например, SMB, HTTP, FTP) и заставляя клиентов отправлять свои NetNTLM-хеши в ответ на фишинговые запросы или в результате MiTM-атак.
Как работает Responder?
Подделка сетевых служб:
Responder запускается в сети и начинает отвечать на запросы, например, на запросы SMB или HTTP.
Фишинг NetNTLM-хешей:
Когда клиент пытается подключиться к поддельной службе, Responder отправляет challenge и получает NetNTLM-хеш в ответ.
Перехват хеша:
Злоумышленник получает NetNTLM-хеш, который может быть использован для дальнейших атак, таких как brute force или relay.
Что такое NTLM Relay?
NTLM Relay — это атака, при которой злоумышленник перехватывает NetNTLM-хеш и перенаправляет его на другой сервер для аутентификации. В отличие от PtH, здесь используется не обычный NTLM-хеш, а NetNTLM-хеш.
Почему нельзя сделать PtH с NetNTLM-хешами?
NetNTLM-хеши не являются эквивалентом пароля:
Они создаются на основе хеша пароля и случайного значения (challenge), отправленного сервером.
Без знания challenge невозможно восстановить исходный NTLM-хеш.
Одноразовость:
NetNTLM-хеши используются только для одного сеанса аутентификации и не могут быть повторно использованы для аутентификации на других системах.
Как работает NTLM Relay?
Перехват NetNTLM-хеша:
Злоумышленник перехватывает NetNTLM-хеш с помощью инструментов, таких как Responder.
Перенаправление хеша:
Злоумышленник перенаправляет хеш на другой сервер, который принимает NTLM-аутентификацию.
Аутентификация на целевом сервере:
Если аутентификация успешна, злоумышленник получает доступ к целевому серверу.
Классическим методом защиты от Relay-атак является включение подписи пакетов SMB (SMB Signing)
Обнаружение NTLM Relay
Обнаружение Relay-атак является нетривиальной задачей и подразумевает коррелирование событий из нескольких источников данных.
Один из способов - это сопоставление IP-адреса и имени узла в событии 4624 (успешная авторизация) на узле, куда происходит перенаправление аутентификации. Назовем его атакуемый узел. Узлом источником назовем тот узел, который попался на уловку Responder и направил NTLM-хеш атакующему узлу. Например, он имеет имя ws-1743 и IP 10.0.0.1 Атакующий узел тут - это тот, кто осуществил атаку MiTM, находится между источником и атакуемым. Имеет имя kali и IP 10.0.0.2
Так вот, в событии 4624 на атакуемом узле в поле IPAddress будет IP атакующего (10.0.0.2), а имя узла источника (ws-1743), то есть будет несоответсвие информации, откуда произошла авторизация.
Last updated