Write-ups

Resolución del CTF CASA PACO

💢CTF DISPONIBLE EN TheHackersLabs💢

❌Nombre: Casa Paco
📈Nivel: Principiante
💻OS: Linux
💢Caregoría: Seguridad Ofensiva
🙋🏽‍♂️Creador: Curiosidades De Hackers & Condor Hacks
https://thehackerslabs.com/casa-paco/

Enumeración

Escaneo de puertos

Realizamos un escaneo de todos los puertos para saber cuáles están activos.
Los parámetros utilizados son:

  • -p- : Escaneo de todos los puertos. (65535)
  • -sS : Realiza un TCP SYN Scan para escanear de manera rápida que puertos están abiertos.
  • -sC : Realiz una escaneo con los scripts basicos de reconocimiento
  • -sV : Realiza un escaneo en buqueda de los servicios
  • –min-rate 5000: Especificamos que el escaneo de puertos no vaya más lento que 5000 paquetes por segundo, el parámetro anterior y este hacen que el escaneo se demore menos.
  • -n: No realiza resolución de DNS, evitamos que el escaneo dure más tiempo del necesario.
  • -Pn: Deshabilitamos el descubrimiento de host mediante ping.

Qué encontré:

  • El sistema estaba activo y respondía rápidamente.
  • Había dos puertos abiertos:
    • Puerto 22 (SSH): Utilizado para conexiones seguras a través de la red. El servicio era OpenSSH 9.2p1 Debian 2+deb12u4.
    • Puerto 80 (HTTP): Utilizado para servir páginas web. El servicio era Apache httpd 2.4.62.
  • El servidor web redirigía a http://casapaco.thl.

Explorando el Servidor Web: ¿Qué hay en la página?

Una vez que supe que había un servidor web, quise explorarlo más a fondo. Para ello, usé feroxbuster, una herramienta que busca archivos y directorios ocultos en la página web. Es como si estuviera revisando todas las habitaciones de una casa para ver qué hay en cada una.

  • Parámetros utilizados:
    • --url: La URL del servidor web que estoy analizando.
    • --w: La ruta de la lista de palabras que feroxbuster usará para buscar archivos y directorios.
    • -x: Las extensiones de archivo que quiero buscar (en este caso, phphtml y txt).

Una vez que supe que había un servidor web, quise explorarlo más a fondo. Para ello, usé feroxbuster, una herramienta que busca archivos y directorios ocultos en la página web. Es como si estuviera revisando todas las habitaciones de una casa para ver qué hay en cada una.

  • Comando utilizado:feroxbuster --url http://casapaco.thl --w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt
    • Parámetros explicados:
      • --url: La URL del servidor web que estoy analizando.
      • --w: La ruta de la lista de palabras que feroxbuster usará para buscar archivos y directorios.
      • -x: Las extensiones de archivo que quiero buscar (en este caso, phphtml y txt).
  • Qué encontré:
    • Varios archivos relacionados con imágenes y estilos de la página web, como /static/styles.css y /static/img/oreja.jpg.
    • Un archivo interesante llamado llevar.php, que parecía ser un formulario para hacer pedidos de comida para llevar.

Probando el Formulario: ¿Podemos inyectar algo?

El archivo llevar.php permitía a los usuarios hacer pedidos de comida. Intenté inyectar comandos en el formulario para ver si el sistema era vulnerable a ataques de inyección. Es como si estuviera intentando abrir una cerradura con una ganzúa.

  • Qué pasó:
    • El sistema respondió con un mensaje de erroren ciertos comandos: Error: Pide comida no intentes hackearme. Los callos están muy ricos.
    • Aunque no pude inyectar comandos, descubrí que el formulario se ejecutaba con el usuario www-data, lo que podría ser útil más adelante.

Al querer listar me di cuenta que llevar.php estaba duplicado con llevar1.php

Ademas llevar.php tenia filtros que bloqeaban las peticiones

Cosa que no le pasaba a llevar1.php consiguiendo listar usuarios

El puerto 22 (SSH) estaba abierto, así que intenté acceder al sistema mediante hydra, una herramienta que prueba combinaciones de usuarios y contraseñas hasta encontrar una válida. Es como si estuviera probando miles de llaves en una cerradura hasta encontrar la correcta.

  • Comando utilizado:hydra -l pacogerente -P /usr/share/wordlists/rockyou.txt ssh://192.168.18.156 -t 64
    • Parámetros explicados:
      • -l pacogerente: El nombre de usuario que estoy probando.
      • -P: La ruta de la lista de contraseñas que hydra usará para intentar acceder.
      • ssh://192.168.18.156: La dirección y el protocolo del sistema al que estoy intentando acceder.
      • -t 64: El número de hilos (intentos simultáneos) que hydra usará para acelerar el proceso.
  • Qué encontré:
    • La contraseña del usuario pacogerente era dipset1.
    • Con esta información, pude acceder al sistema mediante SSH.

Escalada de Privilegios:

Aunque ya estaba dentro del sistema, el usuario pacogerente no tenía permisos de administrador. Para escalar privilegios, necesitaba encontrar una vulnerabilidad que me permitiera ejecutar comandos con permisos de root. Es como si estuviera buscando una llave maestra para abrir todas las puertas del sistema.

  • Monitoreando procesos: Usé una herramienta llamada pspy64 para monitorear los procesos que se ejecutaban en el sistema. Antes mandandonos la herramienta con scp. Noté que un archivo llamado fabada.sh se ejecutaba periódicamente con permisos de root.

Modificando el archivo: El archivo fabada.sh originalmente solo escribía un log con la fecha y hora

. Añadí un comando para asignar permisos especiales a /bin/bash, lo que me permitiría ejecutar comandos como root.

  • Resultado: Una vez que el archivo se ejecutó con los cambios, pude ejecutar /bin/bash con permisos de root, convirtiéndome en administrador del sistema.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *