# Fundamentos de reverse shell

En el contexto de **malware** y **ciberseguridad**, un **reverse shell** (o "shell inversa") es una técnica clave utilizada para establecer **conexiones remotas** entre un **atacante** y un **sistema comprometido**. Esta técnica permite que un atacante obtenga acceso a la **línea de comandos** o **consola** de una máquina comprometida desde una ubicación remota, a menudo sorteando **firewalls** o **mecanismos de defensa**.

El **reverse shell** y sus derivados son herramientas esenciales en **ataques de post-explotación**, especialmente en el desarrollo de malware que se utiliza en escenarios de **red team**, **exploits**, y **persistencia**.

## <mark style="color:red;">**¿Qué es un Reverse Shell?**</mark>

Un **reverse shell** es una **conexión remota** iniciada desde una máquina víctima (es decir, la máquina comprometida) hacia una máquina controlada por el atacante (la máquina de comando y control, C\&C). A diferencia de una **bind shell**, en la que el atacante se conecta directamente a la máquina comprometida a través de un puerto abierto, en un **reverse shell**, la víctima inicia la conexión hacia el atacante.

## <mark style="color:red;">**Características Clave de un Reverse Shell:**</mark>

* <mark style="color:red;">**La víctima actúa como cliente**</mark><mark style="color:red;">:</mark> La víctima conecta hacia el servidor del atacante, estableciendo la comunicación.
* <mark style="color:red;">**Control remoto**</mark><mark style="color:red;">:</mark> El atacante tiene acceso a la consola del sistema víctima, lo que le permite ejecutar comandos, explorar el sistema y tomar control completo.
* <mark style="color:red;">**Evasión de Firewalls**</mark><mark style="color:red;">:</mark> Muchos firewalls y **NATs** (Network Address Translation) bloquean las conexiones entrantes, pero las conexiones salientes son menos restringidas. Un reverse shell explota esto al establecer una conexión saliente desde la víctima hacia el atacante.

## <mark style="color:red;">**Flujo de un Reverse Shell:**</mark>

1. El atacante espera una conexión entrante en su máquina, configurando un puerto en el que está escuchando (normalmente a través de un **netcat** o similar).
2. El malware en la máquina víctima ejecuta un script o un comando para establecer una conexión saliente hacia el atacante.
3. Una vez que la víctima se conecta, el atacante puede ejecutar comandos de forma remota sobre la máquina comprometida.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/malware/shell-reverse/fundamentos-de-reverse-shell.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
