Vulnos2 es una maquina de TryHackMe, encontramos multiples vulnerabilidades en OpenDocMan las cuales explotamos para obtener credenciales y acceer al panel de Drupal, que luego nos permitio ejecutar una shell inversa. Ejecutamos un exploit que afecta al Kernel de Linux para escalar privilegios.
Room
Titulo | Vulnos2 |
---|---|
Descripción | Just a typical web server, nothing to be suspicious of here. |
Puntos | * |
Dificultad | Media |
Maker |
MASSCAN & NMAP
Escaneo de puertos tcp/udp y servicios.
|
|
WHATWEB
HTTP
Pagina en el puerto 80.
DIRBUSTER
Realizamos una busqueda de direcotrios, archivos html y txt con dirbuster.
|
|
HTTP - /jabc/
Encontramos dentro de la pagina principla un enlace que nos redirige hacia otra pagina.
Dentro de la pagina de Documentation a simple vista se ve que no hay contenido de esta pagina al analizar el codigo fuente de la pagina, observamos que existe texto oculto por razones de “seguridad”. En el texto nos indica que para visitar la documentacion de la pagina visitemos /jabcd0cs/
e iniciemos sesion con guest/guest
.
HTTP - /jabcd0cs/
Visitamos la pagina y nos muestra un panel para iniciar sesion.
Al iniciar sesion en la plataforma nos muestra un panel de control.
Vemos que la plataforma es OpenDocMan v1.2.7
.
OpenDocMan 1.2.7 - Multiple Vulnerabilities
Al investgar un poco mas acerca de esta plataforma encontramos que en especifico esta version de OpenDocMan tiene dos vulnerabilidades. La primera es una vulnerabilidad de Inyeccion de SQL y la segunda Improper Access Control.
SQL Injection - OpenDocMan 1.2.7
Comprobamos si la vulnerabilidad de SQLi esta presente en la plataforma con la url y parametros para ver el usuario (user()
).
Payload:
ajax_udf.php?q=1&add_value=odm_user%20UNION%20SELECT%201,user%28%29,3,4,5,6,7,8,9
Vemos que la vulnerabilidad esta presente ya que nos muestra el usuario. Para obtener los datos de la base de datos, utilizamos burpsuite para interceptar el trafico, guardamos el trafico del payload de SQLi de esta plataforma en un archivo response.req y utilizamos sqlmap con este archivo.
response.req
SQLMAP
Comando:
|
|
Database: jabcd0cs
[15 tables]
+-------------------+
| odm_access_log |
| odm_admin |
| odm_category |
| odm_data |
| odm_department |
| odm_dept_perms |
| odm_dept_reviewer |
| odm_filetypes |
| odm_log |
| odm_odmsys |
| odm_rights |
| odm_settings |
| odm_udf |
| odm_user |
| odm_user_perms |
+-------------------+
Database: jabcd0cs
Table: odm_user
[2 entries]
+----+-------------+--------------------+----------+----------------------------------+-----------+------------+------------+---------------+
| id | phone | Email | username | password | last_name | first_name | department | pw_reset_code |
+----+-------------+--------------------+----------+----------------------------------+-----------+------------+------------+---------------+
| 1 | 5555551212 | webmin@example.com | webmin | b78aae356709f8c31118ea613980954b | min | web | 2 | <blank> |
| 2 | 555 5555555 | guest@example.com | guest | 084e0343a0486ff05530df6c705c8bb4 | guest | guest | 2 | NULL |
+----+-------------+--------------------+----------+----------------------------------+-----------+------------+------------+---------------+
Utilizamos md5online.org
para obtener la contraseña del hash md5 del usuario webadmin.
Credenciales:
webmin:webmin1980
guest:guest
SHELL - PHP
Ya que tenemos las credenciales de administrador regresamos a la pagina principal /jabc/
y visitamos el panel de inicio de sesion y utilizamos las credenciales (webmin:webmin1980
), ya que tenemos control de las paginas habilitamos el modulo de PHP (PHP Filter), luego de esto agregamos codigo php con nuestra shell inversa a la pagina de ‘Documentation’.
PHP Modulo:
Codigo PHP:
|
|
Netcat:
Ponemos a la escucha nuestra maquina con netcat y el puerto 1337.
PRIVILEGE ESCALATION
Verificamos la version del kernel de la maquina y verificamos si existe un exploit para esa version con searchsploit.
Version de Kernel:
Searchsploit:
Descargamos el exploit, lo compilamos y lo descargamos en la maquina, le damos permisos al archivo de ejecucion, ejecutamos el archivo y obtenemos permisos root.
Obtenemos nuestra flag en /root/flag.txt.
ExploitDB:
OpenDocMan 1.2.7 - Multiple Vulnerabilities
Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - ‘overlayfs’ Local Privilege Escalation