OpenAdmin es una maquina de HackTheBox donde encontramos una vulnerabilidad RCE en OpenNetAdmin que aprovechamos para ejecutar una shell inversa. Accedimos al siguiente usuario con contraseñas almacenadas. Tras analizar el codigo fuente de una pagina, ejecutamos un Tunnel para obtener esta localmente y finalmente obtener una clave privada para acceder a otro usuario por SSH. Escalamos privilegios utilizando Nano e informacion de GTFOBins.
Informacion de la Maquina
Nombre | OpenAdmin |
---|---|
OS | Linux |
Puntos | 20 |
Dificultad | Facil |
IP | 10.10.10.171 |
Maker | |
|
MASSCAN & NMAP
Escaneo de puertos tcp y servicios con masscan y nmap.
|
|
HTTP
Pagina por default de Apache.
GOBUSTER - HTTP
Busqueda de directorios y archivos con gobuster.
|
|
/music
/sierra
/marga
/artwork
OpenNetAdmin 18.1.1 - RCE
En la pagina de /music
encontramos que la pagina login nos redirige hacia otra pagina diferente (/ona), en la cual esta corriendo el gestor OpenNetAdmin en su version 18.1.1
.
Este gestor tiene una vulnerabilidad del tipo RCE y encontramos un exploit (OpenNetAdmi - ExploitDB ) que aprovecha esta vulnerabilidad, ejecutamos dicho exploit pasandole la url como parametro.
USER - Jimmy
Ahora que podemos ejecutar comandos vamos a actualizar nuestra shell a una shell inversa utilizando PHP, descargando el archivo y abriendolo en el navegador para ejecutarlo.
|
|
Descargamos en la maquina:
|
|
Obtenemos nuestra shell inversa:
Entre los archivos de configuracion de la base de datos de OpenNetAdmin encontramos las credenciales para acceder a la base de datos, utilizamos la contraseña para obtener una shell con el usuario Jimmy.
Jimmy:
Credenciales:
jimmy:n1nj4W4rri0R!
USER - Joanna
Dentro de la carpeta /var/www/
donde usualmente se encuentran las paginas de apache, vemos que jimmy tiene permisos en una de las carpetas.
Cambiamos nuestra shell a SSH con el usuario Jimmy para poder enumerar los archivos dentro de la carpeta /home
y /var/www
.
En la carpeta principal de Jimmy encontramos un archivo PHP - post.php el cual hace una solicitud con curl (en PHP) enviando un usuario y contraseña y obtiene el resultado de la solicitud.
Al ejecutarlo nos muestra un error:
Pero la solicitud la hace hacia el localhost de la maquina en un puerto que no es publico.
En /var/www/internal, vemos que en archivo index.php existe una contraseña encriptada.
Con la ayuda de crackstation logramos obtener en texto plano la contraseña:
Credenciales:
jimmy:Revealed
Ahora que conocemos todo esto, traemos localmente el puerto 52846 utilizando SSH, visitamos la pagina y nos muestra un panel de logeo.
SSH:
|
|
Netstat:
Panel:
Ingresamos las credenciales que obtuvimos en el archivo index, y nos muestra una clave privada de SSH encryptada.
Utilizamos john the ripper para crackear la frase e iniciar sesion con la clave privada.
Frase:bloodninjas
SSH Joanna:
Obtenemos una shell y nuestra flag user.txt.
PRIVILEGE ESCALATION
Utilizamos sudo para ver los comandos que podemos utilizar sin contraseña, vemos que nano es uno de ellos, con la ayuda de GTFOBbins - nano obtenemos una shell commo root y con ello nuestra flag root.txt.
BTW Podemos agregar nuestra clave publica al archivo authorized_keys
del usuario root e iniciar sesion con nuestra clave privada.