Topology
Last updated
Last updated
Topology es una máquina Linux de dificultad fácil que muestra una aplicación web LaTeX
susceptible a una vulnerabilidad de inclusión de archivos locales (LFI). La explotación de la falla LFI permite la recuperación de un archivo .htpasswd
que contiene una contraseña en hash. Al descifrar el hash de la contraseña, se obtiene acceso SSH
a la máquina, lo que revela un cronjob root
que ejecuta archivos gnuplot
. La creación de un archivo .plt
malicioso permite la escalada de privilegios.
Iniciamos con la enumeración de los puertos de la maquina victima
-p-
: Escanea todos los puertos (del 1 al 65535).
--open
: Muestra solo los puertos abiertos.
--min-rate 5000
: Establece una tasa mínima de envío de paquetes de 5000 paquetes por segundo.
-Pn
: No realiza la fase de descubrimiento del host (asume que el host está activo).
-n
: No resuelve nombres DNS.
-vvv
: Muestra detalles muy verbosos durante la exploración.
10.10.11.217
: La dirección IP del objetivo.
-oG allportsScan
: Guarda los resultados del escaneo en un archivo en formato "grepable" llamado allportsScan
.
Teniendo los puertos abiertos procederemos a enumerar los servicios y versiones de los puertos abiertos.
-p22,80
: Escanea solo los puertos 22 (SSH) y 80 (HTTP).
-sC
: Utiliza los scripts predefinidos de Nmap para la detección de servicios y vulnerabilidades comunes.
-sV
: Detecta la versión del servicio que se ejecuta en cada puerto.
-vvv
: Proporciona una salida muy detallada.
-Pn
: Omite la fase de descubrimiento del host y asume que el host está activo.
-n
: No resuelve nombres DNS, utilizando solo direcciones IP.
10.10.11.217
: Dirección IP del objetivo.
-oN servicesScan
: Guarda los resultados en un archivo llamado servicesScan
.
Visitando el sitio web encontraremos un contenido de una universidad en la que existe un grupo llamado Topology
que es un grupo matematico.
Enumerando los subdominios con ffuf
podremos encontrar algunos subdominios mas
Los subdominios que encontramos son:
Buscando por internet encontré varios comandos para poder obtener el contenido de archivos del sistema.
Empecé a probar los siguientes comandos
Pero al parecer no podemos lograr ejecutarlo debido a que nos sale el siguiente mensaje
Probando varios modos de leer archivos de la maquina victima.
Luego de enviar el anterior comando para generar con latex y vemos un mensaje, este mensaje al parecer es generado debido a que se tiene varias líneas y esto generar el error
Investigando un poco en los siguientes post podemos leer un poco mas sobre este error:
Agregando $
al inicio y al final podemos generar y obtendremos el /etc/passwd
de la maquina victima.
Observamos que existe un usuario e intente leer /home/vdaisley/.ssh/id_rsa
pero esto no fue posible
Enumerando muchos archivos de medio por curiosear el archivo /etc/apache2/sites-enabled/000-default.conf
Luego de hacer click en el botón generar
podremos ver el siguiente contenido
Teniendo en cuenta las rutas que leimos en el archivo anterior.
En lar ruta /var/www/dev/.htpasswd
encontraremos algo interesante
La contraseña esta encriptada y para poder tener en texto plano usaremos john the ripper
por lo que procederemos a crackear la contraseña.
Luego obtendremos la credenciales en texto plano.
Luego probaremos contra el servicio ssh
y podremos iniciar sesión.
Enumerando los procesos veremos alfo que se ejecuta, que es find ...
haciendo de pspy
:
Buscando por internet encontré como ejecutar comando como el usuario root con ayuda del procesos que se ejecuta cada minuto.
Vemos que en el directorio podemos agregar un archivo
El post nos dice que si creamos un archivo con contenido system [command]
podremos ejecutar comando como el usuario root.
Luego de agregar el archivo nos ponemos a la escucha con ncat
y esperamos un minuto, luego de un minuto deberíamos obtener una shell cómo el usuario root
Revisando un poco mas encontraremos un generador de ecuaciones en el siguiente subdominio .
.
.
Teniendo la credencial la haremos uso en el subdominio , pero no hay nada interesante.
.