bank_ctf
Last updated
Last updated
Contenido
USO NMAP ENCONTRAR PUERTOS 2
USO GOBUSTER PARA DIRECTORIOS OCULTOS 4
HACKEANDO CON HYDRA 6
EXPLOTANDO LOGIN SSH 10
ESCALADA DE PRIVILEGIOS 14
Crackear el hash con JOHN 14
Seguir buscando pistas 15
Explotando el privilegio sudo de cat 16
CONCLUSION 16
Comenzaremos nuestra practica realizando el típico nmap para ver que tiene abierto la maquina:
Como podemos ver tiene dos puertos abiertos , el ssh y un servidor http. Asi que vamos a entrar al servidor http a través de la ip para ver que nos encontramos :
Si inspeccionamos la web con f12 podemos ver como encontramos un archivo llamado robots.txt:
Y si probamos a utilizar dicha ruta nos aparece lo que parece una wordlist :
Por lo que nos la guardamos y seguimos adelante con gobuster :
Lo lanzamos para ver que encontramos, interesante comentar que utilice la wordlist /usr/share/wordlist/dirbuster/directory-list-lowercase-2.3-medium.txt :
Una vez terminado parece que vemos un directorio wordpress asi que vamos a acceder.
Parece que hemos entrado al wordpress del banco y tras mirar un poco por el wp encontramos nuestra primera flag:
Flag 1 : THM{$1$acaa16770db76c1ffb9cee51c3cabfcf}
Volvemos a nuestro gobuster y tras escanear de nuevo esta vez el directorio wordpress probaremos el siguiente directorio oculto /wordpress/wp-login.php
Como podemos ver hemos llegado al login del wp , como vimos en la captura de la primera flag se habla de un tal Patrick , este mensaje esta firmado por un tal manager. Por lo que podemos deducir que tanto Patrick como manager son usuarios de este wordpress. Asi que lo que haremos ser atacar este login mediante una nueva herramienta llamada hydra.
Pero para que esta herramienta sea efectiva primero vamos a generar un intento de sesión mientras vemos el trafico en la red:
Como podemos ver genera una petición post contra el servidor , asi que vamos a esta petición a ver que podemos ver:
Si clicamos en la petición post y luego clickamos en Resend podemos ver la petición de manera mas detallada.
Nosotros nos fijaremos en esta parte de código de aquí.
Lo modificaremos para que quede de la siguiente manera:
'/wordpress/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In:ERROR'
Este código pertenece a la petición http-post-form que tendremos que añadir en nuestro programa hydra para nuestro ataque:
Lo primero es especificar la ruta del formulario: /wordpress/wp-login.php:
Segundo el código que cogimos de la petición web: log=^USER^&pwd=^PASS^&wp-submit=Log+In: (hay que tener en cuenta que hemos añadido ^USER^ y ^PASS^ para especificar los campos que el hydra va a cambiar con cada intento
Y al final hemos añadido un ERROR
Con todo esto dicho vamos a ejecutar nuestra herramienta hydra para hackear la contraseña del login del wp:
De este comando comentar que el –l se utiliza para especificar el usuario , el –P para especificar el wordlist que en este caso hemos utilizado el wordlist que encontramos al principio de la practica. Luego iria seguido de la ip objetivo , luego el tipo de servicio , en este caso una petición de formulario por http “http-post-form” , nuestra frase que ya hemos explicado como construirla , el argumento –vV para vervosearla y el –t que lo que hace es especificar el numero de peticiones del hydra.
Como podemos ver tenemos la contraseña del usuario Patrick. Asi que vamos a probar logearnos con estas credenciales.
Y como podemos ver ya estamos dentro.
Como podemos ver aquí tenemos nuestra segunda flag aunque no esta en el formato que se pide en tryhackme asi que la modificamos:
Flag 2 : THM{$2$9dddd5ce1b1375bc497feeb871842d4b}
Parece que hay poco mas que rascar asi que vamos a correr de nuevo nuestro hydra pero esta vez con el usuario manager.
Accedemos con manager a ver que tenemos:
Como podemos ver tenemos nuestra tercera flag y un código ASCII que traduciremos con un traductor online de ASCII.
Flag 3: THM{$3$6351e4efddc359eca697894df2bfd02d}
El código ASCII traducido quedaría asi:
Parece que volvemos a tener otra wordlist. Y como todavía no hemos tocado el puerto 22 del ssh vamos a probar suerte de nuevo con hydra a ver que tenemos:
Primero nos guardamos la wordlist:
Y después con dicha wordlist ejecutamos hydra:
Y parece que ya tenemos credenciales para acceder a través de ssh. Vamos a acceder a ver que vemos:
Tras investigar un poco vemos la 4 flag:
Flag 4 : THM{$4$72545f3f86fad045a26ed54abd2bbb9f}
Tras ver los archivos que contiene el usuario vemos esto:
Asi que vamos a buscar el script:
Tras un poco de mirar vemos en la carpeta de Patrick el script , vamos a ejecutarlo:
Vemos como no tenemos permisos , pero probando con sudo delante vemos que cat tiene permisos de ejecutar scripts
Vemos que el script lanza un pequeño juego en el que debes introducir la hora y la fecha seguido del nombre del juego a jugar. Tras probar varios intentos vemos que poniendo lo que sea y al final blackjack intenta mostrar lo que hay en un archivo /directorio.
Asi que quizás este script nos mostrara algún directorio o archivo que de normal no debería mostrarme , ¿ Y cual es el archivo por excelencia en Linux que nos muestra algo tan critico como las contraseñas? Exacto el /etc/shadow asi que vamos a probar:
Como podemos ver en la captura tenemos nuestra flag 5.
Flag 5: THM{$5$639bae9ac6b3e1a84cebb7b403297b79}
Ahora podemos hacer varias cosas:
Crackear el hash con johntheripper.
Seguir buscando pistas.
Explotar el privilegio de root que tiene el usuario cat para acceder a root.
Vamos a probar las 3 obviamente.
Vamos a crackear el hash de root con johntheripper:
Para ello primero creamos un archivo con el hash de root dentro
Y se lo pasamos a John:
Y tendríamos la contraseña del usuario root.
Una vez tenemos esto nos logueamos como root :
Y con esto ya tendríamos nuestra 6 flag , asi que vamos a ver los otros dos métodos para encontrar esta pass.
Flag 6 : THM{$6$7b63d1cafe15e5edab88a8e81de794b5}
Si buscamos dentro del mismo directorio vemos el siguiente mensaje:
En el mensaje te dice que el root ha cambiado su contraseña por un numero que cuenta palabras y que para encontrarlo debes utilizar crunch y dos acertijos:
Crunch 1 <respuesta 2> <respuesta 1>
El primer acertijo :
Quien puede terminar un libro sin terminar una sentencia
R: Un prisionero (prisoner)
El segundo acertijo es sumar y restar :
R: 6
Y como podemos ver nos da la misma contraseña que antes , vamos a por el último proceso.
Simplemente mediante el comando anterior hemos cambiado del usuario cat al root. Y encontrado la flag.
El usuario cat al tener permiso de ejecutar comandos con sudo ejecuta el comando anterior y ejecuta una Shell de root automáticamente.
Me ha parecido una room muy interesante en la que he aprendido muchas cosas interesantes como esta ultima por ejemplo del awk. Tambien a como ver el trafico de una petición post y luego utilizarla para romper la contraseña del login. Practica que casi seguro tendré que revisionar sobre todo para el tema del hydra , una herramienta superpotente que te abre muchas puertas.