Иллюстрированный самоучитель по защите в Интернет

Использование доверительных отношений

Атака на секреты LSA

Эта атака может послужить одним из самых ярких примеров той опасности, к которой может привести хранение регистрационных данных в незашифрованном виде. Такая информация вместе с некоторыми другими важными данными хранится системой NT во многих местах. Процесс получения конфиденциальной информации носит название атаки на секреты подсистемы защиты LSA (Local Security Authority). Эту информация определяется параметром системного реестра HKEY_LOCAL_MACHINE\-SECURITY\Policy\Secrets. К секретам LSA относятся следующие данные.

  • Пароли учетных записей служб (хранятся в виде незашифрованного текста). Специальные учетные записи требуются приложениям, которым необходимо зарегистрироваться в контексте локального пользователя для выполнения определенных задач, например резервного копирования. Такие учетные записи обычно имеются во внешних доменах и при взломе какого-либо компьютера могут использоваться взломщиком для прямой регистрации во внешнем домене.
  • Кэшированные хэш-коды паролей последних десяти регистрировавшихся пользователей.
  • Пароли FTP и Web (также в виде незашифрованного текста).
  • Имена и пароли учетных записей служб RAS.
  • Пароли рабочих станций для доступа к домену.

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

Например, представим автономный сервер, на котором запущены службы SMS (Systems Management Server) или SQL, работающие в контексте пользователя домена. Если локальный администратор такого сервера использует пустой пароль, то с помощью данных LSA взломщик может получить сведения об учетной записи пользователя домена. Этот изъян может привести к утечке информации на уровне многорангового домена (multimaster domain). Если на сервере ресурсов домена запущена служба, работающая в контексте учетной записи пользователя главного домена, то утечка информации на уровне сервера ресурсов может обеспечить злоумышленнику доступ к главному домену.

Можно привести и более опасный пример, который довольно типичен для корпоративных пользователей портативных компьютеров. Допустим, сотрудник компании захватил с собой в поездку такой компьютер, чтобы с помощью службы удаленного доступа подключаться к корпоративной сети или к провайдеру Internet. Поскольку он не новичок в вопросах безопасности, он не устанавливает флажок, включающий режим сохранения паролей учетных записей удаленного доступа. Но, к сожалению, система NT все равно глубоко в недрах системного реестра сохраняет пользовательское имя, номер телефона и пароль.

Исходный код, позволяющий получить секреты LSA, в 1997 году был опубликован в бюллетене NTBugtraq (http://www.ntbugtraq.com) Полом Эштоном (Paul Ashton). Однако сгенерированный исполняемый код не получил широкого распространения. Обновленную версию этого кода, называемую Isadump2, можно найти по адресу http://razor.bindview.com/tools/desc/lsadump2_readme.html. Утилита Isadump2 использует тот же прием, что и утилита pwdump2. Это позволяет обойти средства защиты компании Microsoft (см. ниже), которые ранее не позволяли успешно применять предыдущую версию этого средства, Isadump. Утилита Isadump2 выполняет автоматический поиск идентификатора PID процесса LSASS, внедряет себя в его поток управления и извлекает секреты LSA, как показано в следующем примере.

D:\Toolbox> lsadump2 $MACHINE.ACC
6E 00 76 00 76 00 68 00 68 00 5A 00 30 00 41 00
n.v.v.h.h.Z.0.A.
66 00 68 00 50 00 6C 00 41 00 73 00 f.h.P.l.A.s.
_SC_MSSQLServer
32 00 6D 00 71 00 30 00 71 00 71 00 31 00 61 00
.p.a.s.s.w.о.г.d.
_SC_SQLServerAgent
32 00 6D 00 71 00 30 00 71 00 71 00 31 00 61 00
p.a.s.s.w.о.г.d.

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

В программе Internet Scanner 5.6 от компании Internet Security Systems (ISS) встроена возможность инвентаризации секретов LSA, которая входит как составная часть в технологию SmartScan. Если этот сканер сможет получить доступ к узлу NT на уровне администратора, он попытается инвентаризовать все возможные пароли, которые когда-либо использовались на данном узле. Все найденные пары "имя учетной записи/пароль" сохраняются в файле KnownUsers. В тех случаях, когда сканер обнаруживает (через нулевое соединение) в сети другой узел, на котором имеется учетная запись с таким же именем, он пытается подключиться к нему, указав только что найденный пароль. Не нужно обладать большим воображением, чтобы понять, насколько быстро можно собрать важнейшую информацию о всех или почти всех учетных записях большой сети.

Контрмеры: защита секретов LSA

К сожалению, компания Microsoft не сказала ничего оригинального, заявляя, что к подобной информации администратор имеет доступ в соответствии с принятой архитектурой. В статье базы знаний KB Q184017 описывается модуль обновления, предназначенный для исправления изъянов исходной версии подсистемы LSA. После его установки с помощью шифрования SYSKEY кодируются хранящиеся на компьютере пароли учетных записей служб, кэшируемые данные для регистрации в домене, а также пароли рабочей станции.

Изъян, заключающийся в открытом хранении кэшируемых данных RAS, был исправлен в сервисном пакете SP6a (изначально после появления сервисного пакета SP5 компанией Microsoft был выпущен модуль обновления). Более подробная информация приведена в статье KB Q230681.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.