Está en la página 1de 26

Debemos encontrar 1 bandera.

Primero, a partir de un escaneo de puertos pude saber que


había un servidor web que alojaba un sitio web con contenido estático y que admitía
conexiones desde el puerto 80 Además, había otro sitio web que admitía conexiones desde el
puerto 8080 pero su directorio raíz estaba protegido por un mecanismo de autenticación.
Luego, realice fuerza bruta de directorios en el directorio raíz del primer sitio web, logrando
encontrar un username valido para ser usado en un ataque de fuerza bruta contra el login.
Luego, pude saber que el segundo sitio web estaba siendo gestionado con el CMS Joomla.
Luego, con la fuerza bruta de directorios realizada por “Nikto” , logre encontrar un archivo Zip
que contenía un archivo SQL con diversas instrucciones SQL donde una de ella contenía las
credenciales del usuario admin, pero su contraseña estaba en forma de hash, que logre
crackearlo fácilmente, logrando acceder al portal de gestión del CMS. Luego, en el portal de
gestión del CMS, logre modificar el código fuente de un template utilizado por el sitio web,
para ejecutar una reverse Shell. En la escalada de privilegio vertical, aproveche que el usuario
“www-data” pertenecía al grupo “lxd” para ejecutar un contenedor Linux donde montaría todo
el sistema de archivos del sistema anfitrión en uno de sus directorios. Además, ejecute una
Shell con los privilegios de root en el contenedor con el fin de poder asignarle el bit SUID al
binario de “Bash”, y lograr ejecutar una Shell Bash con los privilegios de root en el sistema
anfitrión.
## FASE RECONOCIMIENTO ACTIVO
En este caso debemos acceder al sistema destino y obtener las banderas.
Primero, empezaremos utilizando el comando openvpn y el archivo de
configuración OpenVPN con el fin de establecer una conexión VPN y poder
acceder a los laboratorios donde están las máquinas virtuales.

Además, la plataforma de Tryhackme nos muestra la dirección IP de la máquina


jokervm.
## FASE ESCANEO Y ENUMERACION
Ahora pasaremos a la fase de Escaneo y Enumeración con el fin de poder escanear
los puertos del sistema destino. Además, obtendremos los servicios que se han
levantado en los puertos abiertos, las versiones de los servicios.
Los resultados que obtenemos son:

 Un programa servidor SSH que se ejecuta en el puerto 22.


 Un programa servidor HTTP que se ejecuta en el puerto 80 y 8080. Ademas,
en el puerto 80, podemos observar la etiqueta “title” de una pagina web, por lo
que podemos deducir que hay un sitio o aplicacion web alojado en el servidor
web. Pero en el puerto 8080, recibimos el codigo de estado 401, por lo que el
directorio raiz del sitio o aplicación web esta protegido por un metodo de
autenticacion. Esto ultimo lo podemos verificar cuando intentamos acceder al
sitio o aplicación web a travez del navegador web. Ademas, probe credenciales
por defecto como “admin:password” pero no tuve suerte.

Ahora accederemos al sitio o aplicación web a traves de mi navegador web.


