Пароли для ос... То, что операционная система
Windows 9x хранит зашифрованные пароли в файлах вида
имя_пользователя.pwl в одном из своих каталогов, давным-давно не
секрет. Расширение PWL как раз и означает PassWord List. Само собой,
пароли в этом файле шифруются, но “на всякого мудреца довольно
простоты”… Алгоритм шифрования в Windows 95 был очень слаб, да к
тому же в Win API существовала недокументированная функция
WNetEnumCachedPasswords, возвращающая ВСЕ пароли! В Windows 95 OSR 2
способ шифрования поменяли, “недокументированную” функцию убрали, но
в качестве алгоритма шифрования был выбран RC4. В отличие от DES и
RSA, он работает очень быстро, но все пароли хранятся в верхнем
регистре, то есть PassWoRd=PASSWORD. Поэтому пароль можно быстро
найти… простым перебором! Для этого достаточно переписать с
машины-жертвы файл с паролями и запустить программу типа RePwl. Если
длина пароля мала, то на современной машине на его подбор уходит
несколько часов (если не минут). Для длинных ключей, однако, на
перебор потребуются месяцы и годы, что заставляет повторить набившую
оскомину фразу: Люди! Будьте бдительны! Используйте длинные пароли с
неалфавитными символами! Windows NT — гораздо более защищенная
операционная система. В ней и регистр паролей важен, да и виснет она
редко… Но кто сказал, что в ней нельзя узнать пароли? Можно! И
похоже, что не сложнее, чем в Windows 95. Для начала пароли надо
найти. Раз они используются, значит, должны где-то храниться, но
где? Оказывается, в некоем файле по имени SAM (Security Account
Manager), находящемся в каталоге %systemroot%\system32\config.
Точнее, в файле хранятся не сами пароли, а их хэши (hash), то есть
пароли в зашифрованном виде. Как уже говорилось, регистр пароля в NT
важен, а его максимальная длина составляет 14 символов. Хэши паролей
хранятся дважды в двух разных форматах: NT Hash и LanMan Hash.
Каждая из семисимвольных половин пароля шифруется независимо от
другой в LanMan Hash по алгоритму DES; NT Hash получается в
результате шифрования всего пароля по алгоритму MD4. LanMan Hash
содержит информацию о пароле без учета регистра (прописными
буквами), а NT Hash — с учетом регистра. Поэтому взломщику проще
работать с LanMan Hash, а потом уже перебором получать пароль с
учетом регистра. Таким образом, если пароль состоит из четырнадцати
символов, то придется узнавать два пароля по семь символов каждый, а
не один четырнадцатисимвольный, что гораздо проще. Однако для того,
чтобы расшифровать хэши паролей, их нужно сначала заполучить. Дело
осложняется тем, что к SAM-файлу доступ получить нельзя, если
загружена операционная система. Но SAM-файл можно списать, загрузив
другую операционку, к примеру DOS или Windows 9х. Скажете, что в
качестве файловой системы в WinNT обычно используется NTFS?
Правильно, но ведь есть прекрасно работающие драйверы NTFS for
Windows 98 и NTFS for DOS. Кроме того, SAM-файл (именуемый “sam”,
без расширения) можно найти на диске аварийного восстановления
системы или резервном носителе. Еще один способ получения парольных
хэшей — из реестра (ветки HKLM\SAM\SAM и HKLM\SECURITY), но для
этого необходимо иметь административные права. По умолчанию у
администратора нет доступа к “секретным” данным, однако права можно
изменить с помощью regedt32.exe и просмотреть всю информацию, хотя
делать этого не советую, ели нет желания переустанавливать систему,
— по любопытству и сам пострадал. Понятно, что получить хэши
непросто: надо иметь административный доступ или “физический
контакт” с компьютером. И даже это иногда не работает, если
активизирована программа SYSKEY, входящая в состав ServicePack. Но!
Опять есть обходная тропка. Можно перехватывать аутентификационные
пакеты по сети, когда машина-клиент обращается к другой машине, с
помощью, скажем, программы L0phtCrack. Будучи запущенной, за день
она собирает достаточно хэшей паролей. Правда, говорят, что в
Microsoft научились бороться и с этим… Ну а уж когда хэши будут на
руках, с ними можно поступить так же, как и с паролями Windows 9x. С
помощью L0phtCrack+ (обратите внимание на плюс) можно получить хэши
паролей из реестра или импортированного файла SAM. В качестве
примера: как-то я запустил эту программу на одном из предприятий.
Более 40% паролей были получены через минуты (!) работы, а за
несколько часов удалось узнать уже 84% всех паролей, включая
администраторский. Что удивительно, у пользователей очень популярен
пароль “123”: Паролей.net Сетевые пароли можно узнать двумя путями:
или перебором, или перехватом. В первом случае вновь пригодится
RePwl, позволяющая еще и подбирать пароли к ресурсам сети. Вначале
она сканирует содержимое сетевого окружения, отыскивая сетевые
ресурсы, затем фильтрует их и оставляет только запароленные, а далее
все как обычно: полный перебор по алфавиту или использование
словаря. Мой личный опыт показал, что определению пароля очень
помогает человеческий фактор: людям обычно лень запоминать длинный
пароль, кроме того, им кажется, что они поступят очень хитрО, введя
комбинацию из нескольких цифр — злоумышленник ведь не знает, что в
пароле одни цифры, а все варианты, мол, просто не сможет перебрать…
Чтобы опровергнуть это заблуждение, отмечу, что при использовании
166-мегагерцового процессора и сети на 10 Мбит/с пароль из
трех-четырех цифр подбирается за несколько минут. Как оказалось,
подобные пароли составляют 90% выявленных: Кроме RePwl, есть
программа NetPasswords Cracker моего написания. Она работает быстрее
RePwl и может производить атаку по русскому словарю. Кстати, недавно
услышал, что нашли большой глюк в безопасности сети под Windows 95
при распределении на уровне ресурсов. Вроде пароль можно узнать
перебором не по всему слову, а по каждой букве, но пока сам не
увижу, ничего утверждать не буду. Метод перехвата пароля основан на
том, что пользователь, обращаясь к серверу (для прочтения почты,
подключения к личной папке и т. д.), должен передать ему свой
пароль, который, естественно, идет по самому обычному кабелю в виде
самых обычных электрических импульсов. По идее, третья сторона
должна быть не в состоянии узнать содержимое пакетов, которыми
пользователь обменивается с сервером. Но это только по идее… На
самом же деле из-за особенностей архитектуры локальной сети пакеты
поступают на все сетевые карты, а затем каждая из них определяет, не
к ней ли, случаем, пришел запрос? Если к ней, она принимает данные.
Подобная реализация сети позволяет при некотором навыке свободно
читать чужие пакеты, например, с помощью утилиты Network Spy. Что
можно обнаружить в пойманном пакете? Да все, что душа пожелает!
Теоретически многие сетевые пароли передаются в открытом виде, и,
заинтересовавшись этой проблемой, я решил проверить сей факт на
практике. Поменяв пароль в домене на 123 и используя при этом Alex в
качестве имени пользователя, я сел за другой компьютер в сети и
запустил на нем “шпиона”, а затем с первого компьютера обратился к
почтовому серверу. Network Spy тут же стал показывать пакеты,
помеченные как “POP3”, то бишь отловил операцию проверки почты.
Практически сразу я поймал имя пользователя: и… пароль: На рисунках
показано содержимое сетевых пакетов: в начале идет служебная
информация — длина пакета, IP-адреса (откуда пришел и куда
направляется), контрольная сумма и т. д. А после этого
располагаются… искомые имя пользователя и пароль. Думаю, не стоит
объяснять, что дает знание почтового пароля злоумышленнику, стоит
лишь отметить, что на многих предприятиях пароль на почтовый ящик
обычно совпадает с паролем для входа в домен. Затем я попытался
забрать почту по протоколу IMAP. Тут идентификатор (login) и пароль
вообще обнаружились в одном сетевом пакете: При заходе на FTP-сайт
пароль оказалось выявить не сложнее: Вас еще не хватил удар? Я,
например, испытал легкий шок, увидев это в первый раз. В качестве
небольшого утешения могу отметить, что почтовые пароли относительно
безопасно передавать с помощью Secure Password Authentification. В
Outlook Express это делается так: После выбора этой опции пароли уже
не передаются в открытом виде. К сожалению, у популярного в России
The Bat! есть проблема с реализацией защищенной аутентификации.
Кроме рассмотренных популярных протоколов, по которым могут идти
конфиденциальные данные, в принципе можно перехватывать что угодно:
файлы, которые вы передаете по сети, сообщения на коммуникационную
программу, аутентификационные пакеты к серверу (вспомните
L0phtCrack), данные с Proxy-сервера и многое другое. Pass Word,
Excel, ets… Согласитесь, неприятно, когда кто-то садится на ваш
компьютер и начинает лазить по каталогам. Если вы где-то рядом, то
наверняка сумеете вежливо и научно объяснить, что поступать так
некультурно. Если же вы отсутствуете, то ничего из этого не
получится. Приходится шифровать особо важные файлы. В наше время это
– информация, то есть письма, тексты договоров, исходники программ.
Большинство из перечисленного хранят в документах Microsoft Word. С
помощью этой программы относительно удобно закрыть документ от чужих
глаз по паролю. После этого можно облегченно вздохнуть и встать
из-за компьютера со спокойной совестью – врагам ничего не
достанется. Однако рано успокаиваться – хакеры не спят! Небольшая
история на эту тему. Где-то с год назад дома я работал на ноутбуке,
написал небольшой рассказик и поставил на пароль, потому что файл
должен был попасть во вторые руки через третьи. Пароль я перед этим
заблаговременно сообщил, но человек или забыл его или просто
пропустил сообщение. Так или иначе, рассказ дошел до адресата. Он
(она, точнее ;)) воспользовался программой MSOFPASS Дмитрия Сумина.
Но на ноутбуке был Word 6, программа не находила пароли к файлам
Word 97. Если посмотреть на формат хранения паролей в старых файлах
формата .doc и .xls, то для определения пароля необходимо знать
только 16 байт, после чего перебрать небольшое количество вариантов.
В новых версиях алгоритм шифрования значительно улучшили, но ...
остался MS Access 97. В нем шифруются не данные, а пароль при помощи
операции XOR с фиксированной константой (!). Не так давно я поставил
другую программу: Advanced Office 97 Password Recovery разработки
небезызвестной фирмы Elcom Ltd. Так вот, эта программа прекрасно
справляется с документами Word 2000. Файл, запороленный словом из 4
букв, при полном переборе был открыт за 7 минут и 40 секунд. Так что
если вы действительно хотите быть уверены, что никто кроме вас не
прочитает документы, то надеяться на MS Office не стоит.
|