Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3483 / 787 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 10:

Черный ход и средства удаленного доступа

Сокрытие сетевого соединения

Когда взломщик устанавливает соединение с машиной через telnet или SSH, это соединение может быть обнаружено в списке команды netstat, запущенной системным администратором. Для взломщика это может быть весьма неприятно. У Knark есть утилита, которая называется nethide, и которая может спрятать соединение, содержащее соответствующую строку. Например, если взломщик хочет спрятать IP-адрес 192.168.1.100 на атакованной машине, следует набрать:

victim# ./nethide "192.168.1.100"

Если взломщик хочет скрыть в списке TCP- или UDP-порты, то, чтобы скрыть порт 2222, следует просто набрать следующую команду:

victim# ./nethide ":2222"

Если взломщик хочет вновь разрешить отображение строки, то следует набрать команду:

victim# ./nethide -c
Переадресация исполняемых файлов

Одно из наиболее употребляемых сегодня выражений: "Я использую Tripwire, следовательно, я обезопасил себя от взломщиков" не соответствует действительности, если на атакованной машине установлен Knark. Knark располагает утилитой, которая называется ered, которая может переадресовывать одну команду в другую. Представьте, что произойдет, если команду cat переадресовать команде rm. Каждый раз, когда пользователь набирает cat <filename>, вместо этого будет выполняться команда rm. Для переадресации одной команды в другую, наберите следующую команду:

victim# ./ered <from command> <to command>

В случае, когда системный администратор запускает утилиту вроде Tripwire для проверки наиболее важных двоичных системных файлов, команда ered может запускать утилиту useless . Это происходит потому, что Knark перехватывает системные вызовы на уровне ядра, и если система вызывает исполняемый файл, он запускает вместо этого специальный исполняемый файл. Обратите внимание, что при этом исходный двоичный файл не изменяется и, следовательно, у него не изменяется контрольная сумма. Следовательно, Tripwire не может зафиксировать посторонней активности.

В качестве примера ошибки Tripwire представьте следующую переадресацию, когда взломщик подставляет свою версию программы md5sum вместо системной версии.

victim# ./ered /usr/bin/md5sum /tmp/hackers.md5sum

Чтобы снять все переадресации, следует набрать:

victim# ./ered -c
Выполнение удаленных команд

После того как Knark установлен, взломщик может удаленно выполнять команды с помощью утилиты rexec. Эта утилита запускается следующей командой:

attacker# ./rexec <Spoofed IP Address> <Victim IP Address> <Command>

Rexec фабрикует пакеты от заданного IP-адреса, используя UDP с исходящим и входящим портами 53 (DNS). Следовательно, эти типы пакетов обычно пропускаются через систему безопасности, и команды выполняются на захваченной машине.

Сокрытие модуля Knark.o в списке загружаемых модулей

Последней темой в списке методов сокрытия информации является сокрытие факта, что Knark загружен в качестве загружаемого модуля ядра. Поскольку все загружаемые модули ядра отображаются в списке по команде lsmod, то Knark может оказаться в этом списке. Конечно, мы можем переименовать knark.o во что-нибудь другое, например someobscuredriver.o, но Knark предлагает лучшее решение. Решение состоит в наличии модуля modhide.o. Он может спрятать последний загруженный модуль. После установки Knark вы должны набрать следующую команду:

victim# insmod modhide.o

Эта команда возвратит ожидаемую ошибку. Теперь, наберите команду lsmod, которая не покажет в списке модулей Knark, но он по-прежнему будет работать в ядре. После загрузки модуля modhide Knark может быть дезинсталлирован только после перезагрузки захваченной машины.

Пример из жизни. Хорошие, плохие и безобразные

В этом конкретном случае проверяются средства дистанционного контроля, разделенные на три разных уровня, каждый с различными степенями сложности использования, определения и удаления. "Хорошим" средством является VNC, "плохими" являются Back Orifice, Netbus и SubSeven, "безобразные" средства это - Loki, stcpshell и Knark.

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

В следующей таблице представлена эта конфигурация.

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

VNC

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

Back Orifice

С помощью BO2k атакующий может открыть этот черный ход опять через порт TCP 80. Атакующий может получить доступ к рабочему месту Windows администратора, если администратор запустит программу на машине-жертве. Таким способом атакующий хочет поместить эту программу, прикрепленную к привлекательной безобидной программе, перед администратором в надежде, что она будет запущена. Как только она будет запущена, атакующий получает доступ к этой сети.

Netbus

Используя Netbus, атакующий может поменять порт сервера на 80, так как мы это наблюдали в случае с VNC. Если атакующий сможет заставить администратора инсталлировать его на его машине с помощью прикрепления к привлекательной безобидной программе, то будет достигнут простой доступ в эту сеть. После инсталляции Netbus атакующий может захватить клавиатуру администратора и, возможно, получить дополнительные пароли к серверу Linux. По этому сценарию, поскольку большинство программ, сканирующих на вирусы, может определить Netbus, атакующий должен надеяться, что эта система не располагает обновленной версией программы, сканирующей на вирусы.

SubSeven

Используя Sub7, атакующий может изменить порт, на котором черный ход будет ожидать соединения. В этом случае атакующий сможет обмануть брандмауэр, если он сможет инсталлировать Sub7 на автоматизированном рабочем месте администратора. После получения атакующим доступа к автоматизированному рабочему месту администратора, он получает доступ к серверу Linux.

После того как хакер инсталлировал черный ход на машину Windows, оставленную администратором открытой, он может разнюхать пароли, вводимые администратором, просто читая ввод с клавиатуры, когда тот входит на сервер Linux. Кроме того, хакер также может подключиться к серверу Linux, активизировав средство изменения направления данных, встроенное в Sub7, на машине с Windows. Затем атакующий может использовать этот черный ход, чтобы соединиться с блоком Linux через порт изменения направления TCP-машины Windows, использовав полномочия администратора. В этом примере порт TCP 22 используется как входной порт к машине с Windows и направляющий к серверу Linux, таким образом, ускользая от архитектуры безопасности на месте.

Knark

Как только хакер оказался на сервере Linux, он получает прямой (корневой) доступ (при помощи клавиатуры администратора) и может успешно инсталлировать Knark. Дистанционное исполнение команды будет успешным, потому что команда rexec использует порт UDP 53 для связи с сервером. У хакера теперь есть черный ход к обеим машинам-жертвам, и он владеет всей сетью.