top of page

What is bind shell and reverse shell? Explain difference between them also explain what are different options in reverse and bind shell

Bind shell and Reverse shell are two different types of hacking techniques in order to gain unauthorized remote access to the compromised system or server or machine.


Before moving forward with the comparison of bind shell and reverse shell. Let’s understand what a ‘shell’?


A ‘shell’ is a software which acts as an intermediary between a user and a kernel or operating system. It enables the users to execute commands, manage files, and perform various tasks. The two main types of shell as follows:

  • Command-line shells include Bash (Bourne-Again Shell), Command Prompt (cmd.exe), PowerShell, etc.

  • Graphical User Interface (GUI) shell includes the desktop environments such as GNOME, Windows Desktop, etc.



Bind shell: Bind shell have the listener running on the target machine and the attacker connect to the listener in order to gain a remote shell. 



In the bind shell, the attacker sets up a program or launches a service, such as Netcat on the target/victim machine that binds to a specific port and listens for incoming connections. In a bind shell, an attacker can gain access to the command shell and execute the command on the target machine or system once the connection is established.


Note: In order to launch a bind shell, the attacker must have an IP address with a specific port number of the victim machine.


Reverse shell: Reverse shell has the listener running on the attacker machine and the target machine connects to the listener with a shell.



In the reverse shell scenario, the attacker sets up a listener on its side (attacker) and sets up a payload on the victim machine that connects back to the attacker machine. The attacker’s machine is configured to listen for incoming connections on a specific port. After the successful connection, the attacker can gain access to the shell of the target computer.


Note: In order to launch a reverse shell, the attacker doesn’t need to know an IP address of the victim machine.


Basic command options as follows:


nc : The command to use netcat

-l : This option tells netcat to listen for incoming connections. It put netcat in “listening mode” so the it can act as a server and wait for connecting to come in

-v : The verbose option which provides more detailed output, useful for debugging and monitoring the connection

-p : Specific the port number on which netcat will listen for incoming connection


Helpful resources:


1 view

Recent Posts

See All
bottom of page