MySQL Pentest Cheat Sheet
Пентест для MySQL — это процесс тестирования безопасности баз данных, нацеленный на выявление уязвимостей и потенциальных проблем безопасности. Ниже представлен набор полезной информации и команд для проведения такого теста.
Основные Команды
1. Подключение к базе данных
— `mysql -u username -p -h host database`
2. Управление пользователями
— Добавление пользователя:
«`sql
CREATE USER ‘newuser’@’host’ IDENTIFIED BY ‘password’;
«`
— Удаление пользователя:
«`sql
DROP USER ‘username’@’host’;
«`
3. Права доступа
— Предоставление прав:
«`sql
GRANT ALL PRIVILEGES ON database.* TO ‘user’@’host’;
«`
— Отзыв прав:
«`sql
REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘user’@’host’;
«`
4. Просмотр пользователей и привилегий
— Список пользователей:
«`sql
SELECT user, host FROM mysql.user;
«`
— Права доступа пользователя:
«`sql
SHOW GRANTS FOR ‘user’@’host’;
«`
Обход аутентификации
1. Использование старых паролей
— Попробовать известные или общие пароли.
2. Обход через конфигурационный файл
— Проверить наличие строки `skip-grant-tables` в конфиге MySQL, что позволяет доступ без авторизации.
3. Использование SQL инъекций
— Ищите уязвимые места для выполнения произвольных SQL-команд через внешние запросы к базе данных.
Конфигурация и настройки
1. Проверка конфигурации
— `SHOW VARIABLES LIKE ‘secure_file_priv’;` — Путь для загрузки файлов.
— `SELECT @@GLOBAL.GTID_PURGED;` — Информация о GTID.
2. Включенные функции и расширения
— `SHOW PLUGINS;` — Список включённых плагинов.
3. Использование общих файлов конфигурации
— Проверка файлов `/etc/my.cnf`, `/etc/mysql/my.cnf`.
Аудит и мониторинг
1. Логирование действий пользователей
— Включение логов аудита:
«`sql
INSTALL PLUGIN audit_log SONAME ‘audit_log.so’;
«`
2. Анализ журналов
— Проверка `mysql.log`, `general_log` и других релевантных файлов логов.
Защитные механизмы
1. Использование SSL/TLS
— Включение соединений через SSL:
«`sql
SHOW VARIABLES LIKE ‘have_ssl’;
«`
2. Проверка наличия брандмауэров и фильтрации IP
— Правила для `mysqld` в `/etc/mysql/my.cnf`.
Использование утилит
1. mysqlslap — Тестировать производительность базы данных.
2. mysqlcheck — Проверка целостности таблиц и индексов.
Этот набор команд и рекомендаций поможет в проведении пентеста для MySQL, выявляя потенциальные уязвимости и проблемы с безопасностью. Всегда следует действовать в рамках закона при проведении тестирования безопасности.