프로세스의 상위 프로세스 찾기

프로세스의 상위 프로세스 찾기

컴퓨터 보안에 도움이 되는 스크립트를 작성하려고 합니다. 나는 열린 포트를 찾고, 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내가 한 줄을 입력한다고 가정해 보겠습니다 nc -l 1234. nc 명령이 에 의해 열렸다는 것을 알려주는 내용을 얻을 수 있습니까 /etc/rc.local?

답변1

프로세스의 상위 PID를 이식 가능하게(POSIXly) 얻으려면 다음을 사용할 수 있습니다.

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

관련 정보