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]: