Я пытаюсь написать сценарий, чтобы помочь с компьютерной безопасностью. Я пытаюсь найти открытые порты, найти PID и найти, как это называется.

У меня это работает, где мой вывод выглядит примерно так:

IPV4 - 1234 - 2566/ нк

Работает с: /bin/nc.openbsd

Командный прогон: nc -l 1234

Однако из-за поиска бэкдоров на моем компьютере может быть сценарий, который будет называться nc . Можно ли из PID nc найти исходное местоположение скриптов?

Скажем, в /etc/rc.local я поставил строку nc -l 1234 , Могу ли я получить что-то, что скажет мне, что команда nc была открыта /etc/rc.local?

Спасибо!

PS Я чувствовал, что это больше подходит здесь, чем stackoverflow из-за проблемы, связанной с проблемой Linux, а не с моим сценарием.

2 ответа2

1

Чтобы получить PID родительского процесса, вы можете использовать команду:

ps -ef

Он предоставит вам список процессов, который включает оба идентификатора PID.

Если команда была запущена из сценария, то PPID (идентификатор родительского процесса), который возвращает команда, будет идентификатором PID сценария, который ее запустил.

0

Я закончил тем, что использовал следующее:

grep -r "$command" $(ls -l /proc/$pid/cwd | awk '{ print $11 }') | awk -F: '{ print $1 }'

Где $command="$(cat /proc/$pid/cmdline | sed 's\x0/ g' | sed 's/.$//')"

Который будет рекурсивно просматривать файлы в каталоге, в котором находится скрипт, чтобы найти файл, содержащий команду nc.

Кажется, что это немного грязно, так что если кто-нибудь может помочь немного почистить это, было бы здорово :)

Спасибо за помощь, ребята!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .