IT-Page  

 

Найти: на:

ОСНОВЫ БЕЗОПАСНОСТИ В WINDOWS 2000/XP/2003

(безопасное хранение паролей в Windows 2000/XP)

 

ВВЕДЕНИЕ

В настоящее время операционные системы WINDOWS 2000 и WINDOWS XP фирмы MICROSOFT, основанные на ядре WINDOWS NT, получили очень широкое распространение. Процент этих ОС среди всех Windows-систем очень велик и продолжает расти, поэтому проблема их безопасности является одним из важных аспектов современной компьютерной безопасности.

Мы рассмотрим основы безопасности Windows 2000/XP и дадим практические советы по созданию максимально защищённого компьютера под управлением этих ОС.

 

 

Хранение паролей в Windows 2000/XP

Несомненно, самым главным аспектом при анализе безопасности Windows 2000/XP является сохранность паролей учётных записей с правами Администратора, так как знание пароля позволяет получить полный доступ к этому компьютеру как локально, так и по сети, поэтому мы начнём статью с описания того, как Windows 2000/XP работает с паролями на вход в систему. Практически всё нижесказанное относится и к Windows 2003.

Информация об учётных записях пользователей хранится в ветке “HKEY_LOCAL_MACHINE\SAM” (SAMSecurity Account Manager) реестра. А так как в Windows 2000/XP все ветки реестра «физически» расположены на диске в каталоге %SystemRoot%\System32\Config в нескольких файлах, то и эта ветка – не исключение. Она располагается в файле SAM. Отметим, что этот файл по умолчанию недоступен для чтения никому, даже Администратору, но всё-таки, к нему можно получить доступ (каким образом – об этом будет сказано ниже). К файлу SAM (а также к остальным файлам без расширений в этой директории – system, software и др.) нет доступа по той причине, что Windows 2000/XP используют реестр «на лету» - т.е. при внесении в реестр изменений они становятся доступны сразу же и перезагрузка не требуется, но для этого системе надо иметь монопольный доступ к файлам реестра. Напомним, что в операционных системах реестр хранится в файлах system.dat и user.dat, которые загружаются однократно при загрузке системы и при изменениях в реестре требуется перезагрузка компьютера для того, чтобы изменения вступили в силу.

Windows 2000/XP хранит пароли пользователей не в «явном» виде, а в виде хэшей (hash), т.е. в виде контрольных сумм паролей. Рассмотрим же хранение паролей пользователей подробнее. Среди сложной структуры SAM-файла нам интересна структура, называемая V-6рок. Она имеет размер 32 байт и содержит в себе хэш пароля локального входа – NT Hash длиной 16 байт, а также хэш, используемый при аутентификации доступа к общим ресурсам других компьютеров – LM Hash, длиной также 16 байт. Алгоритмы формирования этих хэшей следующие:

 

ФОРМИРОВАНИЕ NT HASH

1.       Пароль пользователя преобразуется в Unicode-строку.

2.       Генерируется хэш на основе данной строки с использованием алгоритма MD4.

3.       Полученный хэш шифруется алгоритмом DES, причём в качестве ключа используется RID (т.е. идентификатор пользователя). Это необходимо для того, чтобы два пользователя с одинаковыми паролями имели разные хэши. Напомним, что все пользователи имеют разные RID-ы (RID встроенной учётной записи Администратора равен 500, встроенной учётной записи Гостя равен 501, а все остальные пользователи последовательно получают RID-ы, равные 1000, 1001, 1002 и т.д.).

 

ФОРМИРОВАНИЕ LM HASH

1.       Пароль пользователя преобразуется в верхний регистр и дополняется нулями до длины 14 байт.

2.       Полученная строка делится на две половинки по 7 байт и каждая из них по отдельности шифруется алгоритмом DES, на выходе которого получаем 8-байтный хэш – в сумме же имеем один хэш длиной 16 байт.

3.       Далее LM HASH дополнительно шифруется так же, как и в шаге 3 формирования NT HASH.

 

 

Для повышения безопасности хранения паролей, начиная с 3-его Service Packa в Windows NT (и во всех последующих NT-системах, вплоть до Windows 2003), полученные хэши дополнительно шифруются ещё одним алгоритмом с помощью утилиты syskey. Т.е. к вышеописанным алгоритмам добавляется ещё 4-ый шаг – получение с помощью syskey нового хэша от хэша, полученного на шаге 3.

 

Рассмотрим методы доступа к SAM-файлу и извлечения из него хэшей.

 

 

 

МЕТОДЫ ДОСТУПА К SAM-ФАЙЛУ И ИЗВЛЕЧЕНИЯ ИЗ НЕГО ХЭШЕЙ

 

Как уже было сказано, ни прочитать этот файл, ни отредактировать нет никакой возможности – при попытке чтения этого файла Windows сообщает о нарушении совместного доступа, т.к. для системы этот файл всегда открыт и запись в него производит только сама Windows.

Однако, получить как данные из файла, так и доступ к нему, всё-таки можно.

Информацию из него можно извлечь даже в работающей системе, но только из-под учётной записи Администратора. Здесь есть два метода получения данных – метод программы PWDUMP (который используется в программах PWDUMP, LC4, LC+4 и др.) и метод с использованием планировщика задач (используется в программе SAMInside).

Метод PWDUMP вкратце работает так – программа подключается к системному процессу LSASS и с его правами (и его же методами) извлекает хэши из ветки SAM-реестра, т.е. фактически из SAM-файла. Метод же планировщика работает так – по-умолчанию в Windows 2000/XP системная утилита Scheduler имеет права пользователя SYSTEM, т.е. полный доступ к системе. Поэтому, если назначить планировщику задание сохранить определённую ветку реестра в файл, к примеру, то он в назначенное время сохранит её на диск. После чего из этого файла извлекаются хэши всех пользователей данного компьютера.

А что делать, если пароля Администратора нет и, соответственно, его прав тоже? Тогда злоумышленнику остаётся делать следующее – если на компьютере установлено несколько Операционных систем, то загружаясь в любую из них (даже в Linux) можно получить доступ к системному диску Windows 2000/ХР и скопировать SAM-файл в другой каталог, чтобы потом, «в спокойной обстановке» загрузить его в нужную программу для восстановления из него паролей.

Более того, существуют программы, способные изменять информацию прямо в SAM-файле, меняя и добавляя пользователей, а также их пароли (например, программа Offline NT Password & Registry Editor). Правда, для этого также необходимо загружаться в другую ОС и иметь полный доступ к системному диску Windows 2000/XP.

Даже если системный диск Windows имеет файловую систему NTFS, то всё равно можно получить к нему доступ, используя загрузочную дискету, созданную в программе NTFSDos Pro. Затем, после загрузки с неё, примонтировать нужный NTFS-раздел и скопировать с него нужные файлы.

 
Сайт создан в системе uCoz