如何在Linux上查看调用脚本

如何在Linux上查看调用脚本

我正在尝试编写一个脚本来帮助保护计算机安全。我正在尝试查找开放端口、查找 PID 以及查找调用它的人。

我已经让它工作了,我的输出看起来像这样:

IPV4-1234-2566/nc

运行自:/bin/nc.openbsd

命令运行:nc -l 1234

但是,在寻找后门的过程中,我的计算机某处可能有一个脚本会调用nc。 能否从 的 PIDnc找到原始脚本的位置?

说在/etc/rc.local我放了这行字的时候nc -l 1234,我能得到一些东西来告诉我该nc命令是由什么打开的/etc/rc.local吗?

谢谢!

PS:我觉得这比 stackoverflow 更适合这里,因为这个问题是 Linux 的问题,而不是我的脚本的问题。

答案1

要获取父进程的 PID,可以使用以下命令:

ps -ef

它将为您提供一个包含两个 PID 的进程列表。

如果命令是从脚本启动的,那么命令返回的 PPID(父进程 ID)将是启动它的脚本的 PID。

答案2

我最终使用了以下内容:

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 命令的文件。

看起来有点乱,所以如果有人能帮忙清理一下就好了:)

谢谢大家的帮助!

相关内容