Назад | Перейти на главную страницу

Боль при удалении руткита perl

Итак, мы размещаем геосервисный веб-сервер в офисе.

Кто-то явно взломал этот ящик (вероятно, через ftp или ssh) и установил какой-то руткит, управляемый irc.

Теперь я пытаюсь все это очистить, я нашел pid процесса, который пытается подключиться через irc, но я не могу понять, кто вызывает процесс (уже смотрел с ps, pstree, lsof) Процесс - это perl скрипт принадлежит пользователю www, но ps aux | grep отображает поддельный путь к файлу в последнем столбце.

Есть ли другой способ отследить этот pid и поймать вызывающего?

Забыл упомянуть: ядро ​​2.6.23, которое можно использовать для получения root-прав, но я не могу слишком сильно трогать эту машину, поэтому я не могу обновить ядро

РЕДАКТИРОВАТЬ: lsof может помочь:

lsof -p 9481
КОМАНДНЫЙ ПИД ПОЛЬЗОВАТЕЛЬ FD ТИП РАЗМЕР УСТРОЙСТВА ИМЯ УЗЛА
perl 9481 www cwd DIR 8,2 608 2 / сс
perl 9481 www rtd DIR 8,2 608 2 / сс
perl 9481 www txt REG 8,2 1168928 38385 /usr/bin/perl5.8.8ss
perl 9481 www mem REG 8,2 135348 23286 /lib64/ld-2.5.soss
perl 9481 www mem REG 8,2 103711 23295 /lib64/libnsl-2.5.soss
perl 9481 www mem REG 8,2 19112 23292 /lib64/libdl-2.5.soss
perl 9481 www mem REG 8,2 586243 23293 /lib64/libm-2.5.soss
perl 9481 www mem REG 8,2 27041 23291 /lib64/libcrypt-2.5.soss
perl 9481 www mem REG 8,2 14262 23307 /lib64/libutil-2.5.soss
perl 9481 www mem REG 8,2 128642 23303 /lib64/libpthread-2.5.soss
perl 9481 www mem REG 8,2 1602809 23289 /lib64/libc-2.5.soss
perl 9481 www mem REG 8,2 19256 38662 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / IO / IO.soss
perl 9481 www mem REG 8,2 21328 38877 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / Socket / Socket.soss
perl 9481 www mem REG 8,2 52512 23298 /lib64/libnss_files-2.5.soss
perl 9481 www 0r FIFO 0,5 1068892 pipess
perl 9481 www 1w FIFO 0,5 1071920 pipess
perl 9481 www 2w FIFO 0,5 1068894 pipess
perl 9481 www 3u IPv4 130646198 TCP 192.168.90.7:60321->www.****.net:ircd (SYN_SENT)

Если я могу дать вам какой-нибудь совет, прекратите тратить время на уборку. Создайте образ ОС для криминалистических исследований и просто переустановите сервер.

Извините, но это единственный безопасный способ избавиться от руткита.

Позже вы можете проверить изображение, по определенным причинам, почему это произошло.

Исходя из моего личного опыта, я сделал это, а позже нашел внутреннего пользователя, у которого в 2008 году был ключ SSH, содержащий недостаток openssl.

Надеюсь, это проясняет ситуацию.

Примечание:
Если вы собираетесь создать образ / резервную копию сервера перед переустановкой, очень осторожно, как ты это делаешь. Как сказал @dfranke, загрузитесь с надежного носителя для резервного копирования.

Вы не должны подключаться к другим машинам с корневого сервера, так как известно, что отличные руткиты могут распространяться через доверенные сеансы, такие как SSH.

Командная строка может быть изменена, если процесс изменяет argv [0]. Пытаться ls -l /proc/[pid]/exe

Из man 5 proc

этот файл представляет собой символическую ссылку, содержащую фактический путь к исполняемой команде. Эту символическую ссылку можно разыменовать обычным образом; попытка открыть его откроет исполняемый файл. Вы даже можете ввести / proc / [номер] / exe, чтобы запустить еще одну копию того же исполняемого файла, который запускается процессом [номер]. В многопоточном процессе содержимое этой символической ссылки недоступно, если основной поток уже завершился.

ps auxwf | less дает вам «лесное представление» процессов, которое может показать вам, какой процесс запустил этот процесс (если только руткит не скрывает его, или родительский компонент приложения не завершился, и он был изменен на init).

Это было бы в основном академическим и, вероятно, просто потерей времени, но strings -n 10 /proc/[pid]/mem может быть интересно посмотреть прокрутку прошлого. Вы также можете echo 0x7 > /proc/[pid]/coredump_filter и используйте gdb gcore для принудительного создания дампа ядра со всем возможным в нем, но затем процесс умирает, что может заблокировать дальнейший анализ.

Но обязательно прислушайтесь к совету Arenstar. Создайте резервную копию только данных, восстановите все исполняемые файлы из резервных копий и начните заново. Вероятно, вам также следует восстановить веб-сайт из резервных копий, поскольку в каждый файл html или php может быть добавлен вредоносный javascript. Если вы рассматриваете судебный иск, вам нужно просто отложить машину в сторону, отключить ее от сети и прекратить все, что вы делаете, до тех пор, пока судебные эксперты не сделают свою работу.

Я думаю, вы уже переустановили. Вы напрасно тратите время на отслеживание процессов и проведение криминалистической экспертизы, поскольку шансы на то, что что-то будет юридически развиваться на основе этого, очень мала, а шансы найти хакера в любом случае будут бесполезными. Если только вам не интересно исследовать и отменять руткиты, это может быть весело :)

Вам следует переустановить, я согласен. Вы пробовали избегать персонажей на пути? Возможно, одна из этих косых черт на самом деле является частью имени файла, а не каталога. По крайней мере, вы должны использовать iptables для блокировки исходящего трафика на этот хост или IRC в целом, пока не будет исправлено. Также проверьте netstat.

Попробуйте "cat / proc / [process id] / cmdline". Хотя, если это настоящий руткит, он может изменить ядро, чтобы лучше скрыть себя.