Назад | Перейти на главную страницу

Удаленный доступ к незащищенной учетной записи MySQL 'root' @ 'localhost'?

Немного предыстории: мы только что взломали нашу АТС. Сам сервер кажется безопасным (нет зарегистрированного несанкционированного доступа к консоли - 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.

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

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

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

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

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

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

показывать статус типа «Aborted_connects»;

Нет.

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

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