Содержимое
Как найти куда залили шелл?
Присказка
Вчера смотрел логи сего блога и увидел как некий товарищ упорно долбится к файлу /wp-login.php со скоростью пару запросов в секунду. На лицо подбор паролей или как оно правильно называется Bruteforce. Ну да ладно думаю, пусть долбится, что поделаешь, разве за всеми уследишь. Пароли я уже давно ставлю длиннющие и рандомные, так что не сильно страшно.
Но сегодня с утра блог почему то не пустил меня по старому паролю! Опа! Неужто подобрал таки? Пароль восстановил и сменил на еще более грозный. Стал смотреть, где да чего. Нет. Все вроде на месте. И тут задумался, а как же узнать куда из множества файлов был залит шелл. Или куда имплантирован.
По логике нужно искать файлы которые были недавно изменены или созданы. Как? Заходить по фтп и пересматривать все поддиректории? Это долго. Решил искать более легкий путь команду unix. Уверен, что многие читатели данной статьи закрыли ее сразу после того, как увидели это страшное слово UNIX. Не бойтесь, это будет не сложнее FTP.
Что делать? Ищем на сервере через SSH протокол.
И так приступаем к поиску шелла прям на сервере. Для этого нужно подключиться к нему по SSH протоколу. Это вовсе не сложно. Как это сделать я описывал в другой статье как быстро установить WordPress на сервер. В начале той статьи как раз описывается как и через что подключаться.
И так, будем считать, что Вы успешно подключились. Теперь для поиска файлов которые были недавно созданы или изменены на сервере используем команду.
find -type f -mtime -1
Можете просто скопировать эту команду и вставить ее в SSH клиент комбинацией клавиш Shift Insert, а затем нажать кнопку Enter.
Здесь find думаю понятно команда искать. искать в текущей директории и во всех ее поддиректориях. Лучше эту команду запускать из корня, а не из public_html директории. Хотя если нужно прочесать именно определенную директорию, то вместо нужно указать путь от текущей директории до необходимой ну например так ./www/domain.ru/public_html/ или как там у вас.
-mtime -1 означает искать за последний -1 день. Соответственно -mtime -3 означает искать за три последних дня.
Результат этой команды будет примерно такой
ufind
Смотрим файлы и ищем в них подозрительные. В первую очередь конечно же ищем файлы .php Всяческие шеллы обычно помещают в исполняемые файлы. Однако некоторые сервера настроены так, что php может исполняться и в .jpg файлах. А если правился .htaccess, то в первую очередь нужно смотреть чего там написали. В общем искать и проверять.
Вариант без SSH и команд Unix
Если мания преследования Вас не оставляет постоянно, а не только когда что то с сайтами случается не то то можно в крон записать вот такую строчку и настроить его на запуск раз в сутки.
find -type f -mtime -1 -exec ls -al mail -s «Изменения в файлах от `date +%D`» ваш@емэйл.ru
Эта команда будет искать все измененные файлы за последние сутки и слать их на почту в расширенном варианте.
P/S
Как не странно, но у себя ни чего подозрительного не нашел. Может не успели еще, а может и не ломали вовсе и мне все это приснилось, а с паролем глюк какой был. А может плохо и не там искал Хорошая статья? Полезная? Спорим все равно в закладки не положите А потом, если вдруг таки вскроют сайт будете искать эту инфу, но уже перебирая и осмысливая кучу нового контента. Да ладно, чего там, сам такой ????