Task 2: Reconnaissance
How many ports are open?
Para este paso realicé un escaneo de puertos utilizando nmap:
sudo nmap 10.10.107.125
Las preguntas: What version of SSH is running? What version of Apache is running? Y Which Linux distribution is running? Pueden ser respondidas utilizando parámetro -A de nmap
sudo nmap -p(puertos encontrados) -A 10.10.107.125
What is the hidden directory?
Al visitar la pagina web vemos que se encuentra la página default de Apache
Para esta pregunta es posible utilizar GoBuster o Dirbuster, en mi caso utilice Dirbuster:
Con esto encontramos el directorio secreto.
Task 3: Getting a Shell
What is the user:password of the admin panel?
Para obtener las credenciales pensé en utilizar Hydra para realizar un ataque de fuerza bruta, pero nos falta conocer el usuario, haciendo más reconocimiento al ver el código fuente del login encontramos el siguiente mensaje:
Conociendo el usuario que vamos a atacar, procedemos a utilizar hydra pero antes necesitamos el mensaje de error que le indicaremos a hydra, así que probamos con unas credenciales aleatorias y vemos el siguiente mensaje:
Comando hydra: hydra -l usuarioencontrado -P rockyou.txt 10.10.107.125 http-post-form “/DIRECTORIOSECRETO:user=^USER^&pass=^PASS^:Username or password invalid”
Al finalizar Hydra nos dará la contraseña, así como se ve en la siguiente imagen:
Web Flag:
Al ingresar en el login encontramos la siguiente página, en donde encontramos nuestra bandera y también es posible ver un archivo RSA.
What John’s RSA Private Key passphrase?
Copiamos el RSA que encontramos en la página web y utilizamos la herramienta ssh2john para poder pasarlo al formato que acepta John y luego romper la contraseña.
sudo /usr/share/john/ssh2john.py archivodescargado > hash.txt
Ya con este archivo procedemos a romper la contraseña:
sudo john — wordlist=rockyou.txt hash.txt
user.txt
Teniendo la passphrase de la Key de ssh procedemos a conectarnos a la cuenta de John como sabemos ese es el nombre de usuario por lo que vimos antes en donde estaba el RSA.
ssh -i archivodescargado john@10.10.107.125
Al ingresar este comando les pedirá la passphrase que encontramos al ingresarla ya tendremos una Shell con el usuario que encontramos.
Al estar dentro del servidor y utilizar el comando ls vemos el archivo user.txt y lo leemos:
Task4: Privilege Escalation
What is the root’s password?
Para comenzar a escalar privilegios comencé con el comando sudo -l el cual brinda el siguiente resultado:
Con esto podemos ver que el usuario de john puede ejecuta como root el programa cat sin necesidad de autenticarse por lo que podemos utilizar el siguiente comando: sudo cat /etc/shadow para ver el hash de la contraseña del usuario root.
Copiamos el hash y lo rompemos utilizando john usando el comando: sudo john — wordlist=rockyou.txt roothash.txt
root.txt
Con estas credenciales ya podemos ingresar al usuario root usando el comando su:
Nos dirigimos a la carpeta del usuario root y utilizamos ls, encontramos el archivo root.txt y lo leemos usando cat: