Эксплоит phpmyadmin с другого контейнера OpenVZ? Возможно ли?
Имеем виртуальный сервер на OpenVZ.
В контейнере установлена база данных MySQL 5.7.28, но не установлен phpMyAdmin.
Предположительно, phpMyAdmin установлен в соседнем контейнере на том же физическом сервере.
Вопрос - возможно ли взломать базу данных на моем виртуальном сервере, атакуя phpMyAdmin на соседнем контейнере, по его известным эксплоитам?
Суть в том, что у нас с другим контейнером очевидно один и тот же IP, и один и тот же порт 3306 для подключения к MySQL. Возможно ли, что phpMyAdmin при пробитии его эксплоитом получил бы доступ к базам данных, расположенным на том же IP, но в других контейнерах?
По факту мою базу хакнули: получили рут доступ, создали юзера mysqlbackups со всеми привилегиями на все базы данных, и потом дропнули все таблицы в них и создали заново по одной таблице с именем WARNING в каждой базе. Внутри этой таблицы есть текст с указанием адреса биткоин-кошелька и хакеры просят 0.06 BTC чтобы "вернуть" базы данных на место.
_infimum supremum
To recover your lost Database and avoid leaking it: Send us 0.06 Bitcoin (BTC) to our Bitcoin address 1BLYhUDmnmVPVjcTWgc6gFT6DCYwbVieUD and contact us by Email with your Server IP or Domain name and a Proof of Payment. If you are unsure if we have your data, contact us and we will send you a proof. Your Database is downloaded and backed up on our servers. Backups that we have right now: . If we dont receive your payment in the next 10 Days, we will make your database public or use them otherwise. contact@sqldb.to
По этому адресу биткоина уже к настоящему времени "попало" около 200 человек, пробиваются данные что они платили хакерам... И более 40 abuse жалоб создали на хакера.
Но не суть. Суть в том, что я пытаюсь понять, где дыра в моей системе. Я просчитываю эти три варианта:
1) Атака с соседнего контейнера - в этом суть вопроса, может ли быть? Сам не могу определиться.
2) Брутфорс атака индивидуально на мой контейнер, перебор пароля рута
3) SQL инъекция на мой php скрипт на web сервере.
Если по п.2 и п.3 все ясно, то вот п.1, если действительно такое возможно, несет большие проблемы тем, кто хостится на OpenVZ виртуалках, потому что достаточно тогда одного неадекватного "соседа" с установленным phpMyAdmin, чтобы он взломал ваши базы....
Вероятно, хакеры смогли каким-то образом получить вывод команды ps -ef на моей системе, а у меня там в крон тасках были скрипты для бэкапа базы, которым передавался пароль к базе в командной строке....
Но может быть и не в этом было дело.
Однако, пароли к базе из параметров командной строки я убрал.
phpmyadmin - это просто php приложение. Оно может стоять где угодно. И никакого отношения к вашему серверу не имеет
А вот если на ваш mysql сервер можно подключиться с любого адреса и перебирать пароли - ну тут вы сами себе злобный буратино
"Script kiddie attack on vulnerable PHPMYADMIN version with CVE (4.6.6)."
Вот я и проверяю эту гипотезу.
По сути, если такая атака реальна, то она не требует брутфорса и многомесячных переборов пароля рута. Достаточно будет только найти контейнер с уязвимой версией phpmyadmin.
Ок. Атака реальна. Взломали соседний phpmyadmin. Это обычное php приложение, доступ к серверу оно получает как обычный php скрипт - в конфиг файле прописан адрес сервера, логин и пароль.
Ну взломали, радостно получили доступ к серверу БД, который обслуживается этим phpmyadmin, почистили базы, еще что нить сделали.
У меня вопрос - при чем тут ваш сервер бд??? Он был указан в конфиге того phpmyadmin? Как доступ к вашему серверу БД то получится????
Руслан Федосеев, внимательнее читайте.
Оба сервера (мой и с дырявым phpmyadmin) - виртуальные, находятся НА ОДНОМ IP, технология виртуализации OpenVZ.
При соединении к БД функцией mysqli_connect указывается IP хоста, юзер, пароль. То есть при работе двух и более контейнеров OpenVZ на одном физическом сервере, Я ДУМАЮ и спрашиваю здесь - возможно ли получить доступ к БД на соседнем контейнере?
Впрочем, ждем прихода более подкованных в технологии виртуализации товарищей.
Nikita, это называется "Технология виртуализации".
Все сетевые пакеты данных, которые приходят на сетевую карту гипервизора, потом перенаправляются на какую-то (или может быть все? я не знаю) из виртуальных машин. Вот и спрашиваю тут, ищу эксперта.
Например, в протоколе HTTP 1.1 (в отличие от 1.0) есть строчка Host: example.ru сразу под GET / HTTP/1.1
Именно это и позволило запускать несколько веб-сайтов на одном IP, перенаправление на нужный веб-сайт идет по строчке Host.
Как идет (и идет ли вообще) перенаправление на нужный MySql сервер из ряда серверов, сидящих в разных контейнерах, но на одном по IP, следующей строке в my.cnf - я не знаю!:
# bind-address = x.x.x.x
(закомментированная строчка, т.е. бинд идет на ВСЕ интерфейсы, в т.ч. на внешний IP)
Может там броадкастом все сыпется на все БД сервера? Тогда пробой дырявого phpmyadmin будет означать получение рут доступа на ВСЕХ БД!
ну во первых - на одном порту несколько мускулов не будет.
Во вторых.
Ок, сломали пхп май админ. По вашей логике - не имеет значения, какой рут пароль на всех этих серверах?
пхпмайадмин не содержит никаких специфичных вещей, которые ему сразу дают рута на мускуле. Вот какой ему логин и пароль дали - такие права доступа на сервер бд у него и есть. И то, что проломили пхпмайадмин в одном контейнере - не оказывает никакого влияния на ваш контейнер.
Так что не пеняйте на соседние контейнеры, ищите проблему у себя.
danx, Я понимаю про технологию виртуализации, да и с логической стороны ситуации, зачем давать один IP на vps ? Это не шаред, это не целесообразно. Проще было в nat завернуть. А вообще, как вы поняли что у двух контейнеров вашего хостинг-провайдера одинаковые адреса ?
Руслан Федосеев, конечно не имеет значения, какой пароль рута! Эксплоит на то и рассчитан, чтобы получить привилегии рута при эксплуатации какой-то уязвимости в старом phpMyAdmin, и/или работающем на старом или с уязвимостью интерпретаторе php.
Еще раз - мы рассматриваем не штатную ситуацию, когда "программа" phpmyadmin работает, а именно пробой дыры в ней за счет использования уязвимости в ее или php старых версиях, например за счет sql injection или переполнения буфера.
Nikita, про одинаковые адреса я выдвинул гипотезу. Иначе как объяснить, если пробои такого рода у людей случаются из-за дырявых phpmyadmin (для которых есть эксплоиты и т.д), а у меня на сервере его не установлено, но сервер в виртуалке и сидит на одном железе с другими виртуалками.
danx, Сервер светит собой в сеть, т.е. слушает все интерфейсы, то есть любой человек может добавить ваш сервер к себе в pma и получить доступ. Ограничьте доступ к серверу. А по поводу адресов, в сети не может быть 2 устройства с одним IP, насколько мне известно.
Для работы master-slave репликации нужно, чтобы сервер биндился на внешнем интерфейсе.
Доступ рута с внешних адресов запрещен, другие юзеры бд имеют минимальные права. Но как-то же сломали!
Все может быть. Скачал последний Nessus 8.8.0, запустил скан уязвимостей, он ничего не нашел. Видимо, надо разбираться в Metasploit... Мне же надо знать, где дыра.