NTLMv2: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Подредактирован раздел Уязвимости
Внесены мелкие изменения
Строка 1:
'''NTLMv2''' (NTLM версии 2) представляет собой самый современный протокол аутентификации. Предназначен повысить безопасность LM и NTLM. Хотя был введен в [[Windows NT 4.0]] SP4, сегодня используется как самый надежный, всеми современными версиями Microsoft Windows вплоть до [[Windows 10]].
'''NTLMv2''' (NTLM версии 2) был введен в [[Windows NT 4.0]] SP4 (поддерживаются Windows 2000) представляет собой протокол аутентификации запрос-ответ. Предназначен повысить безопасность LM и NTLM.
 
== Схема аутентификации ==
Схема аутентификации, реализованная при помощи [[Server Message Block|SMB]] или [[Server Message Block|SMB2]] сообщений, в независимости от того какой вид диалекта аутентификации будет использован (LM, LMv2, NTLM, NTLM2, NTLMv2), процесс аутентификации происходит следующим образом:
# Клиент, пытается установить соединение с сервером и посылает запрос, в котором информирует сервер, на каких диалектах он способен произвести аутентификации, например: LM, LMv2NTLM, NTLMNTLM2, NTLMv2. Следовательно, диалектыдиалект  аутентификации NTLM2, NTLMv2LMv2 между клиентом и сервером исключаются.
# Сервер, из полученного от клиента списка диалектов, выбирает наиболее защищенный диалект (например NTLMNTLMv2), затем отправляет ответ клиенту.
# Клиент, определившись с диалектом аутентификации, пытается получить доступ к серверу и посылает запрос '''NEGOTIATE_MESSAGE'''.
# Сервер, получает запрос от клиента и посылает ему ответ '''CHALLENGE_MESSAGE''', в котором, содержится случайная (random) последовательности из 8 байт, она называется ''Server Challenge''.
Строка 61:
# Формируется последовательность Clinet Challenge из 8 байт, выбранных случайным образом (random), например: <code>0xffffff0011223344</code>.
# Формируется blob, например: <code>0x01010000</code> - the blob signature, <code>0x00000000</code> - reserved value, <code>0x0090d336b734c301</code> - timestamp, <code>0xffffff0011223344</code> - a random Client challange, <code>0x00000000</code> - unknown, <code>0x02000c0044004f004d00410049004e0001000c005300450052005600450052000400140064006f006d00610069006e002e0063006f006d00030022007300650072007600650072002e0064006f006d00610069006e002e0063006f006d0000000000</code> - target information block, <code>0x00000000</code> - unknown
# Server Challenge и blob объединяются в последовательность из которой при помощи алгоритма HMAC-MD5 и ранее вычисленного '''NTLMv2-hash''' вычисляется hash-значение, состоящие из 16 байт. Например, если Server Challenge был <code>0x0123456789abcdef</code>, тогда получается следующая последовательность: <code>0x0123456789abcdef01010000000000000090d336b734c301ffffff00112233440000000002000c0044004f004d00410049004e0001000c005300450052005600450052000400140064006f006d00610069006e002e0063006f006d00030022007300650072007600650072002e0064006f006d00610069006e002e0063006f006d0000000000000000000x0123456789abcdef01010000000000000090d336b734c301ffffff00112233440000000002000c0044004f004d00410049004e0001000c005300450052005600450052000400140064006f006d00610069006e002e0063006f006d00030022007300650072007600650072002e0064006f006d00610069006e002e0063006f006d00000000000000000</code>, а после использования алгоритма HMAC-MD5 получаем следующее hash-значение: <code>0xcbabbca713eb795d04c97abc01ee4983</code>
# Нash-значения из 16 байт обедняется с blob в последовательность. Эта последовательность и есть '''NTLMv2 Response''': <code>0xcbabbca713eb795d04c97abc01ee498301010000000000000090d336b734c301ffffff00112233440000000002000c0044004f004d00410049004e0001000c005300450052005600450052000400140064006f006d00610069006e002e0063006f006d00030022007300650072007600650072002e0064006f006d00610069006e002e0063006f006d000000000000000000</code>
 
Строка 67:
 
=== Прослушивание сетевого трафика ===
Прослушивая сетевой трафик, можно перехватить [[Server Message Block|SMB]] пакеты аутентификации, тем самым завладев последовательностью ''Server Challenge'' и ответом ''Response'' от клиента. Имея эти два параметра, не смотря на способ аутентификации (даже при NTLMv2), возможно, при помощи современного программного обеспечения (при условии не сложного пароля, допустим несколько цифр: "12345") в течении нескольких часов подобрать пароль клиента. Но если способ аутентификации NTLMv2 и пароль клиента содержит прописные, заглавные буквы, цифры, а также специальные символы, то на взлом такого пароля могут уйти многие годы.
 
=== Подмена сервера ===
# Вывести из строя сервер, к которому клиент желает получить доступ. Для этого можно воспользоваться как самой примитивной [[DoS-атака|DDoS]]-атакой.
# Назначить компьютеру, с которого будет произведена атака, все параметры сервера, то есть имя сервера, IP-адрес сервера и MAC-адрес сервера.Это необходимо для того, чтобы клиент, обращаясь к серверу, произвел попытку подключения к компьютеру, с которого будет произведена атака.
# На запрос клиента, о выборе диалекта аутентификации,  компьютер, с которого будет произведена атака, должен будет выбрать самый небезопасный диалект, а именно LM (или более защищенный NTLM).В результате чего, компьютер, с которого проводилась атака, получит LM Response (ответ). Имея последовательность ''Server Challenge'' и ''LM Response'' время взлома пароля прямым перебором ([[Bruteforce]] атака) займет всего несколько часов,
Строка 85:
* Пароли для для всех важных аккаунтов должны быть разные.
 
=== Настройка политики безопасности (Windows) ===
Запустите «Панель управления» и откройте раздел «Администрирование -> Локальная политика безопасности -> Локальные политики -> Параметры безопасности» (Administrative Tools -> Local Security Policy -> Local Policies -> Security Options) в этом разделе найдем политику «Сетевая безопасность: уровень проверки подлинности LAN Manager». Из раскрывающегося списка необходимо выбрать параметр «Отправлять только NTLMv2-ответ. Отказывать LM и NTLM»
NTLM»
 
[[Файл:Параметры безопасности.jpg|394x394px|thumb|center|Окно параметров безопасности Windows]]
Строка 97 ⟶ 96 :
 
== См. также ==
* [[Server Message Block|SMB]]
* [[LM-хеш]]
* [[NTLM]]
 
== Примечания ==
http://davenport.sourceforge.net/ntlm.html
 
http://www.innovation.ch/personal/ronald/ntlm.html
[[Категория:Аутентификация]]
[[Категория:Криптографические хеш-функции]]