Resolución del CTF SECURITRON
💢Plataforma: TheHackersLabs💢
❌Nombre: Securitron
📈Nivel: PROFESIONAL
💻SO: Linux
🙋🏽♂️Creador: Lenam
https://thehackerslabs.com/securitron/
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 un chat.

Nos encontramos con un servicio de IA corriendo.

Si le pedimos un script para enumerar este subdominio no da un subdominio valido.

En el cual vemos que podemos logearnos.

Al no tener credenciales probaremos inyecciones sql.

Usaremos SqlMap descubriendo las bases de datos.


Ahora enumeraremos las tables de la base de datos pms_db.

Y ahora os usuarios de las columnas.

y los usuarios y contraseñas de la tabla users.


Una vez la hemo conseguido podemos acceder como usuario a la web.

Teniendo en cuanta que podemos cambiar la imagen, estableceremos una conexión con un script en de pentestmonkey en php pero antes de subirla lo capturaremos con burpsuite.

Si lo lanzamos así no nos deja por la extensión.

Así que lo engañaremos cambiando el content-type para que omita la extensión y se crear que es una imagen png.

Una vez subida le diremos que nos mande la respuesta al navegador.

En este momento nos ponemos en escucha con netcat y recargaremos la pagina.

Conseguimos entablar conexión.

Y enumeramos usuarios.

Además encontramos un puerto 3000.

Y como tenemos vhost vamos a investigar que hace, y vemos que es la API la cual se esta utilizando para el servicio de IA.

El usuario el cual lo esta ejecutando el securitybot mediante un proceso con node.

Como esta corriendo de forma interna apuntaremos a la ruta completa par a ver que información podemos obtener.

Intentaremos leer algún archivo interno mediante la API de securitybot.

Y conseguimos obtener la flag de user y una contraseña.

La cual es del usuario securitybot y podemos ejecutar el binario ar, con el cual podemos leer archivos privilegiados.

Así que nos iremos a por la flag de root.

Leeremos las tareas crontab del usuario root y vemos que esta ejecutando un script cada minuto, además tenemos una ruta la cual podemos leer «/home/securitybot/.local/bin».

No podemos modificar el archivo pero vemos que utilizar el binario date.

Y vemos la ruta del binario.

Dado que el PATH esta configurado de la manera que usara «el nuestro primero» crearemos un archivo llamado date con una revshell, recordemos que se ejecuta como root al ser su tarea cron, no nos queda mas que darle permiso de ejecución y esperar 1 minuto para obtener la revshell de root.

Especial agradecimiento al compañero Lenam por la creación y el conocimiento aportado en esta máquina.