Найти файл, запускающий процесс - PullRequest
0 голосов
/ 10 ноября 2009

Я думаю, что мой сервер был скомпрометирован и на нем запущено много процессов perl. Однако я не знаю, из какого файла они запускаются, поэтому я могу удалить его. Как я могу найти эту информацию?

Ответы [ 6 ]

1 голос
/ 16 ноября 2009

Если ваша система была взломана, вы не можете доверять ни программному обеспечению, ни даже ядру. Отформатируйте диск и переустановите все. Нет никакого способа убедиться, что вы вылечили инфекцию, потому что вы не можете доверять тем самым инструментам, которые вы использовали бы для очистки вещей. Вы не можете копировать новые инструменты в коробку, потому что не можете доверять демону SSH или команде / bin / cp. Все, что угодно - ls, vi, ps, cat, dd и т. Д. - можно было заменить трояном, который скрывает зараженные файлы.

0 голосов
/ 10 декабря 2009

Попробуйте ls -l /proc/<pid>/exe или ls -l /proc/<pid>/fd. Я не помню, если Perl сохраняет файл скрипта открытым после запуска программы, но если это так, то это будет один из дескрипторов файла процесса.

Но если ваша система pwned, не ожидайте, что что-то будет иметь смысл.

0 голосов
/ 10 ноября 2009

Аудит файловой системы может помочь увидеть здесь

pstree также может помочь

0 голосов
/ 10 ноября 2009

Первое, что я хотел бы сделать, это посмотреть на идентификатор родительского процесса (PPID). Тем не менее, если PPID равен 1, это ничего вам не говорит.

0 голосов
/ 10 ноября 2009

Вы можете проверить символическую ссылку /proc/pid/cwd, также проверить ppid из ps(1).

0 голосов
/ 10 ноября 2009

Если вы запустите команду "ps -ef", вы должны получить список всех процессов, запущенных на вашем компьютере. Каждый процесс будет иметь идентификационный номер процесса (PID), а также parent PID. Найдите процесс оскорбления и проверьте их родительские PID. Затем найдите процесс с соответствующим PID, и он должен быть вашим виновником.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...