Bike
Last updated
Was this helpful?
Last updated
Was this helpful?
Nivel de Dificultad: Muy fácil.
Tags:
Custom Applications (Aplicaciones Personalizadas): Son aplicaciones desarrolladas específicamente para satisfacer necesidades particulares de una organización. A menudo, estas aplicaciones no se desarrollan siguiendo las mejores prácticas de seguridad, lo que puede dar lugar a vulnerabilidades. Dado que son personalizadas, pueden ser difíciles de mantener y auditar, lo que aumenta el riesgo de ser objetivo de un ataque si no se gestionan adecuadamente.
NodeJS: Es un entorno de ejecución para JavaScript en el servidor, ampliamente utilizado para construir aplicaciones web escalables y rápidas. Aunque es potente y flexible, si no se implementa correctamente o se usan dependencias inseguras, NodeJS puede ser vulnerable a ataques como la ejecución remota de código o la inyección de dependencias maliciosas.
Reconnaissance (Reconocimiento): Es una fase inicial crucial en el proceso de pruebas de penetración, en la que se recopila información sobre el objetivo. Esto incluye escaneo de puertos, identificación de servicios y posibles vulnerabilidades, y análisis de la infraestructura. El objetivo del reconocimiento es descubrir posibles puntos de entrada y explotar configuraciones incorrectas.
Remote Code Execution (Ejecución Remota de Código): Es una vulnerabilidad crítica que permite a un atacante ejecutar código malicioso en el sistema de la víctima de manera remota. Puede explotarse a través de diversos vectores como aplicaciones web, servicios mal configurados o vulnerabilidades en el software. La ejecución remota de código pone en peligro la integridad y la confidencialidad de los sistemas afectados.
Server Side Template Injection (SSTI) (Inyección de Plantillas del Lado del Servidor): Es una vulnerabilidad que ocurre cuando un atacante puede inyectar código malicioso en las plantillas del lado del servidor, lo que permite la ejecución de código en el servidor. Esta vulnerabilidad puede ser utilizada para ejecutar comandos del sistema operativo, robar datos o comprometer el servidor, especialmente si el sistema de plantillas no valida correctamente los datos introducidos por el usuario.
Nos descargamos nuestra VPN y nos conectamos.
Iniciamos la máquina y verificamos la conexión.
Observamos que tenemos conexión y que es una máquina Linux ya que su ttl=63.
A continuación, se realiza el comando:
para realizar un escaneo de puertos y servicios detallado en la dirección IP.
Como podemos observar durante el escaneo, el puerto 22 perteneciente al servicio SSH y el puerto 80 correspondiente a HTTP están abiertos. A continuación, se indagará más sobre estos servicios.
Vemos la información de la página.
Ponemos {{7*7}}
para ver si tenemos una vulnerabilidad SSTI.
Copiamos el payload de Node.js.
Codificamos el código en formato URL y lo pegamos en el campo email de la petición.
Task 1: ¿Qué puertos TCP identifica nmap como abiertos? Responde con una lista de puertos separados por comas y sin espacios, de menor a mayor.
22,80
Task 2: ¿Qué software está ejecutando el servicio que escucha en el puerto HTTP/web identificado en la primera pregunta?
node.js
Task 3: ¿Cuál es el nombre del marco web según Wappalyzer?
express
Task 4: ¿Cuál es el nombre de la vulnerabilidad que probamos enviando {{7*7}}?
Server Side Template Injection
Task 5: ¿Cuál es el motor de plantillas que se está utilizando dentro de Node.js?
handlebars
Task 6: ¿Cuál es el nombre de la pestaña de BurpSuite utilizada para codificar texto?
decoder
Task 7: Para enviar caracteres especiales en nuestra carga útil en una solicitud HTTP, codificamos la carga útil. ¿Qué tipo de codificación usamos?
url
Task 8: Cuando usamos una carga útil de HackTricks para intentar ejecutar comandos del sistema, obtenemos un error. ¿Qué es lo que "no está definido" en el error de respuesta?
require
Task 9: ¿Qué variable es tradicionalmente el nombre del ámbito de nivel superior en el contexto del navegador, pero no en Node.js?
global
Task 10: Al explotar esta vulnerabilidad, obtenemos ejecución de comandos como el usuario que ejecuta el servidor web. ¿Cuál es el nombre de ese usuario?
root