Introduction

Aprende a hacer fuerza bruta, crackear hashes y escalar privilegios.
Reconnaissance
Vamos a ir respondiendo a las preguntas que se nos hacen:
- ¿Cuántos puertos hay abiertos?
Para ver esto hacemos un escaneo de puertos común con nmap.

Vemos que hay 2.
- ¿Qué versión de SSH corre?
Para esto podemos utilizar -sV pero yo voy a optar por -A, que es una opción más completa.

Podemos ver que la versión de SSH es OpenSSH 7.6p1.
- ¿Qué versión de Apache corre?
En la foto de arriba también vemos que la versión de Apache es Apache httpd 2.4.29.
- ¿Que distribución de Linux corre?
La distribución que corre de Linux es Ubuntu.
- ¿Cuál es el nombre del directorio oculto?
Para encontrar esto vamos a realizar enumeración de directorios.

Podemos ver que el directorio es /admin/.
Getting a Shell
Nos piden encontrar la forma de obtener una shell.
- ¿Cuál es el user del panel de administración?
Como la máquina es de fuerza bruta sabemos que tendremos que hacerla, sin embargo, no tenemos ningún username todavía. Vamos a ver el código fuente de la página:

Parece que un usuario se llama John, pero lo importante es que dicen que el username es admin. Vamos a hacer un ataque de fuerza bruta. Para ello, primero abrimos BurpSuite y vamos a ver cómo se ve una petición de login.

Y ahora la respuesta de un mal login.

Esto es lo que usaremos como filtro invertido.

Ahora que tenemos el usuario y la contraseña vamos a iniciar sesión.

Con esto hemos obtenido la flag web y la clave privada RSA.
- ¿Cuál es la passphrase de la clave privada RSA?
Una vez tenemos la clave privada, podemos intentar usarla, pero no va a funcionar, porque necesitamos una passphrase:

Así que vamos a usar el módulo ssh2john para convertir el hash de la passphrase de la clave RSA en un formato que la herramienta john pueda entender.

Así encontramos la passphrase de la clave RSA.
- ¿Cuál es la flag
user.txt?
Vamos a iniciar sesión por SSH y a mirar.

- ¿Cuál es la flag web?
La encontramos en la web antes.
Privilege Escalation
Nos piden escalar los privilegios.
- ¿Cuál es la contraseña de
root?
Para esto primero miramos el grupo en el que estamos y nos damos cuenta de que estamos en el grupo sudo. Vamos a ver qué comandos podemos utilizar con sudo -l.

Vamos a mirar en GTFOBins a ver si se puede hacer algo con esto.

Podemos leer archivos como sudo. Sabemos que las contraseñas (o más bien los hashes) se almacenan en el archivo /etc/shadow, por lo que vamos a buscar allí.

Hemos encontrado el hash de la contraseña sudo. Vamos a crackearlo.

Y así de fácil obtenemos la contraseña.
- ¿Cuál es
root.txt?
Nos metemos con la contraseña obtenida y leemos el archivo correspondiente.