Podemos observar que el sitio web solo presenta contenido estatico ya no presenta
ninguna funcionalidad ni contenido dinamico. Ahora, realizaremos fuerza bruta de
directorios para encontrar recursos escondidos en el directorio raiz del sitio web.
Podemos observar que nos encontramos con un archivo de texto con el nombre
“secret”, que contiene los mensajes de una conversacion entre “Batman” y “Joker”,
ambos pueden ser posibles usernames validos para iniicar sesion en el sistema
destino o para acceder al directorio raiz de la aplicación web que se ejecuta en el
puerto 8080. Ahora realizaremos un ataque de fuerza bruta sobre el login que protege
al directorio raiz de la aplicación web que se ejecuta en el puerto 8080
Podemos observar que se logro encontrar unas credenciales para autenticarnos en el
login que protege al directorio raiz del sitio web que fue creado y esta siendo
gestionado por el CMS Joomla. Ahora probaremos las credenciales “joker:hannah” y
otras credenciales por defecto como “admin:password” en el login para acceder al
portal de gestion del CMS.
Podemos observar que no tuvimos suerte. Ahora buscaremos la version del CMS
Joomla instalado en el servidor web con el fin de encontrar exploits publicos asociados
a su version.
Podemos observar que logre encontrar un exploit que documentaba la vulnerabilidad
SQLi en el parametro GET “list[fulolorderin]” pero no tuve éxito al intentar explotarlo.
Ahora realizaremos fuerza bruta de directorios en el directorio raiz del sitio web en
busca de recursos escondidos.
Podemos observar que solo logramos encontrar recursos que forman parte por defecto
de la estructura de directorio del CMS Joomla. Ahora, probaremos suerte con el
descubrimiento de archivos y directorios confidenciales realizado por “nikto” ya que en
si no que tipo de extension pueda tener el recurso escondido que queremos encontrar.
Podemos observar que se logro encontrar un archivo zip que tiene compromido un
directorio llamado “site” con todos los archivos y subdirectorios que vienen por defecto
en el CMS Joomla, y contiene otro directorio llamado “db” que contiene una archivo
SQL con posibles instrucciones SQL para crear una base de datos que contengan
informacion sobre los usuarios que pueden acceder al portal de gestion del CMS.
Ademas, si intentamos descromprimirlo, nos solicitara una passphrase o contraseña
que viene a ser “hannah”. Ademas, no tuve la necesidad de utilizar Jhon The Ripper
para encontrar el valor ya que solo reutilize la contraseña que encontramos
anteriormente.
Podemos observar una instrucción SQL que agregara un nuevo registro a la tabla
“cc1gr_users” y que contiene las credenciales del usuario “admin” con un hash de
contraseña .
## FASE GANAR ACCESO O EXPLOTACION O HACKING
Ahora crackearemos este hash con John The Ripper e ingresaremos al portal de
gestion del CMS.
Podemos observar que se logro crackear el hash de la contraseña del usuario “admin”.
Ademas, logramos acceder al portal de gestion del CMS. Ahora modificaremos el
codigo fuente de alguno de los archivos de algun template utilizado por el sitio web con
el fin de generar una reverse shell.
De esta manera logramos acceder al sistema destino. Ahora realiaremos un
tratamiento de nuestra reverse shell para que sea mas estable e interactiva.

## FASE ESCALADA DE PRIVILEGIOS


Ahora buscaremos vectores de escalada de privilegios de manera manual con el fin de
ser un usuario con mayor privilegios en el sitema destino.
Podemos observar que el usuario “www-data” pertnece al grupo “lxd” por lo que puede
gestionar contenedores Linux. Ademas, este privilegio viene a ser un vector de
escalada de privilegio bastante conocido ya que consiste en crear un contenedor Linux
donde montaremos todo el sistema de archivos del sistema anfitrion pero tendremos el
privilegio de root por lo que podremos manipular, observar cualquier archivo sin
restricciones. Para ello aprovecharemos que se tiene descarga una imagen con el
alias “myalpine”. Para la creacion o inicializacion del contenedor Linux necesitamos
una imagen.

Ahora montaremos el sistema de archivos del sistema anfitrion en el directorio “mnt”


de nuestro contenedor con el fin de ejecutarlo y tener una shell con privilegios de root
para poder interactuar con todo los archivos.
Podemos observar que logramos ejecutar el contenedor donde tenemos una shell con
los privilegios de root para poder navegar por el sistema de archivos del sistema
anfitrion sin ningun problema.Ademas, logramos encontrar la ultima bandera, pero si
queremos realizar la escalada de privilegio en el mismo sistema anfitrion, solo
debemos aprovechar que somos el usuario root dentro del contenedor para asignarle
el bit SUID al archivo binario bash, y luego en el sistema anfitrion, ejecutar una shell
Bash con los privilegios de root.

También podría gustarte