Diferencia entre Bind Shell y Reverse Shell
Diferencia entre Bind Shell y Reverse Shell

Diferencia entre Bind Shell y Reverse Shell

Explorando las técnicas de acceso remoto en el mundo de la ciberseguridad: Descubre la diferencia entre Bind Shell y Reverse Shell. En este artículo, desentrañaremos los conceptos detrás de estas dos estrategias utilizadas en pruebas de penetración y cómo funcionan en situaciones específicas.

¿Qué es SHELL?

Un shell es un software que actúa como intermediario entre el usuario y el kernel. Proporciona al usuario una interfaz que da acceso a los servicios del kernel.

En otras palabras, shell es un programa que interpreta nuestras órdenes y las transmite al sistema operativo. Éste actúa como interfaz entre el usuario y el sistema operativo.

Toma la entrada del teclado y se la da al sistema operativo, y el terminal te permite introducir comandos e interactuar con el shell.

Ejemplo de shell en Kali Linux
Ejemplo de shell en Kali Linux

Algunos shells populares son:

  • Windows PowerShell
  • Command Prompt (Línea de comandos de Windows)
  • Bash (Bourne Again SHell)
  • sh (Bourne SHell)
  • Csh (C SHell)
  • dash (Debian Almquist SHell)
  • Zsh (Z Shell)
  • Ksh (Korn SHell)

Qué es el Puerto

En palabras sencillas, un puerto es una apertura a través de la cual se puede establecer una conexión.

Por ejemplo, cuando visitas esgeeks.com, la conexión se establecerá con el puerto 443 porque HTTPS y el servidor utilizan el puerto 443 para conectarse.

Los puertos son números asociados a direcciones IP.

Algunos puertos de uso común son:

  • 20 – FTP
  • 22 – SSH
  • 25 – SMTP
  • 80 – HTTP
  • 443 – HTTPS
  • 465 – SMTPS
  • 587 – SMTP
  • 993 – IMAP

Qué es Bind Shell

Ilustración de Bind Shell
Ilustración de Bind Shell

Bind shell es un tipo de configuración en la que se establecen consolas remotas con otros ordenadores a través de una red.

En Bind shell, un atacante ejecuta un servicio en el ordenador objetivo al que el atacante puede conectarse.

En bind shell, un atacante puede conectarse al ordenador objetivo y ejecutar comandos en él.

Para ejecutar el bind shell, el atacante debe tener la dirección IP de la víctima para acceder al ordenador objetivo.

Ejemplo de Bind Shell

Supongamos que eres un administrador de sistemas y deseas acceder de forma remota a una máquina con sistema operativo Linux para realizar tareas de mantenimiento o configuración. Sin embargo, debido a las restricciones de seguridad, la máquina solo permite conexiones entrantes en ciertos puertos específicos.

Para lograr el acceso remoto a través de Bind Shell, puedes seguir estos pasos:

En la máquina objetivo (la que deseas acceder de forma remota), ejecutas un comando similar al siguiente en la línea de comandos:

nc -lvp 4444 -e /bin/bash

El comando nc (Netcat) es una utilidad de red que permite la transferencia de datos a través de la red. Con la opción -lvp, le estás indicando que escuche en el puerto 4444 (-l para escuchar, -p para el puerto). La opción -e /bin/bash indica que cualquier conexión entrante en ese puerto será redirigida a un shell de comandos (/bin/bash), lo que esencialmente crea la “Bind Shell”.

Una vez que el comando se está ejecutando en la máquina objetivo, está a la escucha en el puerto 4444. Ahora, desde tu máquina local (la que usas para administrar la máquina objetivo), puedes conectarte a la Bind Shell usando el siguiente comando:

nc <dirección_IP_objetivo> 4444

Reemplaza <dirección_IP_objetivo> con la dirección IP de la máquina objetivo.

Al ejecutar el comando anterior, establecerás una conexión a la Bind Shell en la máquina objetivo. Ahora, tendrás acceso al shell de comandos de la máquina remota desde tu máquina local. Puedes enviar comandos y recibir resultados en tiempo real, lo que te permite realizar tareas de mantenimiento o configuración en la máquina remota.

asd

Qué es Reverse Shell

Ilustración de Reverse Shell
Ilustración de Reverse Shell

El shell inverso o Reverse Shell es un esquema en el que el atacante debe primero iniciar un servidor en su máquina, y la máquina objetivo debe actuar como un cliente que se conecta al servidor servido por el atacante.

Una vez que la conexión tiene éxito, el atacante puede acceder al shell de la máquina objetivo.

Para ejecutar Reverse shell, el atacante no necesita conocer la dirección IP de la víctima para acceder al equipo de destino.

Aquí tienes algunos ejemplos de práctica: EVILREG: Reverse Shell con Archivo Registro de Windows y icmpsh: Shell Inverso con ICMP.

Diferencia entre Bind Shell y Reverse Shell

Bind ShellReverse Shell
Bind Shells tiene el listener ejecutándose en el objetivo y el atacante se conecta al listener para obtener acceso remoto al sistema objetivo.En la shell inversa, el atacante tiene el listener ejecutándose en su máquina y el objetivo se conecta al atacante con una shell. Así el atacante puede acceder al sistema objetivo.
En Bind shell, el atacante encuentra un puerto abierto en el servidor/máquina objetivo e intenta enlazar su shell a ese puerto.En el reverse shell, el atacante abre su propio puerto. Así que la víctima puede conectarse a ese puerto para una conexión exitosa.
El atacante debe conocer la dirección IP de la víctima antes de lanzar el Bind Shell.El atacante no necesita saber la dirección IP de la víctima, porque el atacante se va a conectar a su puerto abierto.
En Bind shell, el listener está ON en la máquina objetivo y el atacante se conecta a él.El Reverse Shell es opuesto al Bind Shell, en el reverse shell, el listener está ON en la máquina Atacante y la máquina objetivo se conecta a él.
Bind Shell a veces fallará, porque los cortafuegos modernos no permiten a los intrusos conectarse a puertos abiertos.Reverse Shell puede eludir los problemas del cortafuegos porque esta máquina objetivo intenta conectarse al atacante, por lo que el cortafuegos no se molesta en comprobar los paquetes.

Conclusión

En conclusión, la principal diferencia entre Bind Shell y Reverse Shell radica en la dirección de la conexión. Con Bind Shell, el atacante crea un servidor a la escucha en el objetivo, esperando que el atacante se conecte. En cambio, con Reverse Shell, el atacante hace que el objetivo se conecte a un servidor controlado por él.

Ambas técnicas tienen usos legítimos en la ciberseguridad y pentesting, pero es esencial comprender sus implicaciones y emplearlas de manera ética y autorizada.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda