16 ~ Brute It - Linux
Última actualización
Última actualización
Lo primero que haremos una vez iniciada la maquina, será realizar un ping a la maquina para saber dos cosas, la primera nos dirá si tenemos conexión con la maquina y con la segunda sabremos que sistema operativo puede tener.
Para saber que sistema operativo es nos fijaremos en el ttl que es 63 siendo una maquina Linux, aunque realmente el ttl de Linux es de 64, esto ocurre debido a que pasa por varios nodos intermediarios reduciéndole el ttl.
Una vez verificada la conexión con la maquina, vamos a realizar un escaneo a los puertos abiertos de la maquina para saber que servicios corren en ellos.
Descripción de los parámetros:
-p- : Escanea los puertos especificados, en este caso escanea los 65535 puertos.
--open : Muestra solo los puertos abiertos.
-sS : Escanea mediante TCP SYN.
--min-rate : Envía paquetes no mas lentos que el número indicado por segundo en nuestro caso 5000.
-Pn : Omite el descubrimiento de host.
-n : No realiza resolución DNS.
-vvv : Muestra la información mientras se esta realizando el escaneo.
IP : La IP que queremos escanear.
-oG : Guarda la salida del escaneo en un formato grepeable.
Una vez finalizado el escaneo realizaremos otro escaneo mas exhaustivo para ver si podemos sacar mas información de los servicios.
Descripción de los parámetros:
-p : Escanea los puertos especificados.
-sC : Lanza varios scripts defaults de nmap.
-sV : Determina los servicios que están corriendo en los puertos además de información extra.
IP : La IP que queremos escanear.
-oN : Guarda la salida en el formato de nmap.
Empezaremos por el servicio http alojado en el puerto 80, para ello utilizaremos la herramienta whatweb para conocer la tecnología de la pagina.
Una vez visto la información que nos da whatweb procedemos a ingresar a la pagina y vemos que es la plantilla default de apache.
Tras enumerar la pagina, no encontramos nada de valor, entonces procedemos a utilizar la herramienta gobuster para hallar alguna ruta oculta.
Descripción de los parámetros:
dir : Utiliza el modo de enumeración de directorios/archivos.
-u : Le indicamos que le vamos a pasar una url.
URL : La url objetivo.
-w : Le indicamos que vamos a usar un diccionario.
/PATH/ : Le indicamos la ruta del diccionario a usar.
-t 50 : Le indicamos el numero de peticiones hacia el servidor.
--no-error : No muestra errores por pantalla.
-z : No muestra la barra de progresos por pantalla.
-o : Guarda la salida en un archivo.
Parece que tenemos un panel login.
Si volvemos a enumerar la ruta del panel login, en el código fuente vemos que nos da varios usuarios, y para el panel login el usuario es admin.
Ahora tenemos que realizar fuerza bruta al panel login para averiguar la contraseña, para ello vamos a crear un script en bash, también es posible utilizar hydra, burpsuite, etc.
Terminado la fuerza bruta e ingresado al panel login, vemos la primera flag y una id_rsa.
Si recordamos anteriormente nos dieron dos posibles usuarios, y uno era para el panel login, entonces el otro que era john tendría que ser para conectarse mediante ssh. Pero nos pide contraseña al utilizar la id_rsa, para averiguar la contraseña, le haremos fuerza bruta con la herramienta John The Ripper.
Descripción de los parámetros:
hash : Nombre del archivo ha crackear.
--wordlists= : Le indicamos que vamos a utilizar un diccionario.
/PATH/ : La ruta del diccionario.
Esperamos un poco y al rato nos dará la contraseña de la id_rsa, nos conectamos a la maquina mediante ssh.
Descripción de los parámetros:
-i : Archivo identificador. (id_rsa)
Lo primero será buscar la flag de usuario.
Y después realizaremos una enumeración del sistema y vemos que tenemos un permiso en el comando CAT.
Con esto podríamos intentar ver el archivo shadow, y parece ser que si.
Vamos a copiar todo el usuario root para volver a utilizar John The Ripper y intentar averiguar la contraseña.
Tenemos la contraseña de root, la ingresamos y somos ROOT!.
Ahora buscamos la flag de root.