26 ~ Battery - Linux
Última actualización
Última actualización
Lo primero que haremos será lanzar un ping para ver si tenemos conexión con la maquina, y a parte también podremos saber que Sistema Operativo esta siendo usado.
En nuestro caso nuestro TTL es de 63 siendo del Sistema Operativo Linux, aun que realmente el TTL de Linux es 64, y esto es debido a los nodos intermediarios que hace que se disminuyan en nuestro caso en 1.
Lo primero que haremos una vez verificado la conexión con la maquina, será realizar un escaneo con la herramienta nmap.
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, haremos otro escaneo mas exhaustivo con los puertos encontrados, para que nos de mas información de los servicios que corren en dichos puertos.
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.
Enumeraos la pagina web y no encontramos nada, lanzamos la herramienta gobuster para fuzzear rutas ocultas.
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.
-z : No muestra la barra de progresos por pantalla.
-o : Guarda la salida en un archivo.
Vemos varias rutas interesantes. La primera ruta es la de admin.php
La otra ruta interesante es la de report, donde nos podemos descargar un archivo. Tras analizar el archivo, encontramos varios correos.
Y vemos que en la ruta admin.php podemos registrarnos. Vamos a realizar un sql truncation attack con el correo de admin.
Para ello vamos a registrarnos con el correo de admin, y lo vamos a interceptar con BurpSuite, para manipular los datos y poder realizar el ataque. Activamos el FoxyProxy para poder interceptar la petición.
Tenemos varias opciones para poder realizar el ataque, el primero seria colocando un x00 que indica un NULL Byte, permitiéndonos registrar sin problemas con el usuario.
La otra opción seria añadiendo espacios y una letra al final, permitiéndonos registrarlo sin problemas el usuario.
Gracias a esto podemos entrar como admin. Ahora nos dirigimos al apartado, command y lo volvemos a interceptar con BurpSuite.
Ahora vamos a realizar un XXE attack.
Ahora vamos a poner un filtro en base64 para poder ver el código php. Tras decodear el código y al analizar la ruta acc.php, vemos una credencial oculta
Vamos a entrar mediante ssh con las credenciales encontradas.
Estamos dentro de la maquina
Tras enumerar el sistema vemos que podemos ejecutar como root sin proporcionar contraseña el siguiente script en python.
El archivo lo ha creado root, pero al estar en nuestro directorio personal podemos borrarlo, y crear uno nuestro para que nos otorgue una shell como root.
Ejecutamos el script como root.
Y somos root.