Зачастую администраторы локальных сетей не задумываются о том, как легко можно повысить свои права в системе. Настроив однажды систему, они преспокойно сидят за своими компьютерами и уже ничто их больше не беспокоит. Многие из администраторов даже не удосуживаются скачать последние обновления и патчи для администрируемой ими системы. Ряд таких факторов как раз-таки и способствует злоумышленнику повысить свои права в атакуемой системе. Есть ряд системных администраторов, которые даже не догадываются, каким образом злоумышленники могут атаковать их систему и получить полный доступ к ней. Чтобы каким-то образом восполнить эту брешь, я и задумал написать эту статью. В статье будет рассказано о методах проникновения в операционную систему Windows NT, а также о средствах защиты от несанкционированного доступа к этой ОС.

Для начала я хочу рассказать, какими методами злоумышленники могут повысить свои привилегии в системе. Нередко они ставят себе цель получения полного доступа на атакуемой машине. Им нужно получить права записи на жесткий диск, права на установку различного программного обеспечения, чтобы можно было продолжать дальнейшие попытки заполучить административные привилегии. При установке системы Windows NT, как правило, несколько учетных записей, такие как администратор локальной машины, учетная запись гостевого доступа, сохраняются в базе данных SAM на локальной машине в каталоге \WinNT\System32\ Config. О базе данных SAM я уже писал в своих предыдущих статьях ("Роль базы данных SAM в безопасности Windows NT", №49(290) 2000 г.), поэтому останавливаться на том, как организован этот файл, я не буду. Скажу лишь, что во время работы системы доступ к этому файлу заблокирован даже для администратора, т.к. SAM файл постоянно открыт системой. Поэтому необходимо как-то получить доступ к файлу SAM и скопировать его. На помощь нам приходит старый добрый DOS, нет, не Denial Of Service, а Disk Operational System:).
Для того чтобы загрузиться в DOS, нам понадобится всего навсего системная дискета. Теперь, если по умолчанию в BIOS установлена загрузка сначала с дискеты, а потом уже с жесткого диска, то можем перезагружать компьютер, вставлять системную дискету в дисковод и немножко подождать, пока загрузится "черный" DOS.
После вам понадобится небольшая утилитка под названием NTFSDOS. Скачать ее можно по адресу: http://www.sysinternals.com. Теперь поясню, для чего она нужна. Когда вы загрузились в DOS, то, попробовав просмотреть системный диск, вы ничего не увидите, т.к. в Windows NT используется файловая система NFTS. Именно она защищает диски от нелегального доступа и позволяет разграничивать доступ к файлам, поэтому нам и нужна замечательная утилита NTFSDOS. Она поможет прочитать файлы на системном диске, использующем файловую систему NTFS.
Допустим, что вы уже скачали и распаковали на системную дискету программу NTFSDOS. Далее вам необходимо в командной строке ввести ntfsdos. Если у вас на экране после запуска программы будет написано что-то вроде "Mounting NTFS partition(0x80:3) as drive: H", то значит все прошло успешно. Теперь вы можете смело переходить на только что "смонтированный" диск. В данном случае это диск H. Т.е. вам необходимо будет ввести команду h:, после чего можете смело вводить команду dir и искать каталог, который носит название WINNT. Если вы его обнаружили, то вам следует выполнить еще несколько команд: cd winnt, cd system32, cd config. После этого приглашение системы должно выглядеть так: "H:\WINNT\SYSTEM32\CONFIG>. Далее можно глянуть содержимое этой папки. Именно в ней и расположен нужный нам файл под названием SAM. Теперь можете смело скопировать его на дискету, т.к. скопировать в другое место на диске с файловой системой NTFS вам не удастся, т.к. утилита NTFSDOS работает в режиме read-only, т.е. возможно лишь чтение файлов. Хочу отметить, что на сайте производителя уже появилась версия программы, которая предоставляет не только чтение, но и запись на диск файловой системы NTFS.
Существует также другой способ получить SAM файл. Для этого вам не понадобится перезагрузка компьютера, т.к. копируемый файл не будет заблокирован операционной системой. Нужный нам файл расположен в каталоге \WinNT\repair либо же на диске резервного восстановления. Всегда при использовании программы RDISK для резервного восстановления файл SAM запаковывается и сохраняется в файл "sam._". Однако есть один недостаток такого метода. Дело в том, что с момента создания диска аварийного восстановления пароли могли измениться, и, возможно, файл "sam._" содержит устаревшие данные.
Предположим, что с поставленной задачей по добыче файла SAM вы справились. "Что же делать дальше?" — спросите вы. Ведь невооруженным взглядом вам ничего не удастся лицезреть. Теперь нам понадобится утилита под названием L0phtCrack, подробное описание которой вы можете найти в моей статье "Администраторам посвящается" в КГ №12 (253) за 2000 г. Подойдет любая версия, но желательно не ниже 2.5. Новую версию этой программы можно скачать по адресу: http://www.securitysoftwaretech.com/LC3. Если же у вас русская версия Windows NT, то вам понадобится специально написанная для этих целей русская версия программы L0phtCrack. Называется она L0phtCrack+, а скачать ее можно на сайте разработчика по адресу http://lcp.chat.ru/.
Установив ее, вам необходимо загрузить скопированный файл SAM, выбрав "Файл>Импорт файла SAM" или "File>Import SAM File" в программах L0phtCrack+ и L0phtCrack 2.5 соответственно. Использовать L0phtCrack+ нужно в русифицированных системах Windows NT, иначе при импорте SAM файла вы не увидите русских символов, а именно: вам не удастся увидеть названия таких учетных записей, как "Администратор" и "Гость". Хотя у учетной записи "Гость" пароль по умолчанию отсутствует, во избежание путаницы желательно использовать для импорта SAM файла русифицированной Windows NT именно L0phtCrack+, а не L0phtCrack 2.5.
После импортирования у вас на экране появятся несколько учетных записей. Обычно это учетные записи "Администратор", "Гость" и учетная запись названия самой машины.
Вам необходимо будет сохранить полученные данные в файл и отредактировать его таким образом, чтобы в нем осталась только учетная запись "Администратор". Ее нам и предстоит вскрыть. Сразу скажу, что если администратор хоть как-то хотел защитить машину, то установил сложный пароль, состоящий как из букв и цифр, так и из различных символов. Поэтому на его взлом можно потратить очень большой промежуток времени. Но сначала можете попробовать использовать "атаку по словарю", а затем уже в случае ее безуспешности переходить к "атаке прямым перебором", т.е. к bruteforce-атаке.
Если пароль состоит из более 7 символов, программа L0phtCrack будет пытаться подобрать сперва последние символы пароля. А затем уже будут подбираться первые 7 символов. При проведении "атаки прямым перебором" вам необходимо определить, какой набор символов будет использоваться при прямом переборе. Рекомендуется использовать комбинацию букв и цифр, т.к. комбинация из всех возможных символов займет очень много времени. Далее вам остается только ждать и надеяться на то, что пароль удастся быстро сломать.
Допустим, что пароль вы уже расшифровали. Теперь вам нужно, используя этот пароль, войти в систему. Когда появится приглашение ввода пароля, вам нужно указать, что будет осуществляться вход локально, т.е. без аутентификации в домене. Для этого в самом низу диалога ввода пароля вам нужно выбрать не домен, а название вашей машины. Далее вы уже можете вводить имя пользователя и пароль, которые до этого расшифровали.
Таким вот образом злоумышленник может получить полный доступ к атакуемому компьютеру. Теперь у него есть доступ в любой каталог на этой машине, он может добавлять и удалять программы на захваченном компьютере. Если вам покажутся такие привилегии не слишком значительными, то вы ошибаетесь. Достаточно злоумышленнику запустить тот самый L0phtCrack в режиме "SMB Packet Capture", как он сразу сможет перехватывать по сети закодированные пароли тех, кто входит в данный момент в систему. Очень часто при работе в локальной сети компьютеры других пользователей будут обращаться к главному серверу и авторизироваться повторно. В этом случае закодированные пароли также можно будет перехватывать.
После этого злоумышленник сохранит все перехваченные хэши паролей и уже дома, в спокойной обстановке, сможет загрузить их в L0phtCrack и начать расшифровывать подобно тому, как это происходило с расшифровкой SAM файла. По статистике, большое количество пользователей выбирает легкие пароли, которые программа сможет вскрыть уже в первые минуты своей работы, используя словарь паролей. Так что улов злоумышленника будет огромным. И уже в следующий раз он сможет продолжить свои злодеяния под какой-нибудь другой учетной записью. И не дай бог, если ею окажется учетная запись администратора домена. В этом случае выше привилегий уже не существует. Посему это будет окончательной победой злоумышленника. С такими правами можно "творить" все, что душе угодно, и ничто уже не сможет его остановить. Поэтому нужно всячески препятствовать захвату прав администратора домена. Ниже я расскажу о том, как это сделать, а также помогу свести вероятность копирования SAM файла к нулю.
Я уже говорил, что сперва злоумышленнику необходимо загрузиться с системной дискеты. Для того чтобы помешать ему это сделать, вам нужно отключить загрузку с гибкого диска в BIOS, т.е. установить опцию загрузки только с жесткого диска. Но этого вам будет не достаточно, ведь злоумышленник может зайти в BIOS и включить опцию загрузки с дискеты самостоятельно. Поэтому нужно обязательно установить пароль на изменение опций в BIOS, тем самым преградив возможность злоумышленнику конфигурировать BIOS по своему усмотрению. Это означает, что без пароля он не сможет загрузиться с дискеты.
Однако здесь есть еще один "подводный камень". Дело в том, что в старых и даже в некоторых новых моделях BIOS существуют так называемые инженерные пароли, при помощи которых любой человек, не знающий пароля, установленного владельцем компьютера, сможет запросто обойти эту защиту. Одним из самых распространенных обходных паролей является "AWARD_SW" и "ami" для AWARD и AMI BIOS соответственно. В этом случае вам необходимо перепрошить свою старую версию BIOS новой. Сделав это, злоумышленник не сможет воспользоваться обходным паролем, а значит и не загрузится с дискеты, чтобы скопировать SAM файл.
Кроме этого, существует служебная программа под названием SYSKEY, которая входит в Service Pack, начиная с Service Pack 3 и заканчивая последней версией Service Pack. Если эта программа активизирована, то хэши паролей не могут быть извлечены из SAM файла, т.к. этот файл дополнительно шифруется. Программа SYSKEY может использоваться следующими способами:
-- сгенерированный ключ шифрования записывается на локальный жесткий диск в зашифрованном виде;
-- сгенерированный ключ шифрования записывается на дискету, которая должна быть вставлена во время загрузки операционной системы;
-- для получения ключа шифрования берется пароль, выбранный администратором и вводимый во время загрузки операционной системы.
Кроме этого, у вас на машине должна быть установлена только лишь Windows NT, иначе появляется возможность скопировать SAM файл, загрузившись в другую ОС. Причем файловой системой должна быть только NTFS, позволяющая разграничить доступ к файлам и папкам.
Также я рекомендую установить последнюю версию Service Pack и активизировать описанную выше служебную программу SYSKEY. Для того чтобы затруднить взлом паролей, вам следует отказаться от использования в сети компьютеров на базе ОС Windows 95/98, а также отключить аутентификацию LanManager. Если вам все же необходимо использовать Windows 95/98, то вы можете включить использование аутентификации только по запросу сервера. Это можно сделать, активизировав расширение механизма аутентификации NTLMv2. Для его активизации необходимо добавить в реестр следующие параметры:
LMCompatibilityLevel типа DWORD к ключу HKEY_LOCAL_ MACHINE\System\CurrentControlSet\control\LSA
Диапазон: 0–5, по умолчанию — 0.
0 — используется аутентификация LanMan и аутентификация Windows NT, никогда не используется аутентификация NTLMv2;
1 — используется аутентификация NTLMv2, если это необходимо;
2 — используется только аутентификация Windows NT;
3 — используется только аутентификация NTLMv2;
4 — контроллер домена отказывается от аутентификации LanMan;
5 — контроллер домена отказывается от аутентификации LanMan и от аутентификации Windows NT (допустима только аутентификация NTLMv2).
NtlmMinClientSec или NtlmMinServerSec типа DWORD к ключу HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\LSA\MSV1_0
Диапазон: объединенные по логическому ИЛИ любые из следующих значений:
0x00000010 — целостность сообщения;
0x00000020 — конфиденциальность сообщения;
0x00080000 — NTLMv2 защита сеанса;
0x20000000 — 128-битное шифрование.
Кроме этого, при выборе паролей Windows NT вам необходимо соблюдать следующие правила:
— ни в коем случае не выбирать в качестве пароля или части пароля любое слово, которое может быть в каком-либо словаре, или его модификацию;
— пароль должен быть длиной минимум 7 символов, но желательнее 14 (максимально возможная длина пароля);
— каждая из 7-символьных половин пароля должна содержать символы из возможно большего символьного набора. Нельзя ограничиваться только символами A-Z, а желательнее использовать в пароле и буквы, и цифры, и какие-либо другие символы (причем в каждой из 7-символьных половин пароля);
— соблюдать прочие правила администрирования Windows NT (переименовать пользователя "Administrator" или "Администратор", периодически менять все пароли, установить блокировку учетных записей после определенного числа неудачных попыток входа, установить протоколирование неудачных входов и т.д.), помня о том, что существуют и другие методы взлома операционной системы.
Думаю, что после прочтения данной статьи часть администраторов станет подходить к администрированию системы Windows NT более ответственно. Хочу также предупредить, что за использование этой информации в противоправных целях я никакой ответственности не несу.