![]() |
Взлом на 3/10 [gallery.sourceforge, vb, video, ibProArcade]
В погоне за lvl-whatever решил сгенерировать контент и описать несложный взлом :)
Понадобилось мне узнать пароли пары человек; как это обычно бывает, посмотрел, где они зарегистрированы, проверив facebook, myspace, и погугля по их именам/имейлам. Среди результатов самым обнадеживающим оказался местный (их местный :)) портал определённой тематики - зарегистрированы там оказались оба человека. Осмотр показал: на сервере стояли форум vBulletin 3.6.х, блог WP 2.7, галерея с gallery.sourceforge.com и аналог локального ютюба. Помимо указанного сайта на айпи сервере висело еще 50 сайтов. Никаких готовых эксплойтов под указанные версии софта не нашлось (было бы странно обратное, все же версии не самые старые на тот момент). 1) Хождение по страничкам сайта обнаружило установленный игровой плагин ibProArcade для vBulletin. Больше всего радовала дата в копирайтах внизу странички - что-то вроде "© 2005". Быстрый поиск выявил 2 готовых эксплойта под этот плагин, один от 2005 года (с sql injection вида id=-1 union select 1,2--) и более старый от 2008 года. Первый не сработал, зато второй, написанный известным 1dt.w0lf из rst/ghc, оказался в самый раз: http://www.exploit-db.com/exploits/5018/ Правда совсем легко не было, т.к. плагин существовал в версиях для vBulletin и для IPB, вот к IPB и был написан эксплойт. Иллюстрация баги: ?autocom=arcade&overwrite_sort=added&overwrite_ord er=,(-gid*(1=1)) ?autocom=arcade&overwrite_sort=added&overwrite_ord er=,(-gid*(1=2)) В указанных ситуациях порядок доступных игр менялся из-за меняющегося параметра order by в итоговом запросе. Править под vB эксплойт было лень, поэтому 2 нужных мне хэша, хэш админа и 1 хэш владельца сайта пришлось выбирать ручками :) Запросы были вида: arcade.php?autocom=arcade&overwrite_sort=added&ove rwrite_order= ,(-gid*(SELECT+1+FROM+user+WHERE+(userid=1+AND+ascii( substring(password,1,1))<97)+LIMIT+1)) offtop: замечу, что на сервере для каждого приложения заводились отдельные логин/бд, т.е. я не мог вытащить хэш от WP или gallery. Потратив полтора часа, я обнаружил: из четырех хэшей расшифрованы оказались 1 нужный мне хэш и хэш владельца сайта (но он не был администратором в vB). Раз пароль к одному из нужных мне хэшей быстро не нашелся, целью становилось получить вебшелл, чтобы затроянить login.php vBulletin-а. 2) Идем дальше. В блоге ничего не было, галерею я вообще никогда не трогаю, т.к. багов там почти не бывает, а те что есть - несущественны по моему опыту. На очереди стоял самописный аналог ютюба без опознавательных знаков. Разве что "Powered by Video" внизу страницы с линком до http://buyscripts.in/youtube_clone.html окажется полезным... На сайте стало понятно, что это 10-долларовый скрипт "vShare Video Sharing Script" с сайта сборника скриптов (что уже наводит на мысль о багах). Изучение видео-раздела подопытного сайта и игра с параметрами в url через некоторое время навели на скрипт /group_posts.php с совсем неприличной ошибкой: http://img101.imageshack.us/img101/8615/snap1ss.png После чего, как обычно, был подбор количества колонок, вывод @@ и () функций. Чтобы долго не искать в гугле был найдена варезная версия этого скрипта (возможно более старая версия) и поставлена к себе с целью просмотра структуры таблиц. Сразу проверил и увидел, что шелл не залить изнутри админки этого скрипта. Возможно пассы окажутся полезны: юзеры - /group_posts.php?tid=1+union+select+1,2,3,4,concat( username,0x3a,email,0x3a,pwd),6,7+from+signup+limi t+0,1-- админ - /group_posts.php?tid=-1+union+select+1,2,3,4,svalue,6,7+from+sconfig+whe re+soption="admin_pass"+limit+0,1-- Бага возможна актуальна и в текущих версиях: ну то есть перед вами мега 0day и priv8 :))) Хэши - простые мд5, админский довольно быстро был подобран, однако пароль не подошел к хэшу от vBulletin. Значит админ не совсем плох. С замиранием :) вбиваем этот пасс в админке WP: не подходит... Остается разве что попробовать бесполезную админку gallery: и к ней тоже не подходит. Админ оказался совсем не так прост. 3) Оставалось только посмотреть другие сайты на этом сервере. Беглый осмотр выявил в массе своей пустые сайты с почти нулевой посещаемостью, где стояли разнообразные версии (часто с дефолтовым оформлением) joomla, wordpress, vBulletin. Несмотря на обилие версий (был и старенький уязвимый WP), известные баги были либо прикрыты, либо условия были такие, что эксплойты не работали. Пытался логиниться с полученным из 2го пункта админским паролем - неудачно. Просмотр хуизов к сайтам привел к мысли (которая позже подтвердилась), что все эти сайты хостятся на дедике админа, и большая часть пустых сайтов создана им самим, как для тестов, так и с целью раскрутить их. На одном из этих сайтов также был обнаружен теперь уже любимый "vShare Video Sharing Script", - уже знакомый запрос и на руках новый админский хэш. Прогоняем по словарям, брутим, добавляем на hashcracking.info - ничего. На некоторое время я забыл об этом сайте, к тому же без пароля больше нечего было делать. // Кстати через месяца 4 или 5 пароль к этому хэшу был все-таки подобран кем-то на указанном выше сервисе, правда уже было поздно :) Через месяц или два снова захожу на сайт с vShare Video, где взял последний хэш: на первой же странице с видеороликами вижу, что добавилось несколько новых юзеров (похоже сайт не такой уж дохлый, как я думал, и админ его тестит и привлекает людей), снова смотрю хэш юзеров и админа, вижу, что админский хэш изменился. Заряжаю таблицы на loweralpha_digits_1-8 - есть пасс, и он новый! Позже выяснилось, что у админа оказалось несколько паролей с разными модификаторами к ним. Но даже этот пасс не подошел ни к WP, ни к vBulletin целевого сайта. 4) Пробуем сайты пустышки, которых много на этом сервере: вбиваем пасс в разные vBulletin, и на втором или третьем вхожу в админку! Далее льем шелл и мы внутри: ядро свежее, а наш id=имя_текущего_сайта :((( А в /etc/passwd куча вот таких строк: macbeth:x:542:542::/home/macbeth:/bin/bash И, соотвественно, на все директории в /home права на просмотр есть только у юзера-владельца. Поэтому, чтобы затроянить целевой сайт, нужно залить шелл через него самого, иначе - никак. 5) От отчаяния попробовал войти в админку gallery целевого сайта с паролем, полученным в (3), - на удивление вошел! Правда, толку от этого мало, авторы этой галереи очень заботятся о безопасности, ни шелла не залить, ни дамп БД сделать, ничего. Единственная чуточку полезная информация есть в Maintenance > System information: Код:
Gallery version = 2.2.2 core 1.2.0.4 У нас 2.2.2, поищем release notes более новых: 2.2.3 - там баги с WebDAV, неинтересно; 2.2.4 - не очень интересно; 2.2.5 - в описании сразу написано This release fixes critical security issues, no new features have been added. Users of all previous Gallery 2 versions are strongly encouraged to upgrade to version 2.2.5 as soon as possible! Радует! Какие баги, что все так серьезно? Цитата:
Конечно, кроме куцых строчек описания ничего нет, но ведь это опенсорс, можно самому посмотреть. Качаем update-2.2.4-to-2.2.5.zip, чтобы узнать что пофиксили, внутри открываем файл changed-files-archiveupload.zip (понятно почему) и кладем рядом с полным дистрибутивом версии 2.2.4. Из апдейта распаковали: \modules \modules\archiveupload \modules\archiveupload\classes \modules\archiveupload\test \modules\archiveupload\MANIFEST \modules\archiveupload\module.inc \modules\archiveupload\classes\ArchiveExtractToolk it.class \modules\archiveupload\test\phpunit \modules\archiveupload\test\phpunit\ArchiveExtract ToolkitTest.class Сравнивая эти файлы с ними же, но в составе 2.2.4, находим \modules\archiveupload\classes\ArchiveExtractToolk it.class, в котором поменялась функция _pruneDirectory: http://img827.imageshack.us/img827/9277/snap3c.th.png Видно, что теперь они стали удалять симлинки из файлов архива. Хм. Очевидно, что при работе модуля происходит перемещение файла по симлинку в паблик-доступ. Попробуем у себя. Смотрим zip -h: -y store symbolic links as the link instead of the referenced file // сохранять в архиве симлинк, а не файл, на который он указывает Создаем файлы: Код:
synq@synq-desktop:/var/www/gallery2$ ls -la /tmp/baby Пытаемся теперь добавить этот архив (по идее :) с картинками) в нашу галерею: Add Items > From Web Browser и загружаем z.zip. В результате ошибка: http://img840.imageshack.us/img840/6586/snap5o.png Похоже не хватает прав. Так, у меня ведь в системе веб-сервер работает от отдельного юзера www-data, может он только принадлежащие ему файлы может читать и перемещать по симлинкам (именно такая ситуация на интересующем нас сервере - веб-сервер работает из-под id владельца каталога)? Сменим тогда владельца: Код:
synq@synq-desktop:/var/www/gallery2$ sudo chown www-data /tmp/baby http://img153.imageshack.us/img153/5156/snap7g.png Теперь к нашему серверу, раз галерея в /gallery/, а форум имеет путь /forum/, то конфиг vB (хотя можно было бы и конфиг WP взять) лежит относительно галереи по пути ../forum/includes/config.php Код:
synq@synq-desktop:/var/www/gallery2$ ln -s ../forum/includes/config.php poison happy end) Далее всё стандартно: подключились к этой базе через шелл на этом сервере, полученный в (4), поменяли ненадолго хэш администратора целевого сайта, затем уже залили новый шелл через этот vBulletin, хэш поменяли обратно, логи почистили. C уже нового шелла был протроянен login.php: PHP код:
SynQ, released on rdot.org |
ИМХО, тема хека не раскрыта, нечего сверхнеебического здесь ненайдено. Обычно приходиться больше делать.
|
а мну понравился но время хека ну очень уж велик почти полгода)
|
Цитата:
|
Часовой пояс GMT +3, время: 07:58. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot