How To: Send and receive files with Ncat (formerly NetCat)

As with any application in Linux, piping the output from an application to a logfile or perhaps another application. Can sometimes clarify what is going on. It would be even better if you could “cat” any output over the Network (Ncat, get it?) to another computer. That is where Ncat comes in.

First, some basics

  • ncat The command in question
  • -v Verbose output, recommended for testing
  • -l Tells ncat to listen
  • -k Tells ncat to keep the connection up (ncat exits on client disconnect by default)
  • -n Tells ncat to skip DNS resolution (not necessary when connecting/listening on plain IP’s)
  • –ssl Tells ncat to send data encrypted with ssl (optional)
  • –send-only Tells ncat to only send data (optional)
  • –recv-only Tells ncat to only receive data (optional)

Now, some examples

  • [Server] $ncat -l 1025 > file.txt [Client] $cat file.txt | ncat [IP of Server] 1025 – Sends “file.txt” to the server over port 1025
  • [Server] $ncat -lkv 12345 > file.txt [Client] $cat file.txt | ncat [IP of Server] 12345 – Sends “file.txt” to the server over port 12345. The server will verbosely print what is going on, and keep the connection open when the client disconnects
  • [Server] $ncat -lkvn –recv-only 1337 > supersecretfile.txt [Client] $cat supersecretfile.txt | ncat –send-only –ssl [IP of Server] 1337 – Sends “supersecretfile.txt” to the server over port 1337. The server will verbosely print output, keep the connection open and skip resolving DNS. While the client sends the data encrypted over ssl

Leave a Reply

Your email address will not be published. Required fields are marked *