Write-ups

Resolución del CTF BRIDGENTON


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.

Nos encontramos ante una web de universidad

Vemos un panel de inicio de sesión y ante la imposibilidad e hacer fuerza bruta nos registramos

Para el registro nos pide que subamos un archivo «jpg, jpeg y png»

Pero como somos unos traviesos vamos subir un «command injection» con «php«

Al negarnos la subida de archivos vamos a «bypasearlo» por extensiones

Y Vemos que nos acepta la extensión «.phtml«

Vemos que nos a registrado.

Y que tiene un directorio de «uploads» con el nombre de nuestro archivo.

Vemos que el archivo existe.

Si ejecutamos archivo funciona, así que vamos a mandarle un «revshell» puesto que tenemos ejecución remota de comados(RCE).

Y estamos dentro

Enumerando usuarios nos encontramos con el usuario «james».

Si buscamos permisos SUID no encontramos con base64.

Al consultar gtfobins vemos que podemos leer archivos con base64.

De esta manera navegando entre directorios nos encontramos con una clave «id_rsa» de usuario anteriormente enumerado.

Esta clave esta protegida con contraseña, así que primero sacamos el hash, y lo rompemos con john.

Damos permisos 600 a la clave id_rsa.

Y entramos con el usuario james, a nivel de sudoers vemos que podemos ejecutar como root sin proporcionar contraseña el archivo example.py que se encuentra en el directorio «/opt»

Si le echamos un vistazo al archivo vemos que es un script que importa la librería «hasslib» y convierte un texto en md5

Vemos los directorios donde Python busca los módulos y vemos que ejecuta la librería desde la ruta actual «»»

Mediante un «python library hihacking» nos creamos un archivo que haga una llamada a sistema para que ejecute unas bash con privilegios y ejecute nuestro script como libreria haslib.py.

Lo ejecutamos y nos convertimos en root.


Deja una respuesta

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