Доступ к незащищенной учетной записи root в MySQL @ localhost осуществляется удаленно?

8

Немного предыстории: мы только что взломали нашу систему АТС. Сам сервер кажется безопасным (нет зарегистрированного несанкционированного доступа к консоли - SSH и т. Д.), Но каким-то образом хакерам удалось внедрить нового пользователя-администратора в программное обеспечение УАТС (FreePBX, поддерживаемое MySQL). Логи Apache подразумевают, что хакерам удалось добавить пользователя без использования веб-интерфейса (или какого-либо эксплойта в веб-интерфейсе).

Теперь я обнаружил, что MySQL работает без пароля root (!!) и открыто привязан к внешнему IP-адресу (очевидно, я сейчас заблокировал это). Однако единственным пользователем корневого уровня в MySQL был 'root'@'localhost'и 'root'@'127.0.0.1', оба из которых должны были быть доступны только локально.

Итак, мой вопрос заключается в следующем:

Есть ли способ подделки соединения с MySQL, чтобы он позволял подключаться к пользователю 'root' @ 'localhost' с удаленного IP-адреса, БЕЗ выполнения какого-либо другого эксплойта локально?

Для справки - это Centos 5 (Linux 2.6.10) под управлением Mysql 5.0.95.

TFK
источник
Было бы лучше подходит для ServerFault - здесь оффтоп.
Капа
Я не был уверен - мое личное мнение заключалось в том, что, поскольку речь идет не столько о проблемах с конфигурацией / администрированием сервера, сколько о попытке использовать потенциальную ошибку в MySQL, которая могла бы быть лучше здесь. Извиняюсь, если люди считают, что я не на этом сайте / разделе.
TFk
2
На самом деле, это, вероятно, принадлежит security.stackexchange.com
1
Вы говорите, что «единственным пользователем корневого уровня был root @ localhost», но были ли другие пользователи? Вам не нужен пользователь корневого уровня, чтобы добавить запись. Кроме того, вы должны искать уязвимости во FreePBX, как эта .
Маркус Адамс
Эксплойт по вашей ссылке был исправлен в моей версии FreePBX, но да, я согласен, что уязвимости FreePBX являются наиболее вероятной точкой входа, за исключением того, что я не могу найти ничего в моих журналах доступа Apache, согласующихся с какой-либо из (не исправленных) известных уязвимостей , Хороший вопрос с другими пользователями - единственным другим пользователем в БД была звездочка, которая имеет (не по умолчанию) пароль. Если это была точка входа, то это снова указывает на (возможно, еще не выпущенную) уязвимость FreePBX. «Пароль без root» казался такой большой дырой по сравнению с новым недокументированным эксплойтом FreePBX. Отсюда мой вопрос / пост.
TFk

Ответы:

1

Нет.

MySQL никогда не будет входить в систему пользователя с указанием localhostили 127.0.0.1хоста, если вы не из локальной системы. Обратите внимание, что это также охватывает уязвимость обхода аутентификации, CVE 2012-2122; сравнение паролей может быть обмануто, но сравнение хостов - нет.

Вам нужно что-то в системе, чтобы отключить прокси, чтобы «обмануть» проверку исходного хоста. Вспоминается что-то вроде phpmyadmin или балансировщик нагрузки, такой как HAProxy, работающий перед TCP-портом MySQL.

Шейн Мэдден
источник
Это то, что я подозревал, а это значит, что, несмотря на плохой пароль root, это, вероятно, не эксплойт. Всегда хорошо узнать мнение - Большое спасибо.
TFk
2

Имя rootсоздано по умолчанию и очень хорошо известно. Корень литерального значения не имеет никакого значения в системе привилегий MySQL. Следовательно, нет необходимости продолжать с именем пользователя root.

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

Например: если у вас есть пользователь с именем root@, localhostкоторый всем известен, и, следовательно, хакеры попытаются подключить его, вы должны изменить его на что-то конкретное, например admin_db_name@, localhostдля большей безопасности.

Контролируйте переменную состояния, вызываемую Aborted_connectsпериодически, чтобы узнать Refusedсоединение с вашим сервером MySQL, оно должно быть 0 после Flush status;команды и не должно увеличиваться дальше.

показывать статус как 'Aborted_connects';

Махеш Патил
источник
2

Включает ли «отсутствие зарегистрированного несанкционированного доступа» неудачные попытки входа в систему? Если нет, то это может быть CVE 2012-2122 .

[...] при выполнении в определенных средах с определенными реализациями функции memcmp (MySQL) позволяет удаленным злоумышленникам обходить аутентификацию, многократно проходя аутентификацию с тем же неверным паролем, что в конечном итоге приводит к успешному сравнению токена из-за неправильно проверенной проверки возвращаемое значение

samuirai
источник
Мой «нет зарегистрированного несанкционированного доступа» был крайне двусмысленным - я имел в виду, что ни одному злоумышленнику не удалось получить консольный доступ к серверу (например, через SSH). Кроме того, похоже, что сборки Centos не затронуты (< community.rapid7.com/community/metasploit/blog/2012/06/11/… ), но, безусловно, это то, что я искал.
TFk