понедельник, 2 февраля 2009 г.

Атака с использованием NTLM-инъекции



Недавно в ходе проведения проекта по тестированию на проникновение применил интересную технику NTLM-инъекции (NTLM-injection), которая может позволить потенциальному злоумышленнику полностью скомпрометировать корпоративную сеть.

Интересной особенностью функционирования протокола SMB является то, что для того чтобы подключаться к серверу, вовсе необязательно знать пароль, достаточно лишь обладать NT- или LM-хэшем учетной записи. Следовательно, обладая хэшем-пароля администратора домена, можно спокойно получить хэши паролей всех пользователей домена, после чего проникновение в любую другую систему компании становится лишь вопросом времени.

Давайте рассмотрим, как это может произойти:

Исходные условия:

  • Используется Active Directory (Windows 2003);
  • Злоумышленник (или консультант – что намного лучше :-) ) смог получить пароль локального администратора на пользовательских рабочих станциях.
  • У злоумышленника есть возможность определить имя учетной записи администратора домена (либо он знает фамилию, либо из имени учетной записи администратора понятно какого уровня привилегиями обладает учетная запись. Администраторы любят включать в имя “admin”, “adm” и т.п.)
Шаг первый. Поиск учетной записи администратора.

Программные средства: утилита LanSpy (http://lantricks.ru).

С помощью утилиты LanSpy сканируем все доступные рабочие станции, пока не найдем ту за которой работает администратор. Пусть его учетная запись будет называться PetyaAdmin.

















Шаг второй. Получение хэша пароля администратора.

Программные средства: утилита gsecdump (http://www.truesec.com)

С помощью утилиты gsecdump получаем хэши паролей учетных записей пользователей, “залогинившихся” на данную рабочую станцию.














Уже на этом этапе можно начать взламывать пароль администратора домена по его хэш-значению с помощью утилиты L0phtCrack или LCP, но злоумышленнику интереснее взломать пароли всех пользователей домена.

Шаг третий. Подключение к административному скрытому ресурсу IPC$.

Программные средства: утилита msvctl (http://www.truesec.com), команда net use;

Скопировав полученный хэш пароля, запускаем интепретатор командной строки уже от имени администратора домена с помощью специально для этого разработанной утилиты msvctl.













Открывается новое окно.













Устанавливаем соединение с контроллером домена.











Шаг четвертый. Получение хэшей паролей всех пользователей домена с их последующим взломом.

Программные средства: утилиты pwdump3 (http://www.openwall.com/passwords/microsoft-windows-nt-2000-xp-2003-vista) и LCP (http://www.lcpsoft.com).

С помощью утилиты pwdump3 загружаем хэши паролей всех пользователей, причем в данном случае нам не нужно вводить пароль администратора.














Полученные хэши загружаем для взлома в LCP.
















Взлом паролей всех пользователей теперь лишь вопрос времени.

Контрмеры

Какие же меры можно предпринять для того, чтобы затруднить злоумышленнику проведение подобной атаки и получения паролей всех пользователей?

На мой взгляд, компания должна рассмотреть возможность внедрения следующих мер:

  • Межсетевое экранирование сетевого сегмента, в котором размещаются рабочие станции администраторов;
  • Внедрение процедуры присвоения имен пользовательским учетным записям, запрещающей использование слов-индикаторов, наподобие Adm, Admin, Test и т.п.

Также задачу злоумышленнику значительно усложнит:

  • Внедрение программы по управлению уязвимостями (регулярная установка обновлений на серверы и рабочие станции пользователей, контроль за появлением новых уязвимостей);
  • Внедрение парольной политики, требующей от пользователей использование сложных паролей;
  • Конфигурация систем в соответствии с наиболее безопасными практиками (например, LM хэши паролей не должны храниться ни на контроллере домена, ни на рабочих станциях пользователей, так как их взломать можно намного быстрее по сравнению с NT-хэшами).

Ссылки

  1. http://www.coresecurity.com/content/modifying-windows-nt-logon-credential
  2. http://truesecurity.se/blogs/murray/archive/2007/03/16/why-an-exposed-lm-ntlm-hash-is-comparable-to-a-clear-text-password.aspx
Александр Дорофеев (с)