Есть сервер — на котором стоит зоопарк разных сайтов, на всяческих платформах.
Позним ночером мне стукнул владелец данного зоопарка, и попросил помогти вичистить ифрейм с его сайта.
В результате чего и был написан данный пост — как памятка для себя и для тех, кто не особо разбирается в администрировании(как я), но сайты нужно почистить здесь и сейчас.
Сразу зделаю оговорку, я ни разу не администратор, хотя базовый набор команд, для работы в командной строке знаю.
Вы владелец сайта, вы его систематически обновляете, и само-собой у вас есть его бекап, ну или хотя бы древняя копия движка.
Сайт кторый находиться по пути /var/www/domain.com, вы заметили что у вас начало что то не так работать, или появился дополнительный контент который вы не выводили итд.
Минимальный порядок действий которые надо выполнить чтоб вычистить всякие бекдоры и закладки из ваших файлов:
find /var/www/domain.com/ -printf '%CD %CT %pn' | sort -n|grep php
команда показывает нам измененные файлы php, отсортированные по дате — самые новые — внизу
На этом можна закончить, так как проще всего дальше сравнить показанные файлы с эталоном вашего движка.
Но если вы еще беспокоитесь про свой парк сайтов — можете прогнать команду для поиска всяких маркеров которые в 80% случаев актуальны для веб-шеллов
grep '((eval.*(base64_decode|gzinflate|$_))|$[0O]{4,}|FilesMan|JGF1dGhfc|IIIl|die(PHP_OS|posix_getpwuid|Array(base64_decode|document.write("\u00|sh(3(ll|11)))' /var/www/ -roE --include=*.php*
думаю что она тоже поймает несколько веб-шеллов, не факт что новых — иногда они лежат чуть ли не годами, особенно когда у вас есть/была привычка ставить всякие нулленые скрипты
И на остаток если и предыдущий вариант вас не удовлетворил, можна попробовать запустить команду которая зделает поиск по наличию закодированного в файлах base64 кода длинной более 30 символов(в большинстве случаев именно так маскируют всякие закладки, или выводы ифрейма)
grep '[A-Za-z0-9+/]{30,}' /var/www/ -roE --include=*.php*
Так же есть несколько вариантов — чтоб поискать еще следы, либо потенциальные дырки:
— Если нашли файл с шеллом, и он недавний — смотрим в access логах веб сервера ИП пользователя который заходил на данный урл, а дальше уже следим за его действиями как в access так и в error логах, иногда так вы можете увидеть способ как вас ломанули.
ПС: это был самый базовый набор команд и действий для поиска
Автор: smolyar