Glitch
La maquina glitch es una maquina sencilla, que para hacer una intrusión debemos vulnerar un parametro en el cual inyectaremos codigo node js para asi poder escalar privilegios haciendo uso de un archivo .firefox y de doas

Link Glitch
Created by infamous55
Metodología
Enumeración
Escaneo de puertos
Enumeración del puerto 80
Cambio de Token
Fuzzing
Explotación
Node js RCE
Escalar Privilegios
User
V0id
root
Walkthrough
Enumeración
Escaneo de puertos
Iniciamos con nusetra herramienta preferida a escanear los puerto de la maquina victima
Para entender un poco mas de los parametros que lanzamos con nmap podemos leer un poco lo siguiente:
-p-: Esta opción indica a Nmap que escanee todos los puertos en lugar de un rango específico. El guion ("-") significa "todos los puertos". Esto permite escanear todos los puertos desde el puerto 1 hasta el 65535.
--open: Esta opción le dice a Nmap que solo muestre los puertos que están abiertos. Los puertos abiertos son aquellos en los que un servicio está escuchando y aceptando conexiones.
--min-rate 1000: Esto establece la velocidad mínima de escaneo en 1000 paquetes por segundo. Cuanto mayor sea la velocidad de escaneo, más rápido se completará el escaneo, pero ten en cuenta que un escaneo más rápido puede ser más intrusivo y podría llamar la atención no deseada.
[IP-VICTIM]: Esta es la dirección IP del objetivo que se va a escanear. Debes reemplazarla por la dirección IP que deseas escanear.
-Pn: Esta opción indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Puedes usar esto si sabes que el host objetivo no responde a los paquetes de Ping.
-n: Esta opción le dice a Nmap que no realice la resolución de nombres DNS. Puedes usarlo si no deseas que Nmap realice búsquedas DNS inversas durante el escaneo.
-oG allportsScan: Esta opción le indica a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "allportsScan". Este archivo contendrá información detallada sobre los puertos abiertos y otros detalles del escaneo. Para entender un poco mas de los parametros que lanzamos con nmap podemos leer un poco lo siguiente:
-p-: Esta opción indica a Nmap que escanee todos los puertos en lugar de un rango específico. El guion ("-") significa "todos los puertos". Esto permite escanear todos los puertos desde el puerto 1 hasta el 65535.
--open: Esta opción le dice a Nmap que solo muestre los puertos que están abiertos. Los puertos abiertos son aquellos en los que un servicio está escuchando y aceptando conexiones.
--min-rate 1000: Esto establece la velocidad mínima de escaneo en 1000 paquetes por segundo. Cuanto mayor sea la velocidad de escaneo, más rápido se completará el escaneo, pero ten en cuenta que un escaneo más rápido puede ser más intrusivo y podría llamar la atención no deseada.
[IP-VICTIM]: Esta es la dirección IP del objetivo que se va a escanear. Debes reemplazarla por la dirección IP que deseas escanear.
-Pn: Esta opción indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Puedes usar esto si sabes que el host objetivo no responde a los paquetes de Ping.
-n: Esta opción le dice a Nmap que no realice la resolución de nombres DNS. Puedes usarlo si no deseas que Nmap realice búsquedas DNS inversas durante el escaneo.
-oG allportsScan: Esta opción le indica a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "allportsScan". Este archivo contendrá información detallada sobre los puertos abiertos y otros detalles del escaneo.
Enumeración de servicios y versiones
-p80: Esta opción especifica los puertos que se van a escanear. En este caso, se están escaneando los puertos 80. Los números de puerto están separados por comas y no se utiliza el rango de puertos.
-sV: Esta opción realiza la detección de versiones de servicios. Nmap intentará determinar qué servicios se están ejecutando en los puertos especificados y mostrará información sobre las versiones de esos servicios.
-sC: Activa los scripts de secuencia de comandos (scripts de automatización) de Nmap. Esto permite que Nmap ejecute scripts de detección y enumeración de servicios en los puertos especificados.
-Pn: Esta opción indica a Nmap que no realice el descubrimiento de hosts (Ping) antes de escanear los puertos. Si no se puede contactar con el host a través de Ping, Nmap aún intentará escanear los puertos especificados.
-vvv: Esto establece el nivel de verbosidad del escaneo en "muy alto". Esto significa que Nmap proporcionará una salida detallada que incluye información adicional sobre el progreso del escaneo.
[IP-VICTIM]: Debes reemplazar [IP-VICTIM] con la dirección IP del objetivo que deseas escanear. Este es el host en el que se realizará el escaneo.
-oN servicesScan: Esta opción le dice a Nmap que genere la salida en formato "greppable" (Grep) y la guarde en un archivo llamado "servicesScan". Este archivo contendrá información detallada sobre los servicios y versiones detectadas en los puertos especificados.
Puerto 80
En la web solo tenemos una imagen

Hacemos ctrl + u vemos el codigo fuente

Tenemos una ruta de una api por lo que podemos ir a la ruta
En la ruta encontraremos un texto en base64
Cambio de Token
El cual nos servira para usar como token, haciendo uso de cookie-editor una extensión del navegador

Ahora recargamos la web y podemos visualizar otra contenido en la web
Fuzzing
Teniendo la ruta /api/, vamos a enumerar subdirectorios
Encontramos el direcotio items
Hacemos una petición a sitio web y nos devuelve el texto there_is_a_glitch_in_the_matrix
Explotación
Despues de un buen tiempo pensando y enumerando descubrir que en la ruta http://[IP-VICTIM]/api/items existe un paramatro
Con wfuzz hacemos fuzzing y encontramos el parametro que haciendo uso de esto podemos ejecutar comandos
El siguiente post de ibreak nos ayudara a explotar esta vulnerabilidad
Node js RCE
Haciendo uso de burpsuite vamos a enviar nuestra petición, tenemos la peticion :
Enviamos la petición

Antes de enviar, ponemos a la escucha nc y tendremos el contenido /etc/passwd
¡Vamos, podemos ejecutar comandos!
Revershell
Para obetener una shell haremos lo siguiente:
Primero, creamos una archivo
index.htmlen donde tendra nuestra revershell
Segundo, iniciamos un servidor en python
Ahora vamos a obtener una shell en la maquina victima
Enviamos nuestra petición y obtenemos nuestra shell
Escalada de privilegios
Usuario user

Luego realizaremos un tratamiento de la tty
Enumerando encontraremos un directorio que es .firefox ddel cual podemos extraer credenciales.
Nos traemos a nuetra máquina atacante. Para copiar a nuestra maquina usaremos nc, haciendo lo siguiente
Atacante
Victima
Haciendo uso de firefox_decrypt.py podemos desencriptar las credenciales
Usuario V0id
Haciendo uso de las credenciales podemos logueanos como el usuario v0id
En la pista nos dice que sudo is bloat.. Buscando algo de información nos damos con el siguiente post de exploit-notes.hdks.org
Usuario root
Abusando de las congifuraciones podemos ejecutar comandos con doas

¡VAMOS!
Happy hacking
Last updated