Взломы «бывают разные - черные, белые, красные», ради денег, престижа, интереса, от скуки и т.д. Я же сегодня расскажу историю взлома на спор. Попивая как-то пиво с коллегами в пятничный вечер в одном парковом кафе, я там случайно встретил своего знакомого веб-дизайнера. Пригласив его за наш столик, я разговорился с ним и выяснил, что он теперь работает в «модной девелоперской конторе». Такое словосочетание вызвало у меня, уже хорошо принявшего пиво, взрыв гомерического хохота. Я нелестно отозвался о девелоперских конторах с их полупрофессиональными штатами, знакомый мне возражал, в итоге, приняв еще по бокалу, мы поспорили с ним, что я взломаю сайт их «модной конторы» уже к понедельнику.
Проигравший поил пивом весь нынешний состав в следующую пятницу. Знакомый написал URL их сайта на салфетке, потом мы с коллегами еще вдарили по паре-тройке кружек, и о споре я вспомнил только в субботу после обеда, когда обнаружил салфетку с урлом.

Выпив кофе и немного взбодрившись, я решил посмотреть сайт «модной конторы». Сайт был на редкость простой, зацепиться было не за что. Несколько страниц на php - ни форума, ни гостевой. Адмику я нашел сразу, но брутить ее не стал. Атаку reverse IP я решил оставить на потом, ощущения после вчерашнего были не очень, а желания перебирать несколько десятков сайтов вообще не было.

Я еще раз пробежался по страницам сайта и зашел в раздел помощь. Оказалось, что чудо-девелоперы соорудили раздел помощи на ActiveKB v1.5 от www.interspire.com. Серфинг в гугле показал, что уязвимостей в ActiveKB v1.5 пока никто не находил.

Проверив пару параметров, я тут же обнаружил инъекцию:

http://www.site.ru/faq/index.php?ToDo=browse&catId=15+and+1=1/*

Довольно быстро я подобрал количество полей, к моей радости, 2 и 3 поля позволяло выводить информацию. Я уже предвкушал, как через пару минут утру нос «модным девелоперам», но все оказалось значительно сложнее. Провозившись битый час, я так и не смог подобрать название таблицы с админскими реквизитами доступа. На сайте разработчиков висела демо-версия 2.5.4 , в которой была таблица users. В моем же случае такой таблицы не было. В конце концов я решил найти и скачать ActiveKB v1.5, благо он раскидан по многим файлообменникам.

Скачав его и посмотрев исходники, я понял, что геморрой только начинается - админский аккаунт прописывался в конфигурационном файле, в базе хранение учетных записей не предусматривалось. Оставалось одно - попробовать считать конфигурационный файл, если, конечно, мне позволят права. Зачарив /etc/passwd (еще раз спасибо Smersh’у за его InjectoR), я не особо надеялся на удачу, но судьба была благосклонна ко мне. В файле было всего несколько записей, и ни одна не указывала место расположения сайта. Помня, что путь к сайтам хранится в конфигурационном файле Apache httpd.conf, пробую прочесть его. К счастью, его месторасположение никто не менял, и мне не пришлось его долго искать. Для удобства чтения
httpd.conf пришлось, правда, открыть исходный код страницы, потому как текст выводился на страницу неудобоваримой кашей.

Директория с единственным сайтом располагалась по этому пути:

/var/www/html/

Вот только одного я не мог понять - зачем «модной конторе» был нужен целый выделенный сервер? Мне бы он был значительно нужнее.

Имея исходники ActiveKB v1.5, я уже знал, что конфигурационный файл должен был находиться по адресу:

/var/www/html/faq/admin/includes/config.php

И вот уже следующий запрос:

http://www.site.ru/faq/index.php?ToDo=browse&catId=5+union+select+1, LOAD_FILE(CHAR(47,118,97,114,47,119,119,119,47, 104,116,109,108,47,102,97,113,47,97,100,109,105,110,47,105,110,99, 108,117,100,101,115,47,99,111,110,102,105,103,46,112,104,112)), 3,4,5,6,7/*

вывел мне содержимое конфигурационного файла:

$isSetup = 1;
$adminUser = "AntonG21";
$adminPass = "sasCha21";
$contactEmail = "faq@site.ru";

$mySQLUser = "webuser";
$mySQLPass = "webuser";
$mySQLDatabase = "activekb";
$mySQLServer = "localhost";
$tablePrefix = "activekb_";

$knowledgebaseName = "FAQ";
$useDefaultTemplates = true;
$topTemplate = "";
$bottomTemplate = "";
$pathToKB = "http://www.site.ru/faq/ ";

$allowVisitorComments = false;
$autoApproveComments = false;
$useWYSIWYGEditor = true;

Зайдя в админку и поизучав ее, я был немного расстроен, аплодить файлы в директории сайта я не мог, т.е. заливка веб-шелла отменялась. Собственно, в админке ActiveKB v1.5 я ничего особого сделать не мог. Правда, по ходу изучения админки я нашел еще одну инъекцию:

http://www.site.ru/faq/admin/index.php?ToDo=hideQuestion&questId=27+and+1=1/*

Оставалось попробовать логин и пароль админа ActiveKB v1.5 к основной админке сайта http://www.site.ru/admin/, и он подошел. Админка была самописной, с возможностью аплода файлов без всякой проверки, так что у меня уже через несколько секунд был веб-шелл. Потом, немного подредактировав индексную страницу сайта, в цвет фона я вставил сообщение «Виталик, в пятницу наливаешь!!!», видимое только если выделить весь текст на странице. Отзвонил знакомому, сказал где искать скрытый текст и пообещал рассказать, как получил доступ к сайту.

Выпив еще чашку кофе, решил проверить, что еще есть на сервере «модных девелоперов», права веб-шелла были nobody, так что далеко с ним я уехать не мог. Проверил имеющиеся пароли на ftp и ssh, они не подошли, и тогда я решил вернуться к инъекции. Раз MySQL мог читать файлы, значит, у него с правами было все нормально. Я надеялся, что могу прочитать содержимое таблицы mysql.user, и в своих ожиданиях не ошибся:

root - 7cc1059d478553a0
webuser - 7bd4ed7716dedbad
downsp3 - 7cc1059d478553a0

Загрузив полученные хеши в Password Pro и подгрузив хороший словарь, минут через десять я уже лицезрел поднятые пароли. А вот с ними уже я смог получить доступ к шеллу с правами рута (пароли roota оказались одинаковы). Прикинув, что за такой взлом одного пива будет мало, я опять отзвонил знакомому, и предложил ему поговорить с их админом об небольшой услуге -  выделить мне шелл на их сервере, а в ответ я покажу им все их баги. Ну а если админ откажет, тихо заведу себе шелл сам.

Ну вот и сказке конец.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии