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

Реализация


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

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

Предположим, что вы взломщик. После того, как VNC будет установлена, вы можете запустить VNC-сервер, чтобы прошло его первоначальное конфигурирование. В диалоговом окне Current User Properties, доступном в программе VNC "app mode", которая находится в папке Start/Programs/VNC, задайте параметры конфигурации, как это показано на следующем рисунке.


Вам важно знать, что VNC запускается по аналогии с X Window, когда для него инициализируется displays. В данном случае, дисплей номер 0 (ноль) позволяет VNC прослушивать порт 5800 для Web-сервера и порт 5900 для VNC-сервера. Значения этих портов становится понятным из следующего рисунка, на котором взломщик, используя FreeBSD, соединяется с машиной, на которой установлен VNC. Взломщик использует Web-броузер для соединения с портом 5800 по IP-адресу VNC-машины. При этом открывается Web-страница, которая запрашивает у пользователя пароль для входа в систему.


увеличить изображение

После того как был введен правильный пароль, рабочий стол доступен для взломщика через Web-броузер. Ниже приведена копия экрана DOS-сессии, отображаемой в окне VNC-сессии. Обратите внимание на то, что вы видите то же самое, как если бы вы сидели перед консолью машины. На этом изображении Web-броузер удален с рисунка.


увеличить изображение

Пока видно, что рабочий стол машины-жертвы отображается у вас на экране в окне Web-броузера.

Netbus версии 2 (бета) доступен для всех и содержит большинство необходимых взломщику функций. Сначала Netbus должен быть установлен на машине взломщика, чтобы его можно было сконфигурировать перед заражением жертвы. Инсталляция программы похожа на установку большинства приложений для Windows-систем, и ее можно выполнить, выбрав меню Start/Programs и щелкнув на имени приложения Netbus.

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

Чтобы сконфигурировать Netbus для установки на атакуемой машине, первый раз клиент запускается для модификации исполняемого модуля сервера. Процесс конфигурирования показан ниже.

  1. В клиентской программе выберите File/Server Setup, как показано на следующей иллюстрации.


  2. В диалоговом окне Server Setup выберите Server Executable. Исполняемый модуль будет сконфигурирован, чтобы быть установленным на атакуемой машине.


  3. Найдите исполняемый модуль сервера, который вы хотели бы сконфигурировать. В большинстве случаев вам потребуется конфигурировать исполняемый модуль NBsvr.exe, который поставляется в инсталляционном комплекте Netbus.


  4. После того как вы нашли исполняемый модуль сервера, который вы хотите сконфигурировать (обычно он располагается в установочной директории), вам необходимо закончить выбор параметров в диалоговом окне Server Setup, как это показано далее. Убедитесь, что вы отметили параметр Accept Connections.


  5. В поле Run On Port укажите TCP-порт, который может использовать Netbus для ожидания соединения. В данном примере выбран порт 4375, но может быть выбран и любой другой порт из тех, что не заняты на атакуемой машине. Этот порт должен быть доступен любым способом на протяжении всей сети от клиента до сервера.
  6. Затем выберите параметр visibility.




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

    1. Когда появится заставка мастера конфигурирования, щелкните на кнопке Next.
    2. Мастер потребует у вас ввести название исполняемого модуля сервера, который будет редактироваться. Поскольку может быть доступно множество копий исполняемого модуля (по одному для каждой атакуемой машины), на этой странице должен быть выбран один из них.
    3. BO2k - один из немногих пакетов программ, обеспечивающих доступ через черный ход, которые могут работать поверх TCP- и UDP-протоколов. Протокол TCP выбирается обычно, если устойчивость соединения не вызывает сомнений. UDP-протокол выбирается в том случае, если есть трудности в преодолении системы безопасности (например, системный администратор может случайно оставить один из UDP-портов открытым).
    4. Поскольку большинство взломщиков хотели бы использовать протокол TCP для управления сервером BO2k, то в следующем окне представлен запрос на номер порта, который будет использоваться. Поскольку 80 порт обычно более доступен, чем любой другой, выберите его.
    5. BO2k предоставляет возможность шифрования канала связи между клиентом и сервером. Версия, которую мы скачали, показана на следующей иллюстрации. Она предлагает только XOR-шифрование, которое известно как слабое, но все же лучше, чем простой текст.


    6. На следующем экране введите пароль, который используется для доступа к серверу. Пароль для доступа с черного хода - отличная вещь для взломщика/аудитора, но если слово будет использоваться без подтверждения полномочий, то обычно это плохо.
    7. Как только мастер закончит работу, будет загружена утилита настройки сервера.
    8. Посмотрите, как проверить различные параметры настройки сервера, которые мастер заполнил на основании информации, полученной от вас.




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


      1. Выберите сервер, который вы собираетесь конфигурировать, щелкнув на кнопке Browse в левом верхнем углу окна.
      2. Выберите сервер Sub7, по умолчанию - Server.exe.
      3. Измените некоторые параметры, содержащиеся в этом окне. Важные для понимания параметры будут обсуждаться далее.

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

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

      • персональный коммуникатор ICQ;
      • сеть IRC;
      • уведомление по электронной почте.

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

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

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




      Программа Loki должна быть скомпилирована с помощью команды make. Кроме этого, если вы загрузили версию 2 и хотите запускать ее не под RedHat Linux, следует использовать следующую заплатку.

      diff Loki.orig/Makefile Loki/Makefile 37c37 < DEBUG = -DDEBUG --- > DEBUG = #-DDEBUG

      diff Loki.orig/loki.h Loki/loki.h 36c36,38 < #include <linux/icmp.h> --- > #define ICMP_ECHO 8 > #define ICMP_ECHOREPLY 0 > //#include <linux/icmp.h> 38c40 < #include <linux/signal.h> --- > #include <signal.h>

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

      attacker# ./loki -d <victim's IP address>

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


      увеличить изображение

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

      • Демон Loki по умолчанию блокирует вас внутри директории /tmp. Есть возможность изменить директорию, но только изменив исходный код программы.
      • Хорошей идеей будет осуществлять статическую компиляцию Loki, если вы собираетесь загрузить сервер на машину, на которой нет возможностей компиляции, или с другими версиями динамических библиотек (т.е. вы не сможете скомпилировать программу на захваченном сервере).
      • Как показано на следующей иллюстрации, трафик захватывается при помощи программы Ethereal (Ethereal подробно обсуждается в лекции "Анализаторы сетевых потоков"), ICMP-пакеты передают информацию между сервером и клиентом. По умолчанию, эта информация не шифруется. Тем не менее, если вам это необходимо, в make file можно установить переключатель шифрования: вы можете использовать XOR- или Blowfish-шифрование. Просто закомментируйте строку CRYPTO_TYPE в make file для того типа шифрования, которое вы хотите использовать.


        увеличить изображение




      Поскольку утилиту необходимо скомпилировать, перед тем как использовать, вы должны делать это на машине, системно совместимой с той, которую вы собираетесь атаковать. Если это не сама атакуемая машина, вы должны при компиляции использовать команду -static, поставив ее перед параметром -o. Процесс компиляции может быть запущен такой командой.

      attacker# gcc -o stcpshell stcpshell.c

      Сервер запускается так.

      victim# ./stcpshell

      Затем вы можете установить соединение между клиентом и сервером.

      attacker# ./stcpshell -c <server IP address> <client IP address>

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


      увеличить изображение

      Сессию, установленную между клиентом и сервером, можно увидеть на следующей иллюстрации, которая представляет обмен трафиком, перехваченным программой Ethereal. Обратите внимание, как трафик между клиентом и сервером передается с использованием сфабрикованного IP-адреса 207.46.131.137. Более того, для соединения выбраны порты 1234 и 4321 (определяемые, как работа программы rwhois, которая по умолчанию работает с портом 4321). Порты и сфабрикованный адрес можно изменить в исходном коде утилиты, который может быть найден в следующих строках в модуле stcpshell.c.

      /* from www.microsoft.com .. you BETTER change this */

      pkt.ip.ip_src.s_addr=inet_addr("207.46.131.137");


      увеличить изображение




      Knark поставляется в исходных кодах и должна быть скомпилирована. Чтобы скомпилировать Knark, необходимо иметь доступ к исходным кодам ядра Linux, размещенным в директории /usr/src/Linux, где находятся коды текущего ядра. Чтобы скомпилировать утилиту, следует распаковать архив, скорректировать тексты и набрать следующую команду.

      victim# make clean victim# make

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

      victim# insmod knark.o


      увеличить изображение

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



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