コンピュータのセキュリティに役立つスクリプトを作成しようとしています。私は開いているポートを探して、PIDを探して、それを呼び出すものが何であるかを探そうとしています。
私はそれを動作させ、私の出力は次のようになります:
IPV4 - 1234 - 2566/nc
Running from: `/bin/nc.openbsd`
Command run: `nc -l 1234`
この値はどこで取得できますかnetstat
?/proc/$PID/exe
/proc/$PID/cmdline
しかし、バックドアを見つける特性上、私のコンピュータのどこかにnc
。nc
他のファイルも閲覧しましたが、/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