> For the complete documentation index, see [llms.txt](https://docs.pabloarrabal.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pabloarrabal.com/explotacion/cracking.md).

# Cracking

## Archivos ZIP

Cuando nos enfrentamos a un archivo comprimido cifrado, podremos crackearlo usando John The Ripper.

{% hint style="warning" %}
John The Ripper, crackea hashes y no archivos, por lo que deberemos de extraer el hash del archivo comprimido, y este es el que será crackeado por JTR. Para extraer el hash del archivo, ejecutamos este comando:

```bash
zip2john archivo.zip > hash-archivo
```

{% endhint %}

Una vez tengamos el hash del archivo, ejecutamos este comando:

```bash
john --wordlist=/ruta/diccionario hash-archivo
```

## Base de Datos de KeePass

Cuando nos enfrentamos a una base de datos de keepass, podremos crackearla usando John The Ripper.

{% hint style="info" %}
John The Ripper, crackea hashes y no archivos, por lo que deberemos de extraer el hash del archivo comprimido, y este es el que será crackeado por JTR. Para extraer el hash del archivo, ejecutamos este comando:

```
keepass2john archivo.kdbx > hash-archivo
```

{% endhint %}

Una vez tengamos el hash del archivo, ejecutamos este comando:

```bash
john --wordlist=/ruta/diccionario hash-archivo
```

## SSH id\_rsa

En el caso de que tengamos a nuestra disposición el archivo id\_rsa (la clave privada) de usuarios, podemos crackearlo con herramientas con el objetivo de obtener el usuario y contraseña validos para el servicio ssh:

```bash
ssh2john id_rsa > hash-id-rsa
```

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FXLyxZDhdgQTzjaxEuOXq%2Fimage.png?alt=media&amp;token=f05f35fa-3fd5-47f0-9a60-0fb0a82835ef" alt=""><figcaption></figcaption></figure>

Así luce el hash:

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2F4hQ07JPn8ydH26nONf3B%2Fimage.png?alt=media&amp;token=bdef956b-d8c0-4621-a63b-7cb9b84f912e" alt=""><figcaption></figcaption></figure>

Ejecutamos john:

```bash
john hash_idrsa -w=/ruta/diccionario
```

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2F6x8ItEFmXpvW3piZdpuV%2Fimage.png?alt=media&amp;token=e50c7d32-e2d8-45cb-bafa-2dd090334143" alt=""><figcaption></figcaption></figure>

Como vemos obtenemos la contraseña, por lo que podremos iniciar sesión con el usuario, el archivo id\_rsa y la contraseña que hemos crackeado:

```perl
ssh -i id_rsa usuario@ip
```

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FEjpShzkJREd2hYY53c5V%2Fimage.png?alt=media&amp;token=6f5711da-247e-4f25-bb9b-2e8ca2ca6dde" alt=""><figcaption></figcaption></figure>

## Hashes

### John The Ripper

Cuando nos encontramos credenciales en forma de hash, también podemos realizar fuerza bruta para descubrir la contraseña real:

En primer lugar dejamos el hash en un archivo, y después lo crackeamos con este comando:

```bash
john --wordlist=/ruta/diccionario hash-archivo
```

{% hint style="warning" %}
En el caso de que nos de un error y no craquee el hash, es debido a que debemos especificarle el tipo de hash que es.

Para saber el hash al que nos enfrentamos, acudimos a "Hash Identifier" (herramienta de kali) y le pasamos el hash:

![](https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FKBM0aEuxbFhe36Fsz3pZ%2Fimage.png?alt=media\&token=9a003928-347b-4887-bdde-40ae5affc61a)

Ahora, ejecutamos este comando, donde MD5 será el tipo de hash:

```bash
john --format=Raw-MD5 --wordlist=/ruta/diccionario hash-archivo
```

{% endhint %}

### Hashcat

Otra forma de craquear un hash es con hashcat, para ello empleamos el siguiente comando:

```bash
hashcat -m 0 -a 0 hash.txt /ruta/diccionario
```

En el parámetro `-m`, deberemos indicar el tipo de hash que queremos craquear, cada hash tiene un numero asignado, (por lo que lo podemos buscar en <https://hashcat.net/wiki/doku.php?id=example_hashes> o ejecutando `hashcat -h`) y en el parámetro `-a` indicar el tipo de ataque:

```
- [ Attack Modes ] -

  # | Mode
 ===+======
  0 | Straight
  1 | Combination
  3 | Brute-force
  6 | Hybrid Wordlist + Mask
  7 | Hybrid Mask + Wordlist
  9 | Association
```
