• Партнер

  • "Хочу в Амстердам!" — с этой мыслью я залез в Гугл в поисках очередной
    жертвы. Среди первых ссылок по запросу "growshop" оказался магазин azarius.net с
    характерными зелеными листиками известного растения на главной странице. Немного
    почитав страницу "About Azarius", я узнал, что данный сайт — один из первых
    онлайн-магазинов по продаже психоактивных веществ в интернете (работает с 1999
    года) с огромной базой покупателей и товаров. Поэтому ты не удивишься тому, что
    на одном поверхностном просмотре страниц я не стал останавливаться :).

     

    Сажаем семена

    Итак, первым делом я начал изучать структуру шопа, что, замечу, было делом не
    из приятных, так как использовался апачевский mod_rewrite, и все ссылки имели
    вид вроде "http://azarius.net/smartshop/psychedelics/". Поверхностный осмотр мне
    ничего не дал, гугл не показал никаких интересных поддоменов и файлов, а из
    паблик-движков были обнаружены последний WordPress (http://azarius.net/blog/),
    пропатченный phpBB версии 2.0.22 (http://azarius.net/forum/docs/CHANGELOG.html)
    и не очень-то уязвимый Piwik версии 0.5.5 (http://piwik.azarius.net).

    Единственным доступным вариантом на тот момент оказался Piwik с его XSS в
    форме логина. Заморачиваться с XSS мне не очень хотелось, так как это долго и
    ненадежно, так что пришлось размышлять дальше над способом проникновения в
    растаманский рай.

     

    Поливаем и удобряем

    Прошло несколько дней. Совершенно случайно мне на глаза попался старый пост с
    Хабра об уязвимости множества крупных порталов, связанной с тем, что их .svn-исходники
    хранились в открытом доступе прямо на сервере. Вкратце поясню суть бага.

    Во-первых, SVN — это система контроля версий, которая является продвинутым
    средством для организации совместной работы десятков разработчиков. Во-вторых,
    SVN совершенно открыто хранит в каждой директории проекта свои метафайлы,
    которые сложены в директорию ".svn". В данной директории в файле "entries"
    находится список всех файлов и директорий, которые расположены в той же самой
    папке, что и ".svn". Здесь же находится и информация о расположении репозитория,
    размере файлов, дате их модификации и именах юзеров, работающих над проектом.
    Суммируя вышеназванные факты, можно подвести нехитрый итог: если проект
    разрабатывался с помощью SVN, то, зайдя по адресу вроде site.com/.svn/entries,
    ты сможешь увидеть файловую структуру корня сайта со всей перечисленной
    дополнительной информацией.

    В моем случае таким адресом оказался azarius.net/.svn/entries, где
    содержалась инфа вида

    2008-11-18T10:25:57.000000Z
    c581920ba2dad34f3e6841ac061d958c
    2007-11-16T11:06:53.860515Z
    935
    alex
    category.php
    file

    2008-11-18T10:25:57.000000Z
    7ce2e23ac9bc560edc2e79073fb630db
    2007-01-04T16:03:07.477725Z
    138
    alex
    find.php
    file

    2009-05-01T12:58:14.000000Z
    beea2f728667240c14795d3c508a5144
    2009-05-01T09:08:40.782967Z
    1307
    alex
    recent.php
    file

     

    Собираем урожай

    Итак, скачав к себе на винт исходники всех PHP-файлов проекта из категории ".svn/text-base/",
    я начал кропотливо парсить их на предмет уязвимостей. После очень долгих и
    нудных раскопок я понял, что azarius.net — действительно очень старый и крупный
    проек т, так как в исходниках не было даже намека на банальные инклуды,
    скуль-инъекции и иже с ними. Искать что-то извращенное и глубоко спрятанное было
    лень, поэтому я стал думать, как быть.

    Как оказалось, решение было крайне простым и лежало практически на
    поверхности :). На этот раз мне удалось продвинуться дальше во взломе с помощью
    чтения конфига форума phpBB по адресу azarius.net/forum/.svn/text-base/common.php.svn-base:

    <?php
    $dbms = 'mysql4';
    $dbhost = 'database.azarius.net';
    $dbname = 'azaforum';
    $dbuser = 'web_azarius';
    $dbpasswd = 'azariuskaki734';
    $table_prefix = 'phpbb_';
    define('PHPBB_INSTALLED', true);
    ?>

    Из конфига видно, что мускул-сервер шопа располагается по адресу
    database.azarius.net и вполне может быть виден из веба.

    На 80 HTTP-порту сервера висела следующая надпись:

    [an error occurred while processing this directive]
    You don't have permission to access the requested directory.

    There is either no index document or the directory is read-protected.

    [an error occurred while processing this directive]

    Phpmyadmin'ом здесь даже и не пахло, так что оставалось попробовать удаленно
    подконнектиться к 3306 порту мускула на данном сервере.

     

    Заряжаем бонг

    Залив на свой (почти свой 🙂 хост утилиту MySQL RST/GHC Manager, я попробовал
    залогиниться на серваке БД Азариуса с помощью данных из конфига phpBB. Как ни
    странно, у меня это получилось (пользуясь случаем, спешу напомнить — разрешай
    коннект к своему мускул-серверу только с локалхоста!).

    Далее нужно было немного осмотреться в базе, чем я немедленно и занялся.

    Итак, под текущим юзером были доступны несколько БД:

    information_schema, Affiliate, aff, azabase, azaforum, cms_system,
    cmsbase, enquete, payments, syslog, syslogaza, test, wordpress

    В базе payments была только одна табличка — "log", где хранились мало чем
    полезные логи, так что далее я полез прямиком в главную БД — azabase.

    Немного цифр: на шопе зарегистрировано 239545 растаманов и психонавтов,
    которые сделали 291187 ордеров. База юзеров имела следующие поля:

    UserID, UserStatusID, FirstName, LastName, Email, EmailVerified,
    Company, CompanyDescription, KVKNumber, BTWNumber, InvoiceAllowed, Remark,
    Password, ForumID, ForumAdmin, LastLogin, LangID, CurrencyID, _Buyer_Address,
    _Buyer_Host, _Buyer_Agent, _Klantcode, _Tussenvoegsel, _Korting, _PasswordNew,
    _EmailSend, _session_id, _Website, modified, Newsletter, Nickname

    Слив данную базу и бережно сохранив ее на винт для дальнейшей работы, я стал
    размышлять над тем, как залить шелл в уже полюбившийся мне онлайн-притон
    интересных личностей :).

     

    Курим

    Первым делом я проверил привилегии на работу с файлами у текущего юзера
    мускул:

    SELECT load_file('/etc/passwd')

    Здесь все оказалось не так просто, как с SVN и коннектом к базе — файловых
    привилегий не было вовсе. С заливкой шелла могли появиться проблемы, если бы
    админы шопа создали разных юзеров для разных БД, но, как ты уже понял, у меня
    был доступ ко всем базам сразу, так что я потихоньку стал колдовать над своим
    любимым WordPress :).

    Итак, зарегавшись по адресу http://www.azarius.net/blog/wp-login.php?action=register
    и получив на свое мыло пароль от аккаунта, я полез в БД под названием wordpress.

    Наверняка ты знаешь, что привилегии пользователей блога хранятся в табличке
    wp_usermeta в ключе под названием wp_capabilities. По дефолту каждый юзер имеет
    привилегии подписчика, то есть, фактически, не имеет никаких привилегий:

    a:1:{s:10:"subscriber";b:1;}

    Недолго думая, я сделал своего тестового юзера администратором, заменив
    данное значение на следующее:

    a:1:{s:13:"administrator";b:1;}

    Став админом, я зашел в админку блога по адресу http://azarius.net/blog/wp-admin
    прямиком в раздел редактирования плагинов. И на этот раз мне снова повезло —
    плагины были доступны для редактирования, так что мне оставалось только записать
    свой шелл в плагин "Hello dolly" и активировать файл. Теперь мой шелл
    располагался по адресу http://azarius.net/blog/?azarius и с удовольствием
    открывал мне дальнейшие возможности для изучения шопа :).

     

    Кушаем

    Теперь меня заинтересовало следующее:

    1. Исходники магазина;
    2. Админка магазина;
    3. Сайты-соседи.

    С первым пунктом я успешно справился, слив PHP-исходники из директории /var/www/html/azarius/public/,
    но, как ни странно, админки там не было. Долго лазая по файлам и директориям
    шопа, я так и не нашел админку, так что пришлось довольствоваться полным
    доступом к БД и исходниками Азариуса. Далее я выполнил команду "locate
    httpd.conf
    " и зашел в директорию /etc/apache2/sharedconfig/sites-enabled/,
    где хранились конфиги всех сайтов текущего сервера.

    Вывести полный список сайтов помогла команда

    cat ./*|grep ServerName

    affiliate.herbaldistribution.com
    blog.azarius.net
    conscious.nl
    consciousdreams.nl
    database.azarius.net
    dropshipping.consciouswholesale.com
    middleware.entheogenics.com
    pimpyourbicycle.com
    piwik.azarius.net
    redir.vaposhop.com
    secure.azarius.net
    stats.azarius.net
    webman.azarius.net
    webman.vaposhop.com
    www.azarius.at
    www.azarius.be
    www.azarius.es
    www.azarius.fr
    www.azarius.net
    www.azarius.nl
    redir.azarius.nl
    www.azarius.pt
    consciouswholesale.com
    www.crazy-t-shirts.com
    www.cultofarcha.com
    www.entheogenics.com
    greenlabelseeds.com
    www.mushxl.nl
    www.shavita.net
    www.shroomshaker.net
    smartshop.nl
    www.travellersgarden.com
    vaposhop.com
    www.xtenzion.nl

    Как видишь, поддоменов у azarius.net оказалось гораздо больше, чем показал
    Гугл :). Так что, если захочешь повторить хак, это будет тебе пищей для
    размышления.

    Все остальные сайты так или иначе все равно были связаны с травой, грибами и
    прочими интересными штуками, так что я быстренько забрал все исходники, все
    базы, явки и пароли и просто ушел с сервера (ну, не совсем просто, а извлекать
    коммерческий успех из этого добра :).

     

    Отходняк

    Даже если у истоков твоего коммерческого онлайн-проекта стоят грамотные
    кодеры и специалисты по безопасности, то все равно советую опасаться банального
    человеческого фактора. В данном взломе к заливке шелла и сливу базы
    пользователей привели несколько случайностей, которые, словно кусочки паззла,
    сложились в адскую мозаику с нарисованным на ней листком марихуаны. Так что,
    админ, бди!

     

    INFO

    Все описанное в статье является плодом больного воображения автора. Любые
    совпадения с существующими сайтами случайны. Ни редакция, ни автор не несут
    ответственности за любой возможный вред, причиненный материалами этой
    статьи.

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