Oopsie
1. 📝 Introducción
Nivel de Dificultad: Muy fácil.
Tags:
PHP: Lenguaje de programación utilizado en aplicaciones web personalizadas.
Apache: Servidor web ampliamente utilizado para alojar aplicaciones web.
Reconnaissance: Fase de recopilación de información para descubrir la estructura del sitio web.
Cookie Manipulation: Alteración de cookies para eludir medidas de seguridad.
SUID Exploitation: Explotación de archivos con el bit SUID establecido para escalar privilegios.
Authentication Bypass: Evasión de mecanismos de autenticación.
Clear Text Credentials: Credenciales transmitidas en texto plano, sin cifrado.
Arbitrary File Upload: Subida de archivos maliciosos para comprometer un sistema.
Insecure Direct Object Reference (IDOR): Acceso no autorizado a objetos o recursos a través de referencias directas inseguras.
Path Hijacking: Manipulación de rutas para ejecutar archivos maliciosos o acceder a información sensible.
2. 🛠️ Entorno
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.
3. 🔍 Reconocimiento
A continuación, se realiza el comando:
para realizar un escaneo de puertos y servicios detallado en la dirección IP.
4. 🚪 Acceso Inicial
Como podemos observar durante el escaneo el puerto 22 perteneciente al servicio SSH y el puerto 80 perteneciente al servicio HTTP están abiertos, por lo que se procederá a indagar más.
Revisando el código fuente encontramos esto interesante.
Probemos acceder a: http://10.129.245.165/cdn-cgi/login/. Tenemos permisos y hemos encontrado otra página que es un panel de Login.
Las credenciales son las de la máquina anterior de Archetype por lo que iniciamos sesión.
En las demás páginas, encontramos información sobre la marca y los clientes. Sin embargo, no podemos acceder a la página de Uploads porque no tenemos los permisos necesarios; se requieren derechos de super administrador.
El parámetro
id
en la URL parece indicar queid=1
corresponde al Administrador.
¿Podríamos obtener información sobre el usuario super admin si logramos adivinar su id? Probemos con el siguiente script en Python:
Al ejecutar el código, vemos que el id del super admin es 30, ya que la respuesta contiene la palabra super.
Ahora buscaremos directorios con la herramienta Gobuster a través de:
Es posible que el desarrollador haya olvidado implementar la validación de entrada de usuario, por lo que deberíamos probar si podemos subir otros archivos, como una shell web en PHP.
Logramos subir la siguiente reverse shell en PHP (shell.php
):
Durante nuestra enumeración del sitemap con Disbuster, encontramos un directorio llamado /uploads
, que probablemente contenga el archivo que subimos.
Ahora, iniciamos un listener en el puerto 443 con:
5. 🔑 Captura de la Flag
Una vez dentro investigamos distintos directorios para ver donde se encuentra la flag. La flag se encuentra en el directorio /home/robert.
Debemos escalar privilegios para encontrar la flag del root. Parece ser las credenciales para conectarnos a través de SSH.
Pertenece al grupo bugtracker.
Hacemos estos comandos en robert.
Tras ejecutarlo hacemos los siguientes.
Si ponemos cat /root/root.txt no se mostrará la flag
6. ❓Preguntas
Tarea 1: ¿Con qué tipo de herramienta se puede interceptar el tráfico web?
proxy Una herramienta que se utiliza para interceptar y analizar el tráfico web, permitiendo ver y modificar las solicitudes y respuestas entre el cliente y el servidor.
Tarea 2: ¿Cuál es la ruta al directorio en el servidor web que devuelve una página de inicio de sesión?
/cdn-cgi/login Este es el directorio en el servidor web que muestra una página de inicio de sesión, lo que indica un punto de acceso para la autenticación.
Tarea 3: ¿Qué se puede modificar en Firefox para obtener acceso a la página de carga?
cookie Modificar la cookie en Firefox puede proporcionar acceso a la página de carga de archivos que normalmente está restringida.
Tarea 4: ¿Cuál es el ID de acceso del usuario administrador?
34322
El ID de acceso del usuario administrador es 34322
, y puede ser usado para acceder a funciones administrativas en el sistema.
Tarea 5: Al subir un archivo, ¿en qué directorio aparece ese archivo en el servidor?
/uploads
Los archivos subidos al servidor se almacenan en el directorio /uploads
, donde pueden ser accesibles o procesados posteriormente.
Tarea 6: ¿Qué archivo contiene la contraseña compartida con el usuario robert?
db.php
El archivo db.php
contiene la contraseña compartida con el usuario robert
, lo que puede permitir el acceso a la base de datos o a otras áreas del sistema.
Tarea 7: ¿Qué ejecutable se usa con la opción "-group bugtracker" para identificar todos los archivos propiedad del grupo bugtracker?
find
El comando find
se ejecuta con la opción -group bugtracker
para identificar todos los archivos que pertenecen al grupo bugtracker
, útil para auditoría o explotación.
Tarea 8: Independientemente de qué usuario inicie el ejecutable bugtracker, ¿con qué privilegios de usuario se ejecutará?
root
El ejecutable bugtracker
se ejecuta con privilegios de root
, sin importar qué usuario lo inicie, lo que puede ser aprovechado para escalar privilegios.
Tarea 9: ¿Qué significa SUID?
set owner user id El SUID permite que un archivo se ejecute con los privilegios del propietario del archivo, en lugar de los del usuario que lo ejecuta, lo cual es crítico para la escalada de privilegios.
Tarea 10: ¿Cuál es el nombre del ejecutable que se llama de manera insegura?
cat
El comando cat
se llama de manera insegura, permitiendo que un atacante ejecute su propio código malicioso en lugar del comando legítimo.
Tarea 11: Enviar bandera de ususario
f2c74ee8db7983851ab2a96a44eb7981
Tarea 12: Enviar bandera de root
af13b0bee69f8a877c3faf667f7beacf
Last updated