Всем привет!
Если у кого осталась проблема
с постоянной заменой .htaccess и корневого index.php, то можно попробовать следующее:
Вводим в ssh-консоли данную команду, и находим постоянно работающий процесс и запоминаем ID процесса, например, ID равен 22233. О процессах указывалось ранее на форуме, спасибо за подсказку!
В моем случае файл назывался lock666.php и больше постоянно работающих процессов не было, другие варианты файла могут быть перечислены в измененном .htaccess: <FilesMatch "^(votes.php|index.php|wjsindex.php|lock666.php|font-editor.php|contents.php|wp-login.php|load.php|themes.php|admin.php|settings.php|bottom.php|years.php|alwso.php|service.php|license.php|module.php)$">...
p.s. Интересно сделано, файл само удаляется, но работает из оперативы, как я понял.
- Убиваем данный процесс, зная его ID:
- Утилитой, например, через AI-Bolit проверяем файлы и удаляем шеллы;
- Иногда тот же AI-Bolit может пропустить скрипты, поэтому дополнительно можно поискать руками наличие в php строк eval(), preg_replace(), gzuncompress(), base64_decode() и удалить шеллы или починить битые файлы. К сожалению в Битрикс таких файлов оооочень много:
Код |
---|
grep -R 'base64_decode(' --include \*.php -o |
Еще полезно включить серверные логи и смотреть к каким файлам стучатся боты, чтоб их тоже снести, может какие-то были пропущены утилитой или руками.
Так же можно посмотреть файлы шеллов и искать по паттернам, которые используются в шеллах, например в коде может встречаться return substr.
- Проверяем корневые папки upload, images, css (может еще какие популярные папки) на наличие php-скриптов и удаляем ненужные:
Код |
---|
find . -type f -name "*.php" |
- Обновляем Битрикс, модули и решения;
- Проверяем модифицировалось ли ядро Битрикс:
Код |
---|
/bitrix/admin/checklist.php?lang=ru |
- Можно восстановить файлы ядра Битрикс. При открытии ссылки ниже, появится доп. вкладка (12 в ссылке - это текущее число):
Код |
---|
/bitrix/admin/update_system.php?BX_SUPPORT_PROTOCOL12=Y |
p.s. Так же, если в каждой папке у вас .htaccess, то можно снести их все, предварительно сохранив и исправив нужные, и закинув их обратно после удаления, например, корневой .htaccess.
Удаляем командой, через ту же консоль:
Код |
---|
find . -type f -name "*.htaccess" -exec rm -v {} \; |
В общем, после выполнения данных процедур проблем пока замечено не было. Удачи с починкой!