HackMyVM - Art
Introducción
En la maquina de hoy estaremos tocando los siguientes temas:
Web Enumeration
EsteganografÃa (steghide)
Escalada abusando permisos sudo archivo /bin/wtfutil config.yml"
Reconocimiento
Comprobamos que tengamos conexión con la máquina victima.
Con el TTL podemos saber que nos enfrentamos a una máquina Linux, ya que es ttl=63, asà que es lo más cercano al 64 que es de Linux.
¿Cuales son los TTLs por defecto en los S.O?
Linux --> 64
Windows --> 128
Solaris/AIX --> 254
Nmap
-sS
Escaneo SYN Port scan, agiliza el escaneo
-sC
Para que envÃe unos scripts básicos de reconocimiento que tiene Nmap en lua
-sV
Para que los puertos que encuentre abiertos nos muestre las versiones
-p-
Escanee todo el rango de puertos, que en total hay 65535
--open
Solo los puertos abiertos
--min-rate
Que no envÃe paquetes más lentos que X
-v
Verbose, que muestre por pantalla los puertos que vaya encontrando antes de acabar el escaneo
-n
Para que no haga resolución DNS
-Pn
Para que no haga Host Discovery
-oN
Que el escaneo actual lo ponga en X archivo en formato normal (nmap).
Encontramos los siguientes puertos abiertos
22 --> OpenSSH 8.4p1
80 --> nginx 1.18.0
Enumeración
Puerto 80
En el código fuente encontramos lo siguiente en un comentario

Hacemos fuzzing con dirsearch a ver si encontramos algun directorio
Realizamos fuzzing al index.php ya que es la única ruta que encontramos, vamos a ver si encuentra algun archivo en index.php?FUZZ.
-c
Formato coloreado
--hc
Que no muestre el código que le establezcas [Ej: --hc=404,403)
-t
Numero de hilos
-w
Wordlist
-u
URL
Y encontramos justamente lo que salÃa en el código fuente -->
tag
Ahora realizamos fuzzing pero en el parámetro "tag"
-c
Formato coloreado
--hc
Que no muestre el código que le establezcas [Ej: --hc=404,403)
-t
Numero de hilos
-w
Wordlist
-u
URL
Encontramos 2 imagens en el "tag=":
Beauty
beauty
Explotación
Ambas imagenes salen lo siguiente:

Nos descargamos la imagen para ver si tiene algo oculto en la imagen, en este caso vamos a utilizar la herramienta steghide.

extract
La herramienta tiene 2 opciones, embed y extract, este caso queremos extraer, si quisiéramos incrustar deberÃamos utilizar embed
-sf
Especifique el nombre del archivo stego que se creará.
Es un usuario y una contraseña, sabemos que hay el puerto 22 abierto, vamos a hacer login a ver si son credenciales correctas.

Ha funcionado, asà que ahora solo toca enumerar el sistema para encontrar el vector de escalada.
Escalada de Privilegios
Enumeración básica sistema
Por ahora nada interesante que podamos abusar.
Passwd

Encontramos 2 usuarios validos
root
lion
Permisos SUID

No hay ningún binario SUID que podamos abusar
Permisos sudo

Parece que nuestro usuario actual puede ejecutar como sudo sin tener que poner credenciales el binario /bin/wtfutil
Vamos a ejecutar el binario a ver que es

Arriba a la izquierda vemos que hay un archivo de configuración, vamos a analizarlo bien a ver si podemos abusar.
Igualmente ya vemos que en el propio programa hay una pestaña que ejecuta el comando "uptime"
Leyendo el archivo de configuración veo que podemos cambiar el comando uptime a otro comando, en esta caso nos daremos una reverse shell para que tengamos una shell como root.

Cambiamos el args y cmd por los siguientes parámetros:
QuedarÃa asÃ

Nos ponemos en escucha:

Pero ahora si ejecutamos el wtfutil no nos dará la reverse shell ya que como ejecuta el programa como root, ejecutará el config.yml de root, y nosotros hemos cambiado el del usuario Lion.
Al hacer wtfutil --help vemos que se puede establecer con que config.yml queremos que se ejcute el programa

Asà que solamente debemos establecer que ejecute como root pero con el archivo de config de Lion
Y nos da la shell

User flag

Root flag

Despedida
La verdad es que está máquina me gusto muchisimo ya que nunca habia tocado esteganografÃa y me ayudo a aprender mucho del tema.
¡Espero que hayais disfrutado de la máquina!
Last updated