Как найти путь до скрипта подбирающего пароль mysql?

Есть сервер с кучей web-проектов. Снаружи доступ к mysql закрыт, доступ по SSH пользователям закрыт. В /var/log/messages периодически появляется строка типа mysqld: 2020-07-29 10:10:22 140000674043648 [Warning] Access denied for user 'admin'@'localhost' (using password: YES)
Логины бывают разные. Иногда совпадают с названиями доменов иногда нет.
Вопрос в том, как узнать, где лежит скрипт который используют для подбора пароля?
general_log включать не вариант. Запросов настолько много, что собирается по миллиону записей за 3 секунды работы. Вот как бы записать именно запросы завершающиеся Access denied и с путем до скрипта который для попытки аторизации использовался?
  • Вопрос задан
  • 1116 просмотров
Решения вопроса 1
2ord
@2ord
sudo cat /var/log/mysql/error.err | egrep '[aA]ccess denied'

https://serverfault.com/a/455610

Добавлено
Надо, собственно, отключить этот сервер от продакшена, от греха подальше и на нём проводить эксперименты. А для продакшена подготовить свежеустановленную ОС с более серьезным подходом к защите.
Если есть спортивный интерес обнаружить зловред, то:
  1. вместо действительного MySQL запустить программу-приманку.
    https://github.com/sjinks/mysql-honeypotd
  2. далее, можно установить atop, acct:
    sudo apt install acct atop
    atop собирает информацию о производительности системы и запускаемых процессах
    acct ведет мониторинг активности пользователей (в частности, sa выводит список процессов)

    https://haydenjames.io/use-atop-linux-server-perfo...
    https://www.tecmint.com/how-to-monitor-user-activi...

    соберет статистику за полдня-день и тогда можно анализировать историю так:
    atop -r /var/log/atop/atop_20200729
  3. Если не хватит, то у меня появилась такая идея: можно написать программу. Она может слушать на порту 3306 и регистрировать IP адрес и также узнавать номер процесса клиента, по которому можно узнать и путь и от какого пользователя запущен.
    Узнать номер процесса по прослушиваемому порту
    sudo lsof -i :2345
    Узнать что за пользователь и откуда запускается
    ls -l /proc/6726/exe
    pwdx 6726


Ответ написан
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
netstat -> grep -> файл

либо лог через grep
Ответ написан
Комментировать
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
вариант прошерстить все файлы на сервере на наличие строки "Admin2"
может быть найдется брутфорс скрипт с списком дефалт логинов или текстовый словарь и тд
find / -type f | xargs grep "Admin2"

можно искать не от корня, а например в /home или /var и тд
Ответ написан
Комментировать
@AlexPetroff
Если бы что-то пыталось подобрать пароль изнутри... не проще ли было бы посмотреть логин/пароль в настройках проектов?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы