3 ~ Thompson - Linux
Última actualización
Última actualización
Lo primero que tendremos que realizar será un ping para saber cierta información de la maquina, una de ellas es ver si tenemos conexión con la maquina y la otra es para ver con que sistema operativo vamos a trabajar mediante el ttl dado.
Las maquinas Linux tiene un TTL de 64, pero vemos que nos da 63 esto es debido a los nodos intermediarios.
Una vez comprobado que tenemos conexión con la maquina vamos a proceder a escanear los puertos 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 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 realizar resolución DNS.
-vvv : Muestra 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 de puertos vamos a realizar un escaneo mas exhaustivo.
Descripción de los parámetros:
-p : Escanea los puertos especificados, en este caso escanear los puertos encontrados anteriormente.
-sC : Lanza varios scripts defaults de nmap.
-sV : Determina los servicios que están corriendo en los puertos además de algo de información acerca de ellos.
IP : La IP que queremos escanear.
-oN : Guarda la salida en el formato de nmap.
Cuando el escaneo halla terminado, utilizaremos la herramienta whatweb para ver un poco mas de información sobre la pagina alojada en el puerto 8080
A continuación entramos en la pagina web para ver el código fuente, información de algún usuario o cualquier dato importante para preparar nuestro ataque.
Tras unos minutos decido lanzar la herramienta gobuster para ver si encontramos alguna ruta interesante.
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.
-t50 : Le indicamos el numero de peticiones hacia el servidor.
--no-error : No muestra errores por pantalla.
-z : No muestra la barra de progreso por pantalla.
-o : Guarda la salida en un archivo.
En las rutas encontradas vemos la ruta manager puede ser interesante, tras intentar acceder a ella, vemos que nos pide unas credenciales que no tenemos, pero al darle a cancelar para seguir navegando por la web nos encontramos con una sorpresa.
Tenemos una posible credencial, vamos a probarla y estamos dentro del panel.
Ahora investigando un poco por el panel para ver que podemos hacer, vemos un apartado llamado Archivo WAR a desplegar donde podemos subir archivos. Tras intentar subir un archivo .php nos salta un error.
Vamos a crear la shell y probemos.
Una vez creada vamos a subirla a la pagina, y al parecer hemos podido subirla sin problemas.
Ahora en aplicaciones aparece nuestra shell.war, vamos a ponernos en escucha con la herramienta nc.
Descripción de los parámetros:
-n : Solo direcciones de IP numéricas.
-l : Modo de escucha, para conexiones entrantes.
-v : Muestra información por pantalla.
-p : Numero del puerto.
PUERTO : El puerto que se pondra en escucha.
Y ejecutamos la shell.war y tenemos conexión con la maquina victima.
Una vez tenemos la remote shell, tenemos que realizar un pequeño tratamiento para poder trabajar de una manera mas cómoda en ella.
Lo primero que haremos será buscar la flag del user y ver si podemos verla
Parece ser que tenemos la primera flag.
Ahora toca escalar a root, vamos a realizar una enumeración del sistema, y a simple vista no vemos nada que podamos hacer, vamos a buscar archivos en el sistema, al parecer tenemos un archivo id.sh en el directorio de jack.
Veamos que contiene ese archivo.
Parece que hace una copia del id y lo guarda en test.txt, veamos que contiene el archivo test.txt.
Al parecer vemos que copia la id de root, interesante. Veamos si hay alguna tarea cron que ejecute este script
Vemos que root ejecuta el script id.sh y podemos modificar dicho archivo, vamos a modificarlo para conseguir una bash como root.
Modificamos el script.
Y esperamos a que root ejecute el script.
tras un tiempo vemos que se han cambiado los permisos de la /bin/bash.
Ahora simplemente ponemos bash -p y somos ROOT!
Solo podemos subir archivos .war, bueno vamos a buscar por internet un poco de información acerca del .war a ver que podemos hacer con el. Tras unos minutos encuentro una pagina donde nos da muestra un comando para crear una reverse shell mediante msfvenom. [[]]