Некоторые пользователи ПК возлагают надежду на пароли, которые записываются в BIOS. Они считают, что эти пароли могут защитить их компьютер и информацию на локальных дисках от несанкционированного доступа. Но в большинстве случаев одной такой защиты далеко недостаточно.
Некоторые производители BIOS по субъективным причинам оставляют для своих потребностей возможность входа в BIOS в обход пароля пользователя (при разработке и отладке BIOS производитель хочет иметь контроль над информацией, которая обрабатывается в его системе, и оставляет возможность для ее расшифровки без ключа пользователя). Рано или поздно это становится известно достаточно большому кругу лиц, и ценность такой защиты становится почти нулевой. Наиболее известные примеры: AWARD BIOS (к версии 4.51 PG) -набрав один из универсальных паролей "AWARDJSW" "AWARD_WG". "j262", "j256", "Syxz", "Wodj", "Ikwpeter" и т. д., вы можете беспрепятственно попасть в BIOS. Такой пароль хранится не в CMOS, а в BIOS по адресу FOOO: EC60h, либо по смещению 1ЕС60П от начала файла ORIGINAL.TMP (распакованной "прошивки" BIOS). После этого вы получаете доступ к BIOS (и системе), не используя основной пароль пользователя.
Существует два формата хранения пароля, старый и новый:
"Старый" формат
Пароль хранится в виде 16-битного хэш-кода по адресу FOOO: EC60h (признаком этого формата является наличие слова 1461h по адресу FOOO :EC62h). При использовании этого формата пароль не уникален - все перечисленные выше примеры паролей (на предыдущей странице) имеют одинаковый хэш-код lEAAh, то есть с точки зрения BIOS они эквивалентны.
"Новый" формат
Пароль хранится в зашифрованном виде в строке длиной 8 байт по адресу FOOO: EC60h (если пароль меньше 8 байт, неиспользуемые байты равны 0). Признаком нового формата является наличие байта 14h по адресу FOOO: EC68h. Для шифрования пароля в каждом его байте три старших бита переставляются местами с тремя младшими битами, а 3 и 4 биты остаются на своих местах. Пароль, хранимый в этом формате, уникален (но легко поддается дешифровке).
Однако многие производители материнских плат по какой-то непонятной причине используют новый формат, а данные пишут в старом - в результате инженерный пароль фактически отсутствует (его невозможно ввести с клавиатуры). Можно самостоятельно зашифровать какой-нибудь пароль (например, тот же "AWARDJSW"), вписать его в распакованную "прошивку" BIOS и перезаписать Hash-BIOS, но подобные эксперименты сопряжены с определенным риском. Тем не менее, в случае успеха этот метод поможет избежать неприятностей, связанных с собственной забывчивостью и одновременно защитит от любителей чужой информации.
Если этот вариант невозможен, то злоумышленник может пойти другим путем. Этим методом может воспользоваться взломщик, получивший доступ к машине под каким-либо благовидным предлогом. В отличие от предыдущего метода, в данном случае взлом не привлекает особого внимания и может быть проделан практически "на глазах" у владельца компьютера.
Пароли (и связанная с ними информация) хранятся в CMOS-памяти. Чтобы получить доступ к байту CMOS'a, его адрес (число в диапазоне от 0 Oh до 7Fh) записывается в порт 7 Oh, а значение считывается из порта 7 lh.
Методы преодоления защиты Windows NT
Утилиты подбора паролей, весьма распространенные для взлома UNIX-систем, существуют и для Windows NT. Более подробно мы рассмотрим способы преодоления защиты для Windows 2000 (которая является продолжением серии Windows NT), сейчас же ограничимся кратким анализом.
Любая серьезная операционная система (Windows NT, UNIX, VMS и т. д.) содержит базу бюджетов пользователей, в которой наряду с регистрационными именами и другой информацией хранятся зашифрованные пароли. Здесь применяются надежные алгоритмы шифрования: взломать их напрямую практически невозможно. Когда при входе в систему пользователь вводит пароль, ОС запускает подпрограмму шифрования, которая выдает зашифрованный пароль. Эту строку ОС сравнивает с оригиналом, хранящимся в базе пользовательских бюджетов. Если строки совпадают, то пользователь считается аутентифицированным.
Утилиты подбора паролей работают следующим образом. Они не пытаются напрямую декодировать пароли (это пустая затея), а используют слабости человеческой психологии. К сожалению, люди склонны задавать в качестве паролей хорошо знакомые слова, иногда перемежая их цифрами. Также весьма распространена практика задания паролей на основе набора символов, близко расположенных на клавиатуре (например, qwerty).
Любая утилита подбора паролей содержит файл (называемый словарем) с большим количеством слов и словосочетаний из орфографического словаря. Утилита последовательно выбирает из словаря строку за строкой, шифрует ее алгоритмами шифрования, применяемыми в ОС, и сравнивает полученные значения со значениями из пользовательской базы данных. Хорошие утилиты, не ограничиваясь этим, могут производить дополнительные проверки, например, добавляя к исходной строке цифры либо специальные символы или "играя" строчными и прописными буквами (для NT это неактуально, поскольку здесь все символы пароля переводятся в прописные). Благодаря современной технике, скорость работы таких утилит весьма высока и составляет до нескольких десятков тысяч переборов в минуту, но процедура все равно может затянуться надолго. Если же придумать сложный пароль, то у утилит нет шанса его подобрать.
Для взлома паролей имеется множество словарей, рассчитанных на самые разные языки, поэтому, выбирая в качестве пароля русское слово, не стоит рассчитывать на то, что его не подберут.
Очевидно, взломщику для применения подобных утилит необходим доступ к базе пользовательских бюджетов. В Windows NT такие утилиты может запускать администратор локальной машины для файловой системы NTFS и любой пользователь для файловой системы FAT. Соответственно, для взлома пароля злоумышленник должен под каким-либо предлогом завлечь системного администратора на компьютер, администратором локальной ОС которого он (злоумышленник) является или на котором ОС установлена на FAT.
Из программ подбора паролей в Windows NT можно выделить ScanNT (http:/www.ntsecurity.com/Products/ScariNT/index.html) и PasswordNT (http://www.ntsecurity.corn/Services/Recovery/index.html).
Получение паролей Windows NT при помощи PWL-файлов
Если вы получили доступ к клиентским компьютерам Windows 3.11/95/98 локальной сети, вы можете узнать пароль системного администратора или других бюджетов в домене Windows NT косвенным образом. Для этого необходимо собрать все доступные файлы *.PWL, которые находятся в системных каталогах Windows 3.11/95/98. Для расшифровки этих файлов можно использовать программу repwl.ехе (ее можно найти по адресу http: //web-don.corn/vitas/pwl-tool.htm). Это одна из лучших программ определения паролей из PWL-файлов, которая почти мгновенно может вычислить любой пароль.
Открыв при помощи кнопкиBrowse (Пролистать) PWL-файл, выберите в списке нужный набор символов и щелкните на кнопкеSearch Password (Поиск пароля). Найденные таким образом пароли помогут вам получить доступ к главному доменному серверу Windows NT.
Помните: наиболее сообразительные системные администраторы не останавливаются на применении специальных утилит, а вручную устанавливают более жесткие ограничения прав на объекты файловой системы. Рекомендации по установке таких ограничений приведены по адресу: http: //www. micro-soft.com/ntserver/security/exec/overview/Secure_NTInstail. asp. Соответственно, там же можно найти и противоядие от защиты. В частности, можно организовать брешь в защите, если повысить свой уровень полномочий и войти в группу администраторов, а уж потом... Осуществить это позволяет программа GetAdmin.exe (автор - Константин Соболев). И хотя в Service Pack 4 эта возможность устранена, рискнуть можно. Идея, заложенная в ней, проста и гениальна. Системные процессы в NT работают, как правило, под System Account, а значит, имеют на локальном рабочем месте администраторские права. Делайте выводы. Даже если в SP4 это залатали, не стоит отчаиваться - кто ищет, тот найдет.