컴퓨터 보안에 도움이 되는 스크립트를 작성하려고 합니다. 나는 열린 포트를 찾고, 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