プロセスの親プロセスを見つける

プロセスの親プロセスを見つける

コンピュータのセキュリティに役立つスクリプトを作成しようとしています。私は開いているポートを探して、PIDを探して、それを呼び出すものが何であるかを探そうとしています。

私はそれを動作させ、私の出力は次のようになります:

IPV4 - 1234 - 2566/nc
Running from: `/bin/nc.openbsd`
Command run: `nc -l 1234`

この値はどこで取得できますかnetstat/proc/$PID/exe/proc/$PID/cmdline

しかし、バックドアを見つける特性上、私のコンピュータのどこかにncnc他のファイルも閲覧しましたが、/proc/$PID/*役に立ちませんでした。

/etc/rc.local私が1行を入力したとしましょうnc -l 1234。 ncコマンドがによって開かれたことを知らせる内容を取得できますか/etc/rc.local

答え1

プロセスの親PIDを移植可能にするには、次のようにします。

ps -p "$PID" -o ppid=

または(Linuxの場合):

grep '^PPid' "/proc/$PID/status" |cut -f2

その他の方法については、次をご覧ください。https://superuser.com/questions/150117/how-to-get-parent-pid-of-a-given-process-in-gnu-linux-from-command-line

答え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/.$//')"

スクリプトを含むディレクトリ内のファイルを繰り返しgrepして、ncコマンドを実行するためのコマンドラインを含むファイルを見つけます。

少し汚れているようですが、誰かがきれいになるのを手伝ってくれたらいいと思います:)

ご協力ありがとうございます!

答え3

次のコマンドを使用してpidの実行場所を取得できます

ls -l /proc/PID_id/cwd

関連情報