В застенках PostNuke.ru: Наносим удар по Russian Postnuke TeamЛеонид «R0id» Стройков (stroikov@gameland.ru) Просматривая ежедневно десятки ресурсов, невольно выстраиваешь рейтинг наиболее распространенных бажных движков. Уныло полистав багтрак, я решил прогуляться по всем известному порталу от Russian Postnuke Team – www.postnuke.ru. Что из этого получилось, и чем прогулка окончилась, ты узнаешь, прочитав статью. Первое знакомствоДвижки по типу «все включено» получили на просторах Сети широкое распространение. Зайдя на сайт www.postnuke.ru, я обнаружил, что в качестве движка используется PostNuke (еще бы :)). Стоит ли говорить, что версия была последней, а значит, на дыры рассчитывать не приходилось. Набрав в адресной строке www.postnuke.ru/robots.txt, я получил список запрещенных к индексации каталогов: User-agent: * К сожалению, chmod’ы на серверы были расставлены грамотно, так что никакой дополнительной информации мне получить не удалось. Тогда я вспомнил об удобном сервисе по сбору данных из Гугла – madnet.name/tools/madss. Вбив урл атакуемого ресурса, буквально через пару секунд я лицезрел ответ: http://postnuke.ru Сервер: Apache/2.0.52 (CentOS) Запрещено к индексированию: admin.php Сайты на сервере(ReverseIP): energogid.ru [83.222.23.124] [83.222.23.174] Я безрезультатно проверил все имеющиеся ресурсы и углубился в изучение структуры и функционала www.postnuke.ru. Через некоторое время мое внимание привлек модуль Static Docs, который располагался по адресу: http://www.postnuke.ru/index.php?module=Static_Docs&func=view Когда я прошел по линку, передо мной оказалась директория с названием «downloads»: http://www.postnuke.ru/index.php?module=Static_Docs&func=view&f=downloads/index.html Взглянув на адресную строку браузера, а именно на параметр «f» и его значение, я с удивлением обнаружил, что модуль не имеет привязки к конкретному каталогу, а значит... Правильно! Я мог совершенно спокойно гулять по серверу, читая файлы и просматривая интересующие меня каталоги. Эксплуатируем уязвимостьПервым делом я принялся искать конфиги для подключения к СУБД. Корень веб-каталога располагался в /opt/www/postnuke.ru. Сформировав запрос вида: http://www.postnuke.ru/index.php?module=Static_Docs&func=view&f=../../../../../../../../../../../../../../opt/www/postnuke.ru – я без труда получил листинг веб-директории сайта: docs 4 KB Directory 05 Jun, 2005 г. - 21:39 Меня заинтересовали два конфига: config.php и config-old.php. Оба представляли собой стандартные конфиги PostNuke. Прочитав первый (config.php), я добрался до заветного аккаунта к СУБД: $pnconfig['dbtype'] = 'mysql'; В старой версии конфига поля логина и пароли были пустыми – непонятно, зачем его вообще хранили на сервере :). 1. 2. 3. 4. 5. В моем распоряжении появилось несколько аккаунтов. Казалось бы, сомневаться в успехе не приходилось, но MySQL-клиент раз за разом выдал сообщение об ошибке, сообщая, что удаленное подключение к СУБД на postnuke.ru невозможно. Такой расклад меня не устраивал. Я принялся искать бэкапы, которые могли бы пролить свет на админки хостящихся на сервере ресурсов. Вскоре соответствующая директория была найдена – /opt/data/BACKUP: etc 12 KB Directory 10 Aug, 2007 г. - 04:05 Каталог с незамысловатым названием «sql» хранил в себе много вкусностей: mysql.tgz 29 MB Unknown 10 Aug, 2007 г. - 21:35 К сожалению, слить найденные бэкапы не удавалось. Бажный модуль попросту отказывался показывать их содержимое – то ли по причине отсутствия прав, то ли в результате ошибки выполнения самого модуля. Удача в этот раз явно обошла меня стороной, однако сдаваться в мои планы не входило, и я принялся осматривать веб-каталог сервера – /opt/www: 20let.solidno.ru 4 KB Directory 12 Feb, 2007 г. - 10:04 Можно было попробовать залогиниться в админку какого-нибудь из сайтов, использовав аккаунты от MySQL. Потратив на попытки более часа, я оставил эту затею и принялся окучивать FTP, что тоже не принесло результатов. Я вынужден был отдать должное админам и отступить... В этот раз довести начатое до конца не удалось. Почему? Об этом читай ниже. Что помогло админамС точки зрения безопасности, огромным плюсом оказалось ограничение в правах и в возможности удаленного подключения пользователей MySQL. Все найденные аккаунты мне попросту не понадобились. Стоит отметить, что везде использовались разные и сложные пароли. Именно поэтому так и не удалось заюзать пароли от мускула «в иных целях». Но налицо был и ряд ошибок: начиная от использования бажного модуля и заканчивая кривым разграничением прав пользователей на сервере (благодаря чему я шарил по всем необходимым каталогам). В любой бочке меда можно найти ложку дегтя – или наоборот :). DangerВнимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут! InfoЧем крупнее проект – тем больше вероятность наличия в нем уязвимостей. Смело бросайся грудью на амбразуру и тестируй раскрученные ресурсы. Большим плюсом с точки зрения безопасности является ограничение в правах и в возможности удаленного подключения пользователей MySQL. DVDНа нашем диске ты найдешь полное видео к статье. Приятного просмотра! |