если хочешь понять первопричину взлома - грепай логи веб серверов,ftp и ssh коннектов
если хочешь усложнить атакующему жизнь и минимизировать удар:
Код:
chown -R 0:0 /site1.com/public_html/
find /site1.com/public_html/ -type f -exec chmod 644 {} \;
find /site1.com/public_html/ -type d -exec chmod 755 {} \;
на те директории, в которые нужно писать всем(например uploads,cache,images), устанавливаешь права 777 и через .htaccess отключаешь php движок в этих директориях
таким образом, если атакер заливает шелл через уязвимость в CMS, то больше не зальёт ибо в общедоступных директориях его шелл не запустится, а если его шелл уже надёжно спрятан и ты его не можеш найти - то он всё равно не сможет записать свой вредоносный код в index.php ибо прав нет
ну и конечно поменять все пароли на ftp/ssh, обновить все пакеты до актуального состояния
если после всего проделанного всё равно внедряют код в файлы сайта - значит у атакера есть root привилегии, а это значит только одно:туши свет и бросай гранату(сноси всю ОС и ставь всё по новой)