vBulletin, вирус и странный админ.

Nov 27, 2011 21:09

Как обычно "сухо-техническая" инфа - тут.
Стучится тут мне вчера уже ближе к ночи в скайп человек. Спасай, говорит, форум лежит, на вирус ругается. Ну ладно, думаю, пуркуа бы и не помочь человеку, особенно если "не даром"? Начинаю выяснять, что и как с сервером. И тут же у меня случается первый /dev/palm > /dev/face - мне прямо сразу выдают пароль от root-записи и говорят, что именно так по ssh и заходят. Сами ничего не знают, да. Им админ это когда-то настраивал, после чего покинул их.
Фейспалм намбер ту - пароли ssh- и ftp-доступы (как выяснилось позднее - ещё и на одну из баз mysql) одинаковы.
Третье "лицорука" - с сервера безбожно выпилен phpMyAdmin как исторический факт даже. Т.е. он где-то есть, но не работает. Чего и почему - разбираться было лень. Попробовал залить на сервер свою папку с "админом", но и она не заработала.

Ну ладно, думаю, где наша не пропадала. Начинаю копать. 
Сразу выясняю, что файлы сами по себе не тронуты. Начинаю копать в сторону базы. "Выщипываю" явки, имена и пароли из файлов конфигурации (для vBulletin это "папка_с_форумом/includes/config.php"), захожу по ssh. 
Делаю:
mysql -u вытащенное_из_файла_конфигурации_имя_пользователя -p
Ввожу пароль из того же файла. Итак, я внутри mysql. Делаю:
use имя_базы_данных_из_файла_конфигурации;
show tables;
Ищу глазами ту таблицу, где могут оказаться коды шаблонов. Нашёл - template.
Делаю "exit" из mysql, и вбиваю в консоль следующее:
mysqldump -u имя_из_конфига -p имя_базы_из_конфига template > temp.sql
В итоге всех этих махинаций получаю файлик (temp.sql), в котором хранится дамп нужной мне таблицы. Сливаю этот файл себе на локальный компьютер, где сталкиваюсь с тем, что он, зараза, слишком большой и в локальном phpMyAdmin экспортироваться не хочет. Снова консоль (уже локальная):
mysql -u локальный_юзер -p локальная_база < temp.sql
После чего у меня на локальном сервере появилась нужная мне таблица. Затем захожу в свой phpMyAdmin, делаю поиск по нужной таблице с примером вредоносного кода. Нахожу его в четырёх местах и в двух записях. Удаляю.
Теперь обратный порядок. На локальном компе:
mysqldump -u локальный_юзер -p локальная_база template > new.sql
Заливаю этот файл на сервер и там выполняю:
mysql -u имя_из_конфига -p имя_базы_из_конфига < new.sql
Ииииии... Всё, на сайте вируса нет.
Теперь остаются мелочи - меняем пароли. На стороне сервера делаем:
mysql -u имя_из_конфига -p

UPDATE user SET Password=PASSWORD(’newpassword’) WHERE User=’имя_из_конфига’; 
FLUSH PRIVILEGES;
exit;
service mysql restart 
Последнее - это уже на всякий случай. После чего вписываем новый пароль в файл конфигурации ("папка_с_форумом/includes/config.php") и всё.

Вроде не так сложно, как казалось изначально. Неплохая разминка для мозга, повод вспомнить навыки "консольного" mysql и mysqldump. Плюс ещё определённая сумма на электронный счёт. Считаю - вполне себе причина на то, чтобы убить на сие занятие несколько ночных часов :)

IT-образование, rtfm, Из жизни сисадмина

Previous post Next post
Up