Веб-сервер Ubuntu, который я только что унаследовал, был взломан. Я администратор Windows и не очень хорошо знаком с Linux.
Как мне выяснить, что продолжает порождать процессы Perl? Я убил пару десятков экземпляров / usr / bin / perl, но они сразу же появляются снова. Я даже переименовал / usr / bin / perl, но процессы все равно возвращаются.
Я понимаю, что мне придется взорвать сервер, но мне нужно настроить замену, прежде чем я смогу отключить веб-сайт.
Если вы уверены, что он взломан, и это не является некорректным или нормальным поведением службы или задания cron на сервере, то первое, что вам нужно сделать, это убрать его из сети. Поместите страницу быстрого обслуживания или что-нибудь, уведомляющее клиентов / пользователей о том, что сайт не работает на обслуживание.
Вы не окажете себе никакой пользы, если ваш сайт будет помечен компаниями Google, Microsoft и AV как обслуживающий вредоносный контент. Или если он рассылает спам или используется как трамплин для атаки на другие серверы.
Создайте образ системы, а затем выполните ядерную зарядку и перестройте ее, чтобы как можно быстрее вернуть ее в рабочее состояние. Теперь, когда пожар погас, вы можете сосредоточиться на использовании этого образа и, возможно, даже на восстановлении образа на виртуальной машине для проведения криминалистической экспертизы.
проверьте / etc / inittab на наличие чего-либо подозрительного:
0:2345:once:/usr/sbin/ttyload
был бы одним из таких сценариев. Возможно, вы удалили / переименовали / usr / bin / perl, но в Debian / Ubuntu также будет /usr/bin/perl5.10.1 (или любая другая установленная вами версия). Perl4 тоже может быть у вас на компьютере.
Пытаться chkrootkit
, работал у меня несколько десятилетий назад.
Другой вариант был rkhunter
.
Эти два могут помочь вам идентифицировать файлы, добавленные в вашу ОС, а также удалять, деактивировать некоторые из них. Я использовал и то, и другое, чтобы провести криминалистическую экспертизу того, как система была изменена после того, как служба была использована.
HTH
Какой идентификатор родительского процесса у этих новых процессов? Использовать ps -lp <PID>
. В списке будет столбец PPID, который включает идентификатор процесса программы, запустившей его.
редактировать Как насчет получения дополнительной информации трудным путем. Перейдите в / proc // и проверьте там значения некоторых программных ссылок. Например, «cwd» будет указывать на рабочий каталог сценария, а «exe» будет указывать на задействованный исполняемый файл. Это может дать вам некоторую полезную информацию. Либо прикрепите strace к процессу через strace -p <pid>
и посмотрите, какие звонки он делает.
- Кристофер Карел