Инструментальные средства обеспечения безопасности

       

Установка


Мы не будем углубляться в процедуры загрузки, распаковки и компиляции большинства программ, обсуждаемых в этой книге. Но так как Netcat - первая программа, о которой мы говорим, и поскольку у него есть несколько интересных опций, определяемых на этапе компиляции, будет не лишним углубиться в некоторые подробности.

Скопируйте с упомянутого сайта файл nc110.tgz. Затем распакуйте его.

[root@originic tmp]# ls nc110.tgz [root@originic tmp]# mkdir nc [root@originic tmp]# cd nc [root@originic tmp]# tar zxf ../nc110.tgz [root@originic tmp]# Примечание. В отличие от большинства тарболов (архивов, созданных с использованием утилиты-архиватора tar в Unix системах), Netcat при распаковке не создает собственной директории. Сейчас эти советы могут выглядеть банально, но если все ваши архивы и поддиректории загружены в одну директорию, и вы обнаружите, что Netcat разместил все свои файлы в корне, то понадобиться некоторое время чтобы вычистить их оттуда.

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

  • GAPING_SECURITY_HOLE. Как видно из названия, эта опция может сделать Netcat опасным в чужих руках, но она также делает его весьма мощным инструментом. Если эта опция включена, Netcat сам может запускать внешние программы. Ввод/вывод этих программ в этом случае будет проходить через конвейер данных самого Netcat. Тем самым Netcat ведет себя как функционально усеченный демон inetd, давая вам возможность выполнять удаленные команды (вроде запуска оболочки shell) всего лишь установив TCP или UDP соединение с контролируемым портом. Эта опция отключена по умолчанию, поскольку весьма велика опасность ее неверного использования или ошибок в конфигурировании.
  • TELNET. Обычно, если вы используете Netcat для соединения с telnet-сервером (используя команду nc servername 23), вы уйдете не слишком далеко. Telnet-серверы и клиенты согласовывают некоторые параметры еще до того, как появляется приглашение ввести идентификатор (login). Если включить при компиляции эту опцию, то Netcat сможет реагировать на запросы Telnet-сервера (отвечая на каждый из них no), что даст вам возможность дойти до ввода идентификатора.
    Без этого, если вы захотите получить что-нибудь путное, используя Netcat и telnet, вам понадобится написать собственный скрипт для реализации соединения с telnet-сервером. Возможно, важность этой опции пока вам не ясна, но вы поймете, почему мы обращаем на это внимание, как только посмотрите некоторые примеры приведенные далее в этой лекции.


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

# makefile for netcat, based off same ol' "generic makefile". # Usually do "make systape" - if your systipe isn't defined, try "generic" # or something else that most closely mathes, see where it goes wrong, fix # it, and MAIL THE DIFFS back to Hobbit ### PREDEFINES # DEFAULT possibly overridden by <systype> recursive call: # pic gcc if you'd rather, and/or do -g instead -O if debugging # DFLAGS = -DTEST -DDEBUG DFLAGS = -DGAPING_SECURITY_HOLE -DTELNET CFLAGS = -O

Вы можете включить одну или обе эти опции в строку DFLAGS.

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

Теперь вы готовы к компиляции. Просто наберите в командной строке make systemtype, где systemtype - это название Unix-системы, с которой вы работаете (это может быть linux, freebsd, solaris и так далее). Когда процесс закончится, вы обнаружите небольшой исполняемый файл "nc" в текущей директории.

Для пользователей Windows версию Netcat можно загрузить в виде архива (nc11nt.zip), также содержащего исходные тексты.Но поскольку большинство людей не имеют компиляторов, то исполняемый файл подготовлен заранее с опциями, включенными по умолчанию. Просто распакуйте архив и ваш файл nc.exe готов к использованию.


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