
Netcat is the traditional "Swiss Army Knife" of networking. It is used to manually perform all kinds of network interactions, including things like banner grabbing during enumeration, but more importantly for our uses, it can be used to receive reverse shells and connect to remote ports attached to bind shells on a target system. Netcat shells are very unstable (easy to lose) by default, but can be improved by techniques that we will be covering in an upcoming task.

- Server
- Client

## Reverse Shell

This starts a listener to catch any connection on the specific port:
```Terminal
nc -lvnp <port-number>
```
-   -l                   ---> Listen mode
-   -v                  ---> Verbose output
-   -n                  ---> Numeric only; no resolution of hostname via DNS
-   -p                  ---> Specify the port number


## Bind Shell

This starts a listen server and binds the shell information to the open port:
```
nc -lvnp <IP-OF-TARGET> <PORT>
```




