ApacheByte DockerLabs (Intermediate)
Instalación
Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
unzip apachebyte.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh apachebyte.tarInfo:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
___ ____ ____ _ _ ____ ____ _ ____ ___ ____
| \ | | | |_/ |___ |__/ | |__| |__] [__
|__/ |__| |___ | \_ |___ | \ |___ | | |__] ___]
Estamos desplegando la máquina vulnerable, espere un momento.
Máquina desplegada, su dirección IP es --> 172.17.0.2
Presiona Ctrl+C cuando termines con la máquina para eliminarlaPor lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.
Escaneo de puertos
Info:
Veremos que un puerto 80 en el que habra una pagina web alojada, si entramos en dicha pagina web veremos una pagina normal sin nada interesante, pero con un login si le damos al boton llamado Login para dar Like, aqui vamos a probar diferentes credenciales por defecto sin suerte, por lo que probaremos a realizar un SQLi facilito a ver si fuera vulnerable.
Vemos que nos pone usuario invalido, pero cuando metemos admin:admin nos pone Nombre de usuario o contraseña incorrectos, por lo que ya sabemos que admin existe.
Pero debajo veremos un boton para registrarnos, si lo hacemos y accedemos con las credenciales de las cuales nos acabamos de registrar, veremos un panel en el que podremos dar like a dicha seccion.
Si le damos al boton no pasara nada, pero veremos que hay un apartado llamado Cuenta en el que si le damos nos llevara a nuestro perfil, en el podremos ver que podemos subir una foto de perfil, vamos a probar a realizar un LFI o un RCE mediante la subida de un archivo en vez de, de una imagen a ver si podemos.
Escalate user www-data
Vamos a crearnos el siguiente archivo.
shell.php
Si lo intentamos subir veremos que no funciona, por lo que vamos a subir una foto normal para ver como responde la pagina.
Veremos que una imagen normal se sube de forma correcta, pero tambien podemos cambiar la contraseña del usuario, se nos ocurre que podemos intentar cambiar la contraseña del usuario manager, para ello vamos a capturar la peticion de cambiarla con BurpSuite y veremos algo asi:
Si probamos a donde pone username poner manager y le damos a ENTER veremos en la respuesta del servidor que pone Usuario no encontrado por lo que tendremos que saber el numero exacto del usuario manager para cambiarlo en la seccion llamada numero, vamos a ver en que formato y en que nombre se guardan las fotos de perfil.
Ya que cuando enviamos la peticion de cambiar la contraseña tambien vemos el nombre de la foto de perfil.
Vamos a ver la siguiente carpeta.
Info:

Veremos que si esta el numero de nuestro usuario y el del manager por lo que podremos realizar lo siguiente en la peticion de cambiar la contraseña.
Tendremos que dejarlo asi con el nombre de usuario manager y el numero del manager que hemos encontrado en el nombre de la imagen de perfil de dicho usuario.
Si lo enviamos veremos que se cambio la contraseña de dicho usuario de forma exitosa, por lo que vamos a probar a iniciar sesion con las credenciales que hemos cambiado.
Vemos que ha funcionado y veremos un boton llamado dashboard en el que veremos lo siguiente:

Vemos que podemos subir un archivo, esta vez vamos a probar a subir de nuevo el archivo PHP a ver si nos deja.
Le daremos a Nuevo Post y probaremos a subir dicho archivo, pero no nos dejara, por lo que vamos a realizar el mismo proceso de antes, vamos a subir una imagen al servidor y ver donde se esta subiendo, para ver que vemos algo interesante.
Una vez que hayamos subido la imagen, le daremos a Guardar cambios y vamos a donde pone Casa, ahi veremos la imagen subida.

Vamos a darle click derecho e irnos a la opcion llamada Open Image in new Tab, una vez echo esto, veremos en la URL lo siguiente:
Vemos que no esta mostrando la extension .jpg parece ser que la esta borrando, por lo que se nos ocurre realizar lo siguiente:
Ahora vamos a subir ese archivo a un POST en la web, ya que como borra la primera extension se quedara en .php vamos a probar a subir el archivo de nuevo.
Al subir la imagen se nos sube bien y se queda a nivel de codigo asi:
Por lo que vemos se esta subiendo de forma correcta sin las extension de .jpg, ahora estando a la escucha de esta forma:
Vamos a darle a Guardar Cambios, le daremos a Casa, si volvemos a donde tenemos la escucha veremos lo siguiente:
Veremos que ha funcionado, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
Escalate user juan
Si listamos la carpeta /tmp veremos el siguiente archivo:
Vemos lo que parece una configuracion de un socket a algo, por lo que vamos a realizar una busqueda a ver si hubiera algun archivo respecto a dicho socket.
Info:
Vemos una cosa interesante y es la siguiente linea:
Vamos a descomprimirlo y ver que contiene.
Vemos que nos extrae parte de la /home del usuario juan por lo que vamos a ver que contiene, si entramos veremos un archivo llamado socket_server.py que si lo leemos veremos esto.
Parece ser que es un servidor socket que esta realizando una conexion con el archivo de /tmp el que encontramos anteriormente en el cual cualquier usuario se puede conectar al socket y ejecutar cualquier cosa como el usuario juan por lo que vamos a crear una reverse shell.
Pero antes vamos a probar que los comandos se esten ejecutando bien:
Info:
Vemos que esta funcionando, ya que estamos capturando la excepcion y mostrandola por pantalla, ya que de otra forma no funcionaria para mostrarnos el comando.
Vamos a realizar la reverse shell ya.
Pero antes de darle a ENTER vamos a ponernos a la escucha:
Ahora si enviamos el anterior comando y volvemos a donde tenemos la escucha veremos lo siguiente:
Vemos que ha funcionado, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
Escalate user alex
Si hacemos sudo -l veremos lo siguiente:
Vemos que podemos ejecutar como el usuario alex el binario nano por lo que podremos ser el usuario alex de esta forma:
Y con esto ya seremos dicho usuario.
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Vemos que podemos ejecutar el binario report_tool como el usuario root por lo que vamos a investigar que hace dicho binario.
Si lo leemos veremos lo siguiente:
Vemos una vulnerabilidad muy grave, podemos crear un archivo llamado report_tool.conf y dentro de el, exportar el OVERRIDE_PATH con un Path Hijacking por lo que podremos realizar lo siguiente:
Ahora si vemos que permisos tiene la bash.
Info:
Veremos que ha funcionado, por lo que haremos lo siguiente:
Info:
Con esto veremos que seremos root, por lo que habremos terminado la maquina.
Last updated