2 ~ RootMe - Linux
Última actualización
Última actualización
Lo primero que realizaremos será un ping a la maquina para saber varias cosas, la primera que sabremos será si tenemos conexión con la maquina y la segunda mediante el TTL podremos saber el posible sistema operativo que pueda tener.
Las maquinas linux tienen un ttl de 64 pero vemos que su ttl es de 63 eso es debido a que salta por varios nodos intermediarios.
Lo primero que tendremos que hacer será realizar un escaneo de puertos con la herramienta de 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 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 podemos ver los puertos abiertos de la maquina y procedemos a escanear los puertos en búsqueda de información como servicios que corren en ellos.
Descripción de los parámetros:
-p : Escanea los puertos especificados, en este caso escanea 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.
IP : La IP que queremos escanear.
-oN : Guarda la salida en el formato de nmap.
Una vez terminado el reconocimiento de puertos y saber los servicios que corren en ellos, toca recolectar información útil para poder preparar nuestro ataque.
Una vez dentro de la pagina web, mediante una extensión llamada "Wappalyzer" podemos saber un poco de información acerca de la pagina web.
Una vez dentro de la pagina lo primero que podemos hacer es mirar el código fuente, en busca de alguna ruta, usuario, o alguna pista relevante para poder preparar nuestro ataque. Tras echar un vistazo vemos que no tiene nada de interés, entonces procedemos a mirar si la pagina contiene mas rutas mediante la herramienta gobuster.
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.
Gobuster nos muestra varias rutas, y en ellas hay una ruta especialmente interesante (/panel), al acceder a dicha ruta, vemos que podemos subir archivos. Vamos a probar subiendo un .php, nos da error, ahora tenemos que buscar la una extensión que nos permita subir una reverse shell. Buscando por Internet vemos que php tiene mas de una extensión, vamos a probarlas y ver si alguna es permitida.
Una vez terminado de comprobarlo, volvemos a subir el archivo php.
Mandamos la captura al intruder [ctrl+I]
Y por ultimo nos dirigimos a options y en el apartado "Grep -Extract" le añadimos el error "PHP não é permitido!".
Y le damos a "Start attack".
Al ser la versión Community las peticiones se realizan a 1 por segundo.
Después de esperar un rato, vemos que tenemos varias extensiones donde no pone comentarios, vamos a probar a subir un archivo con alguna extensión sin comentario. Probando con la extensión .php5 vemos que tenemos éxito en la subida.
Y ahora toca subir una reverse shell php.
Hacemos una búsqueda rápida en google y descargamos una reverse shell php, al ser un repositorio de github con git clone podemos copiarla en nuestro equipo.
Ahora tenemos que realizar unos cambios en la reverse shell y no olvidar de cambiar la extensión a una permitida.
Una vez cambiada la ip y el puerto, guardamos el archivo como .php5 y le cambiamos el nombre a uno mas corto.
Y toca subir el archivo a la pagina y buscar el archivo subido en la ruta /uploads.
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 pondrá en escucha.
Una vez puesto en escucha, abrimos nuestra reverse shell para entablarnos una conexión con la maquina.
Una vez tenemos la reverse shell, toca hacerle un pequeño tratamiento para poder trabajar de una manera mas cómoda.
Ahora toca buscar como escalar privilegios, empezamos por ver los grupos de nuestro usuario.
No hay nada interesante, miramos los permisos sudo y nos pide contraseña, ahora vamos a buscar con el comando find alguna capabilities.
Descripción de los parámetros:
-perm : Le indicamos que vamos a buscar permisos.
-u=s : le indicamos que vamos a buscar permisos de usuario setuid.
2>/dev/null : Mandamos los errores al /dev/null.
Vemos que salen muchos archivos, pero hay uno que es bastante interesante, tenemos permisos setuid en python.
Podemos cambiar el tipo de shell por una bash o dejar la sh.
Y SOMOS ROOT!
De los dos puertos que hemos detectado, en el único que podemos buscar cierta información seria en el puerto 80, corriendo un servicio Apache. Antes de entrar en la pagina web podemos lanzar un comando sencillo para saber un poco de información acerca de la pagina web.
Hora de abrir BurpSuite, una vez abierto nos dirigimos a Proxy y le damos a una vez activado, en nuestro Firefox comprobamos que estemos utilizando el proxy
Dentro de intruder nos dirigimos al apartado Positions y vemos que tenemos varios parámetros marcadas, pues le damos a clear para limpiar todo y seleccionamos lo que nos interesa que es la extensión php una vez seleccionado nos vamos a "payloads" y en el apartado "Payload Options" añadimos las extensiones encontradas.
Ahora toca ponernos en modo escucha con netcat.
Toca abrir nuestro navegador y buscar para ver si podemos hacer algo con python. Y vemos que tenemos algunas opciones, y dentro de ellas esta la Capabilites, pinchamos en esa opción y nos copiamos el comando marcado.