¿Qué es una capa inversa?
Tabla de contenido
- que es una concha
- ¿Qué es un caparazón inverso?
- ¿Por qué los atacantes/hackers necesitan un shell inverso?
- Diferencia entre atacar a través de WAN y LAN
- prevención de shell inverso
Primero, tenemos que saber qué es un caparazón antes de pasar al caparazón inverso. ¿Es eso un caparazón como el del lomo de una tortuga? ese no es el caso, pero se llama shell porque es la capa más externa alrededor del sistema operativo. ¿Qué hace una concha? Un shell es un programa que traduce nuestros comandos al sistema operativo. Esa es una interfaz entre el sistema operativo y un usuario. Toma entradas que son comandos o palabras clave del teclado y se las da al sistema operativo, y la terminal/CLI (interfaz de línea de comandos) le permite escribir comandos e interactuar con el shell. Hay pensamientos más profundos sobre el caparazón, pero no los mencionaré ya que este blog se centrará principalmente en el caparazón inverso.
¿Qué es una capa inversa?
Apuesto a que ha oído hablar mucho de este término en videos tutoriales y CTF, pero aún no sabe su significado. Este es el lugar adecuado para ti. El significado de un caparazón inverso está en el nombre. Hace lo contrario de lo que hace una conexión remota normal: el usuario, que es un cliente que se conecta al servidor, es el objetivo principal de los atacantes. El servidor escucha las conexiones de los usuarios en puertos específicos. Por ejemplo, un servidor web escuchará en el puerto 443 la conexión entrante para que pueda proporcionar el servicio que el usuario desea, que es un sitio web. ¿Cómo lo hace el caparazón inverso? en casos de shell inverso, el servidor inicia una conexión remota y el usuario que es un atacante escuchará en el puerto al que el servidor intentará conectarse. Por ejemplo, se inyecta una carga útil de shell inversa en el servidor web. En esa carga útil, es posible que vea la dirección IP de su computadora portátil o PC y el número de puerto al que desea que se conecte el servidor. digamos 192.168.1.1 y el puerto es 4444 en la carga útil. Antes incluso de inyectar la carga útil, deberá escuchar en ese puerto utilizando herramientas como Netcat. Después de haberlo inyectado, obtendrá la conexión del servidor a su dispositivo.
¿Por qué los atacantes necesitan un shell inverso?
¿Por qué los atacantes los necesitan? En términos generales, se debe al firewall. El firewall limita el tráfico entrante que envía el atacante al servidor, pero no limita el tráfico saliente que el servidor envía a los usuarios/atacantes. Los servidores atacados generalmente permiten conexiones solo en puertos específicos. Por ejemplo, un servidor web dedicado solo aceptará conexiones en los puertos 80 y 443. Esto significa que no hay posibilidad de establecer un shell listener en el servidor atacado.
Por otro lado, los cortafuegos no suelen limitar en absoluto las conexiones salientes. Por lo tanto, un atacante puede crear la conexión inversa configurando el oyente, y el servidor actuará como un usuario en este caso y luego enviará el tráfico al atacante. Todo lo que necesita el atacante es una máquina que tenga la dirección IP y una herramienta como Netcat para crear el oyente y vincular el acceso de shell a él.
Diferencia entre atacar a través de WAN y LAN
Establecer el shell inverso sobre la LAN es bastante simple. Solo necesita saber su dirección IP privada y la dirección IP privada de la víctima. Digamos que está en la red 192.168.1.0 y su dirección IP es 192.168.1.10; la dirección IP de la víctima es 192.168.1.20. Ahora, obtendrá la conexión inyectando una carga útil con su dirección IP y el puerto al que desea que se conecte la víctima.
¿Qué hay de la WAN? Aquí es donde se pone un poco complicado. Lo que tenemos que hacer es reemplazar nuestra IP privada por una IP pública que puedes encontrar en google buscando así: “cuál es mi dirección IP pública”. ¿Hemos terminado aquí? No realmente, pero estamos un paso más cerca. Digamos que ya tiene una forma o encuentra una vulnerabilidad para inyectar una carga útil de shell inverso en el servidor. La víctima/servidor atacado intentará conectarse a su dirección IP pública porque puso su IP pública en su carga útil. La solicitud que envía la víctima llegará a su enrutador antes que su oyente en su máquina. Su enrutador debe saber dónde reenviar esa solicitud a los dispositivos que están conectados al enrutador. Se puede hacer habilitando el reenvío de puertos en su enrutador,
Este ataque tiene menos carga de trabajo si su dirección IP pública es estática, lo cual no es necesario ni común. La IP pública para su enrutador proporcionada por su ISP puede o no ser estática. La dirección IP dinámica es lo que solemos tener en común con la IP pública. IP dinámica significa que su IP pública cambiará cada vez que restablezca su conexión a Internet (reiniciando el enrutador, etc.). En este caso, su IP anterior escrita en el payload no sirve de nada. Pero todavía hay formas más creativas y otras formas de hacerlo de manera diferente a este método.
aquí hay una hoja de trucos de shell inversa para todos ustedes.
¿Cómo prevenirlo?
La mejor manera de evitar los shells inversos es protegerse contra los ataques que permiten a los impostores obtener acceso al shell en primer lugar. Puede deshabilitar la mayoría de las herramientas que permiten crear un shell inverso. Como puede ver arriba en la hoja de trucos, los shells inversos se pueden crear utilizando diferentes herramientas e idiomas. Por lo tanto, puedes ponérselo más difícil al atacante, pero no imposible.
Referencia
Colaboradores de Wikipedia. (2022, 18 de octubre). Shellcode . Wikipedia.https://en.wikipedia.org/wiki/Shellcode
Nidecki. (2019, 26 de agosto). ¿Qué es un caparazón inverso ? Acunetix.https://www.acunetix.com/blog/web-security-zone/what-is-reverse-shell/
Geeks para Geeks. (2022, 27 de septiembre). Diferencia entre Bind Shell y Reverse Shell .https://www.geeksforgeeks.org/difference-between-bind-shell-and-reverse-shell/

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































