Глава 13. Изъяны средств удаленного управления



Глава 13. ИЗЪЯНЫ СРЕДСТВ УДАЛЕННОГО УПРАВЛЕНИЯ




1. Изъяны средств удаленного управления



Изъяны средств удаленного управления


Неотъемлемой чертой глобальной единой экономики является то, что и управлять ею нужно глобально. Вспомогательный персонал не всегда может оказаться на месте, чтобы подойти к закапризничавшему компьютеру и устранить проблему. Какой же выход? Программное обеспечение удаленного управления.
Такие программы, как pcAnywhere, ControlIT, ReachOut и Timbuktu, стали настоящей находкой для администраторов, позволяя им виртуально перемешаться на компьютеры пользователей и устранять проблемы или помогать выполнять стоящие перед ними задачи. К сожалению, такое программное обеспечение зачастую неправильно настроено или имеет изъяны в подсистеме защиты. Это позволяет взломщикам получать доступ к системам, переписывать секретную информацию, или, хуже того, использовать данный компьютер для взлома всей сети компании, создавая при этом впечатление, что эту атаку предпринял сотрудник данной организации.
В этой главе обсуждаются приемы, используемые взломщиками для поиска перечисленных программ в сети какой-либо организации (в главе 9 изложена подробная информация об удаленном управлении через модемное соединение). Кроме того вы узнаете, как злоумышленники пользуются ошибками в конфигурационных параметрах и дырами в системе защиты, а также о том, какие шаги следует предпринять, чтобы устранить все найденные изъяны.


2. Обзор программ удаленного управления



Обзор программ удаленного управления


Каждая программа, предназначенная для работы в сети, ожидает установки соединений, открывая для этого определенные порты узла. Число и тип этих портов полностью определяется самой программой. Сканируя порты какого-то компьютера, можно определить все работающие на нем программы удаленного управления. Остается только удивляться, как много пользователей устанавливают такое программное обеспечение без соответствующих санкций и требуемой поддержки.
В табл. 13.1 перечислены различные программные продукты удаленного управления, а также прослушиваемые порты, используемые этими программами по умолчанию. В этом списке содержатся лишь общие сведения, поскольку многие продукты, как указано в таблице, позволяют использовать для входящих соединений любой свободный порт.
Не забывайте о том, что для использования нужных портов изменить параметры следует как на узле, так и компьютере, с которого устанавливается соединение. Если изменить номер порта только на одном из двух соединяемых компьютеров, в настройках второго все равно останется порт 65301, установленный по умолчанию для соединений TCP. Работая на компьютере под управлением операционной системы Windows, для сканирования портов мы рекомендуем воспользоваться одной из таких замечательных программ, как NetScanTools Pro 2000, SuperScan, NTOScanner, WinScan, ipEye или WUPS, описанных в главе 2. Можно также проверить, как работает программа fscan компании Fundstone, которую можно найти по адресу http://www.foundstone.com. Каждая из этих быстрых, гибких и надежных утилит предназначена для идентификации портов, используемых службами удаленного управления.
Чтобы выполнить сканирование портов с компьютера под управлением системы Linux, всегда можно воспользоваться проверенной программой-сканером nmap (http://www. insecure.org/nmap), с помощью которой поиск требуемого программного обеспечения можно вести по всей подсети, nmap -sS -p 407,799,1494,2000,5631,5800,43188 -n 192.168.10.0/24
Таблица 13.1. Программное обеспечение удаленного управления, обнаруживаемое при сканировании определенных портов

Программа
TCP
UDP
Возможность использования альтернативных портов
Citrix ICA
1494
1494
Неизвестно
pcAnywhere
22,5631,5632,65301
22, 5632
Да1
ReachOut
43188
Нет
Нет
Remotely Anywhere
2000, 2001
Нет
Да
Remotely Possible/ControllT
799, 800
800
Да
Timbuktu
407
407
Нет
VNC
5800, 5801..., 5900, 5901...
Нет
Да
Терминальные службы системы Windows
3389
Нет
Нет

Как всегда, для одновременного сканирования нескольких сетей и обнаружения всех систем, от которых можно ждать неприятностей, мы рекомендуем использовать сценарий на языке Perl, который можно найти на Web-узле http://www.hackingexposed.com.


3. Соединение



Соединение


Как только взломщик получит всю необходимую информацию о службах удаленного управления рабочих станций и серверов, скорее всего, он попытается получить к ним доступ. После установки с параметрами, используемыми по умолчанию, практически все приложения удаленного управления позволяют устанавливать соединение любому пользователю. Причем для этого не требуется указывать ни имя, ни пароль. (Взломщикам это нравится.)
Единственный способ проверить, защищен ли паролем подобный программный пакет, — это попытаться установить соединение "вручную", воспользовавшись соответствующим программным обеспечением. Нам ничего неизвестно о каких-либо сценариях, которые позволяют автоматизировать этот процесс. Не стоит волноваться, если вы обнаружили в сети компьютер с каким-нибудь приложением удаленного управления и не имеете соответствующей полнофункциональной версии (скажем, Timbuktu или ControllT). Ее всегда можно найти в Web. В Internet можно найти также демонстрационные и пробные версии почти всех популярных программ удаленного управления.
Установите эти программы и попытайтесь соединиться с требуемыми узлами по очереди. Как насчет пользователей, которые используют пустой пароль? Если на экране не появилось приглашения для ввода имени пользователя, то как подарок рождественским утром на нем отобразится диалоговое окно приложения удаленного управления.
Если эта простая атака завершилась неудачей, можно выполнить инвентаризацию пользователей (более подробная информация об этом содержится в главе 3) и попытаться воспользоваться их именами. Во многих программах удаленного управления для аутентификации по умолчанию используются те же имена и пароли, что и в операционной системе NT. Имея в своем распоряжении системные имена, можно снова связаться с удаленным узлом и попробовать каждое из полученных имен пользователей, а также такие общепринятые пароли, как <пробел>, "имя_пользователя", password, admin, secret, <имя_компании> и т.д. Если это не принесет результатов, значит, данная программа, по крайней мере, надежно защищена паролем.


4. Изъяны программ удаленного управления



Изъяны программ удаленного управления


Часто приходится слышать, что уровень защищенности узла определяется прочностью самого слабого звена. Однако по отношению к программному обеспечению удаленного управления дело обстоит несколько иначе. Если узел удалось взломать (см. главу 5), то злоумышленники смогут воспользоваться обнаруженными изъянами и позже подключиться вполне законным путем. Например, некоторые старые программные продукты не шифруют имена и пароли пользователей, что дает возможность взломщикам извлечь их из файлов, с экрана монитора, или, еще хуже, из сетевого трафика. Единственный способ убедиться в том, что программные продукты надежно защищены, заключается в проведении их тестирования.
В программах удаленного управления имеется несколько изъянов. Тем не менее. проверить придется наличие каждого из них. Ниже перечислены некоторые известные проблемы.

  •  Имена и пароли пользователей передаются в виде незашифрованного текста.
  •  Использование слабых алгоритмов шифрования паролей (например, с использованием подстановки).
  •  Раскрываемые пароли (которые можно извлечь удаленно с применением средств с графическим интерфейсом либо скопировав требуемые файлы на локальный компьютер).
  •  Загружаемые профили.

Незашифрованные имена пользователей и пароли



Программа Remotely Possible 4.0 компании Computer Associates не обеспечивает никакой защиты имен пользователей и паролей. Как видно из рис. 13.1, в файле \PROGRAM FILES\AVALAN\ REMOTELY POSSIBLE\MAIN.SAB. Эти данные хранятся в текстовом формате — все ключи от королевства в одном месте!



Рис. 13.1. В окне текстового редактора видно, что имена пользователей и пароли программы Remotely Possible 4.0 хранятся в виде незашифрованного текста: пользователем TEST применяется пароль abcabc

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

Пароли, шифруемые с помощью алгоритма подстановки



Предполагалось, что в программе ControlIT 4.5 (новой версии программы Remotely Possible 4.0) будут устранены недостатки предыдущей версии, в которой имена пользователей и пароли хранились в виде незашифрованного текста. Однако вместо реализации надежного алгоритма шифрования компания применила простой алгоритм подстановки, который, кроме того, используется только для шифрования паролей. Например, пароль abcdabcd выглядит следующим образом. р | x d р | х d
Зная это, можно составить схему подстановки всех символов алфавита и легко расшифровать любой пароль. Поскольку имена пользователей по-прежнему содержатся в виде незашифрованного текста, то охота будет весьма результативной.


1.gif

Изображение: 

5. Раскрываемые пароли



Раскрываемые пароли


Программа Revelation компании SandBoy Software (http://www.sandboy.com) представляет собой одно из незаменимых средств. Единственный исполняемый файл размером 14 Кбайт позволяет получить хранящиеся в оперативной памяти пароли многих популярных программ удаленного управления.
Каждому знакомо диалоговое окно пароля, в котором вместо вводимых символов появляются звездочки. Оказывается, что в этом окне пароль никак не шифруется, а просто замешается. Этот изъян имеется во многих приложениях, включая pcAnywhere (без модуля обновления), VNC и Remotely Possible/ControlIT. С помощью утилиты Revelation можно извлечь пароль, который скрывается за звездочками, просто перетащив мышкой объект Revelation в требуемое поле.
С другой стороны, программы ReachOut, Remotely Anywhere, Timbuktu и версия пакета pcAnywhere с модулем обновления защищены от подобной деятельности. В программах ReachOut и Remotely Anywhere это обеспечивается благодаря тому, что для управления учетными записями в них используются средства диспетчера пользователей NT. Программа Timbuktu, диалоговое окно которой приведено на следующем рисунке, тоже является достаточно надежной, поскольку в ней используется более безопасный механизм шифрования паролей.



2.gif

Изображение: 

6. Загрузка профилей



Загрузка профилей

Как только взломщикам удастся проникнуть в систему NT и каким-нибудь способом получить административные привилегии, они смогут загрузить свои собственные профили (например, файлы . CIF или MAIN. SAB) и автоматически получить доступ к системе, пользуясь своим собственным паролем! Этой атаке подвержена как программа pcAnywhere, так и Remotely Possible 4.0. Для этого взломщику достаточно выполнить следующие действия.
1. Создать профиль соединения в рамках своей копии pcAnywhere или Remotely Possible.
2. Найти и скопировать новый профиль в каталог \DATA или \AVALAN\REMOTELY POSSIBLE целевой системы.
3. С помощью программ pcAnywhere или Remotely Possible 4.0 соединиться с удаленным компьютером и ввести свое имя пользователя и пароль.
Если используемый вами программный продукт хранит данные о соединениях в отдельных файлах, то он, скорее всего, уязвим для таких атак. Проведите тестирование и удостоверьтесь в его защищенности или примите все необходимые меры по обеспечению безопасности.

Контрмеры



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

Использование паролей



Хотя необходимость этой меры предосторожности очевидна и интуитивно понятна всем администраторам, имена пользователей и пароли на удаленных узлах применяются далеко не всегда. Производители программ тоже не всегда стремятся помочь в данной ситуации, надеясь на администраторов. Как видно из рис. 13.2, схема аутентификации, используемая в программе pcAnywhere по умолчанию, является весьма либеральной. Чтобы исправить эту ситуацию, просто установите режим Specify individual caller privileges.



Рис. 13.2. В программе pcAnywhere 8.0 по умолчанию используется режим Allow Full /Access То All Callers

Усиленные требования к паролям



Некоторые приложения, такие как pcAnywhere, позволяют повысить требования к используемым паролям, например сделать их чувствительными к регистру. Чтобы активизировать этот режим, откройте диалоговое окно свойств сети (NETWORK properties). Затем перейдите во вкладку Security Options и установите флажок Make passwords case sensitive. Как видно из рис. 13.3, этот режим по умолчанию отключен.
Программа Timbuktu обладает аналогичным механизмом защиты паролей. Как показано на следующем рисунке, можно ограничить возможность их повторного использования, задать минимальную длину пароля и количество дней, в течение которых его можно использовать.

Альтернативная аутентификация



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



Рис. 13.3. Один из возможных способов повышения уровня безопасности программы pcAnywhere заключается в использовании чувствительных к регистру паролей. Убедитесь, что установлен именно этот режим!

В программах Remotely Possible и ControlIT по умолчанию используются собственные механизмы аутентификации, тогда как в Timbuktu и ReachOut по умолчанию применяется аутентификация NT. При этом проблема состоит в том, что после успешного взлома злоумышленник сразу же получает пароли всех пользователей приложений удаленного управления.

Дополнительные возможности использования паролей



Программы Timbuktu и pcAnywhere предоставляют дополнительные возможности использования паролей, которыми следует пользоваться при любой возможности. Так, в pcAnywhere можно защитить паролем профили как исходящего, так и входящего соединения. Это не позволит кому-либо постороннему выведать пароль аутентификации, скрытый за звездочками. Установить пароль на доступ к профилям программы pcAnywhere (т.е. повысить уровень безопасности) можно в диалоговом окне NETWORK Properties во вкладке Protect Item, как показано на следующем рисунке.
Помимо аналогичных возможностей, программа Timbuktu позволяет ограничить доступ к параметрам безопасности.


Выход из системы после завершении сеанса связи



Программы Remotely Possible/ControlIT, pcAnywhere и ReachOut можно настроить так, чтобы после окончания сеанса связи выполнялся также выход из системы. Такая возможность оказывается чрезвычайно важной, поскольку если администратор забудет выйти из системы после выполнения своей работы, кто-либо другой сможет воспользоваться его привилегиями.
Чтобы включить этот режим в программе ReachOut, выполните следующие действия.
1. Выберите команду Security.
2. Перейдите во вкладку Disconnect и установите режим Log The Current User Off This Computer.

Кодирование сообщений во время сеанса связи



В более ранних версиях многих программ удаленного управления можно было перехватить имена пользователей и пароли во время их передачи по сети или разгадать простые алгоритмы шифрования. Удостоверьтесь в том, что используется наивысший уровень шифрования, обеспечиваемый программным обеспечением. Наилучшим средством для проверки надежности алгоритмов шифрования является программа анализа сетевых пакетов SnifferPro от компании Network Associates (http://www. nai.com) Остается только удивляться, насколько слабыми оказываются алгоритмы шифрования, применяемые в некоторых программных продуктах.

Ограничение числа попыток регистрации



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

Учет неудачных попыток регистрации



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

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



Это одна из наиболее важных возможностей. Однако в большинстве приложений удаленного управления она отсутствует. ReachOut от компании Stac Electronics оказалась единственной из всех протестированных нами программ, в которой реализован так называемый режим IntmderGuard (защита от нарушителей). Для активизации этого важного режима выполните следующие действия.
1. Выберите команду Security.
2. Перейдите во вкладку Connect, в группе User Lockout установите режим Trip IntruderGuard, а затем задайте количество неудачных попыток регистрации, после которых будет активизирован компонент IntruderGuard. Мы рекомендуем разрешить три неудачные попытки регистрации.

Изменение порта, прослушиваемого по умолчанию



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


3.gif

Изображение: 

4.gif

Изображение: 

5.gif

Изображение: 

6.gif

Изображение: 

7. Какой пакет является наилучшим с точки зрения безопасности



Какой пакет является наилучшим с точки зрения безопасности



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


8. рсAnywhere



pcAnywhere

На современном рынке программа pcAnywhere компании Symantec (http://www.symantec.com) является одной из самых популярных. В значительной мере ее притягательность для потребителя определяется ее безопасностью. У всех приложений есть свои недостатки, но по сравнению с другими программными продуктами pcAnywhere обладает наиболее мощными средствами обеспечения безопасности. К другим возможностям относятся надежное шифрование паролей, механизм альтернативной аутентификации, установка паролей на файлы профилей и конфигурационных параметров, выход пользователя из системы после завершения сеанса связи, шифрование сетевого трафика, ограничение числа попыток регистрации, а также регистрация неудачных попыток. К сожалению, как и многие другие приложения, pcAnywhere не способна противостоять программе Revelation, предназначенной для получения пароля. Более подробную информацию по этому поводу можно найти в . разделе этой главы "Раскрываемые Пароли".


9. ReachOut



ReachOut



Программа ReachOut компании Stac Electronics (http://www.stac.com)— еще один добротный программный продукт, предназначенный для удаленного управления. Однако он предоставляет меньше возможностей для обеспечения безопасности. В этой программе отсутствуют средства реализации строгой политики выбора паролей, альтернативной аутентификации, а также защиты паролем файлов профилей и конфигурационных параметров. Однако не все упрощения программы ReachOut являются отрицательными. Она использует единственный порт TCP/UDP с номером 43188, что значительно ограничивает возможности взломщиков.


10. Remotely Anywhere



Remotely Anywhere


Remotely Anywhere (http://www.remotelyanywhere.com) является новичком среди программ данного класса, однако, несмотря на это, выглядит многообещающей. Этот программный продукт позволяет удаленно управлять рабочим столом, а по возможностям общего системного управления программа Remotely Anywhere выделяется среди других средств. Кроме обычных функций удаленного управления, с помощью Web-броузера она позволяет выполнять почти все административные функции, имеющиеся в системе NT.
Пользователи, группы, системный реестр, журналы регистрации, процессы, планирование выполнения задач, список процессов, диспетчер файлов, драйверы, служебные программы — все эти компоненты можно настраивать через Web-броузер, а затем управлять ими. Это означает, что для управления системой NT даже не нужен графический интерфейс.
Естественно, программа Remotely Anywhere не лишена недостатков. Если взломщики смогут получить доступ к системе, то для выполнения дальнейших действий им не нужно будет ждать, пока пользователи уйдут домой. Достаточно просто запустить служебный процесс и приступить к работе. К сожалению, в настоящее время в программе Remotely Anywhere отсутствует альтернативный механизм аутентификации, отличный от аутентификации системы NT. Поэтому она становится уязвимой сразу после того, как будет взломана сама система. Программа Remotely Anywhere позволяет повысить уровень защиты, если включен режим блокирования IP-адресов (рис. 13.4). По умолчанию эта возможность не используется, хотя она позволяет блокировать доступ злоумышленникам после нескольких неудачных попыток регистрации.
С точки зрения управляемости программа Remotely Anywhere превосходит такие стандартные служебные программы с графическим интерфейсом, как User Manager, Event Viewer и REGEDIT32, поскольку они функционируют локально и для завершения операций требуется некоторое время. Например, через Web-броузер можно добавить пользователя или группу и тут же получить результат, тогда как при использовании стандартных утилит управления придется ожидать, пока графический интерфейс перешлет управляющие команды в систему. Достоинством программы Remotely Anywhere является то, что в ней имеются некоторые средства повышения уровня безопасности, которые достойны того, чтобы их использовать.

  •  Защищенный канал на базе протокола SSL (порт 2001).
  •  Фильтрация IP-адресов.
  •  Блокирование IP-адресов.
  • Защищенная аутентификация NTLM.


11. Remotely Possible/ControlIT



Remotely Possible/ControllT


ControlIT — известный и популярный продукт компании Computer Associates (http://www.cai.com). Однако эта программа предоставляет наиболее низкий уровень безопасности. Помимо того что в ее более ранних версиях использовались имена и пароли в виде незашифрованного текста, даже в последних версиях реализованы ненадежные алгоритмы шифрования, что делает пароли уязвимыми для злоумышленников. Производители не обеспечили поддержки строгой политики использования паролей, а также возможности установки пароля для доступа к файлам профилей и конфигурационных параметров. Кроме того, в программе отсутствуют средства аудита неудачных попыток регистрации и защита от применения программы Revelation.


12. Timbuktu



Timbuktu


Приложение Timbuktu Pro 32 компании Netopia (http://www.netopia.com) — еще одно средство удаленного управления, широко применяемое в больших организациях. Эта программа предоставляет все стандартные инструменты удаленного управления, а также несколько дополнительных возможностей. Этот программный продукт позволяет совместно использовать экран нескольким пользователям одновременно, а также обладает такими надежными средствами защиты, как ограничение минимальной длины пароля, управление повторным использованием паролей, альтернативная аутентификация
и ограничение срока, в течение которого можно использовать один и тот же пароль. Что самое приятное, программа Revelation не способна выявить пароль, используемый в приложении Timbuktu, что значительно повышает его надежность.


13. Virtual Network Computing (VNC)

 

Virtual Network Computing (VNC)

Программа Virtual Network Computing разработана в Англии, в лаборатории AT&T Research Labs Кембриджского университета. Ее можно найти по адресу https://www.comparitech.com/vpn/what-is-a-vnc-and-how-does-it-differ-from-a-vpn/. Программа обладает многими уникальными возможностями. Во-первых, ее можно использовать на многих платформах. Этот программный продукт можно устанавливать на компьютеры под управлением системы Windows, Linux и Solaris, а просматривать — в Windows, Linux, Solaris, Macintosh и даже с помощью Windows СЕ. Кроме того, эта программа имеет интерфейс на языке Java, что позволяет ее использовать через такие Java-совместимые броузеры, как Netscape Communicator и Microsoft Internet Explorer. Лучше всего то, что программа VNC является бесплатной!
Поскольку программа VNC обладает такими богатыми функциональными возможностями, неудивительно, что работа с этим продуктом сопряжена с некоторыми серьезными проблемами, связанными с нарушением безопасности. Она оказывается уязвимой при использовании программы Revelation. Как было показано в главе 5, через удаленное соединение программу VNC можно легко установить в системе Windows NT. Все что для этого требуется, — это инсталлировать службу VNC из командной строки после единственного изменения удаленного системного реестра, что позволит запустить ее в скрытом режиме. Конечно же, независимо от версии в списке Process List все равно будет содержаться процесс winVNC. EXE. Однако важнее всего то, что программа VNC подвержена следующим атакам.

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

Ниже каждая из этих атак будет рассмотрена более подробно.

Прямой подбор паролей VNC

 

Основным механизмом защиты сервера VNC от несанкционированного доступа является пароль, выбранный системным администратором. В этой книге уже не раз отмечалось, что взлом проще всего осуществить, если используются ненадежные пароли. Поскольку серверу VNC зачастую предоставляются высокие привилегии, решительно настроенный взломщик, проявив определенное упорство, сможет подобрать пароль сервера VNC "в лоб", простым перебором. Для подбора паролей VNC можно воспользоваться дополнительной программой rfbproto.c , которую можно применить к клиентскому приложению vncviewer. С помощью команды patch программу rfbproto.c нужно применить к пакету vnc-3.3.3rl_unixsrc.tgz. В следующем примере демонстрируется, как легко подобрать пароль сервера VNC.

[crush] # vncviewer 192.168.1.101
v'MC server supports protocol version 3.3 (viewer 3.3)
Trying password '#!comment:' VNC authentication failed
Trying password 'Common'
VNC authentication failed
Trying password 'passwords,'
VNC authentication failed
Trying password 'compiled1
VNC authentication failed
Trying password 'passwd'
VNC authentication failed
Trying password 'test'
VNC authentication succeeded
Desktop name "twistervm"
Connected to VNC server, using protocol version 3.3

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

Контрмеры: защита от подбора паролей VNС

 

При настройке сервера VNC важно выбрать надежный пароль. В нем должно содержаться не меньше восьми символов. Пароль не должен быть словом или производной от слова, найденного в словаре. Не забывайте о том, что пароль — это единственная преграда, стоящая между взломщиком и системой. Так что выбирайте его очень внимательно!

Перехват сетевого трафика

 

Если пакет VNC установлен без каких бы то ни было модификаций, то после аутентификации шифрование потока сообщений между клиентом и сервером не выполняется. Не стоит надеяться на то, что если этот поток сообщений сжат, то его труднее перехватить, чем, скажем, в сеансе telnet. Поскольку файлы с исходным кодом VNC найти очень легко, то не составит особого труда и разработать специальный перехватчик сообщений VNC. Поэтому установка соединения с сервером VNC без применения шифрования сопряжена с большим риском. Хотя исходный пароль VNC передается с использованием механизма "вопрос/ответ", весь поток сообщений передается в незашифрованном виде. Вполне возможно, что взломщик сможет отследить передаваемые сообщения и перехватить пароли, вводимые пользователями при регистрации.

Контрмеры: предотвращение перехвата сетевого трафика

 

К счастью, существуют различные механизмы, которые можно использовать для шифрования трафика VNC. Первым и основным из них является использование оболочки ssh, с помощью которой можно организовать защищенный канал между клиентом и сервером VNC. . Кроме того, к исходному коду пакета VNC можно применить дополнительные модули (http://web.mit.edu/thouis/vnc/), которые позволяют реализовать шифрование по открытому ключу. И наконец, для контроля каждого IP-адреса, с которого происходит доступ, можно использовать ТСР-оболочки (http://www.uk.research.att.com/vnc/archives/1998-09/0168.html).

Ненадежный метод хранения паролей VNC

 

В октябре 1999 года Конд Вампиро (Conde Vampiro) сообщил о некоторых изъянах программы VNC (http://www.roses-labs.com/advisory/RLvncbug.txt). Самый серьезный недостаток связан с тем, как служба VNC хранит пароль сервера VNC (а именно в системном реестре Windows). Хотя пароль сервера VNC шифруется с помощью алгоритма 3DES, при этом пароль каждый раз сохраняется с использованием фиксированного ключа (23 82 107 6 35 78 88 7). Это еще один наглядный пример неумелого применения надежного алгоритма шифрования (3DES). Поскольку ключ известен, то можно без проблем расшифровать пароль любого сервера VNC.
Пароль VNC хранится в ключе системного реестра HKEY_USERSX.DEFAULT\ SOFTWARE\ ORL\WinVNC3\Password. В нашем примере этот ключ представлен следующим блоком данных
2F 98 ID С5 48 ЕО 9Е С2
Если сервер, на котором запущена служба VNC, взломан, то для получения пароля VNC можно воспользоваться программой vncdec  (более подробную информацию о взломе систем Windows NT и 2000 можно найти в главах 5 и 6 соответственно). Перед компиляцией исходного файла его нужно немного изменить, чтобы строка паролей выглядела следующим образом.

/*поместите в массив р[] хеш-код пароля*/
char p[]=(Ox2F, 0x98, OxlD, OxC5, 0x48, OxEO, Ox9E, ОхС2};

После этого можно скомпоновать исполняемый файл vndec, а затем запустить его.

[shadow]# vncdec
test

Как видно из примера, пароль сервера test без особых усилий можно перевести в незашифрованный текстовый формат.

Контрмеры против ненадежного хранения паролей VNС

 

В последней версии программы, доступной во время написания данной книги, этот недостаток все еще не был устранен. Наилучшей зашитой от доступа взломщиков к системному реестру является использование средств обеспечения безопасности на уровне серверов. В главах 5 и 6 приведен исчерпывающий список мер предосторожности систем Windows NT и 2000.

 

14. Citrix



Citrix


Клиентская программа ICA (Independent Computing Architecture) и программа MultiWin компании Citrix обеспечивают возможность реализации многопользовательской среды в Windows NT, являющейся однопользовательской операционной системой (конечно, терминальный сервер системы NT и Win 2000 с терминальными службами являются исключениями). Серверный продукт WinFrame и программа MetaFrame, предназначенная для использования вместе с NT Terminal Server, предосташшют то, что в мире UNIX имеется уже несколько десятков лет: многопользовательские возможности.
Чтобы в полной мере оценить эту технологию, приведем краткое описание работы системы Windows NT. Эта операционная система не позволяет запускать пользовательские процессы на сервере. Наоборот, когда пользователь начинает работу, например с Word for Windows или Outlook, эти приложения запускаются на его компьютере, используя его оперативную память и файл подкачки, а не сервера. Однако подобную обработку данных лучше выполнять на сервере. Именно в таких случаях оказывается полезной модель компании Citrix. С ее помощью пользователь может зарегистрироваться на терминальном сервере Windows NT и запускать на нем процессы, а также выполнять действия, как будто бы он работал на самом сервере. При этом каждая команда и каждый процесс выполняются на сервере, лишь в небольшой степени используя клиентский компьютер пользователя.
Однако одной из отличительных особенностей программного продукта Citrix, выделяющей ее среди других инструментов информационных технологий, является та самая возможность, с которой связано много хлопот по обеспечению безопасности. В мире Citrix пользователь автоматически получает возможность запускать команды локально. Это означает, что многие программы взлома, такие как GETADMIN и SECHOLE, теперь можно использовать удаленно. Обычно для запуска подобных команд в среде NT взломщик, получивший доступ с правами пользователя, должен расширить свои привилегии и получить права администратора. Но Citrix автоматически предоставляет приглашение командной строки для удаленного запуска таких программ. Более подробную информацию об этом можно найти в главе 5.
Однако программные продукты компании Citrix обладают тем преимуществом, что при аутентификации больше не используются порты 135 и 139. Фактически взломщики могут находиться на волосок от системы, но так и не подобраться к ней, поскольку открытым является только TCP/UDP порт 1494, которого в списке сканирования портов обычного взломщика может не оказаться.


15. Резюме



Резюме


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