lunes, agosto 14, 2017

Descubrir la infraestructura interna de SAP con Metasploit

Un ERP (Enterprise Resource Planning) es un software de gestión utilizado por empresas para la mejor administración y el aprovechamiento más optimo de sus recursos. También persigue simplificar los procesos involucrados en las gestiones de las empresas. Están íntimamente ligados a los sistemas de producción, ya que por lo general, gestionan inventarios, pedidos, etcétera.

Figura 1: Descubrir la infraestructura interna de SAP con Metasploit

SAP es uno de los ERP más conocido en el mercado y muy utilizado debido a la gran ventaja que presenta en la integración dentro de las compañías y al gran número de módulos que presenta para un montón de funcionalidades. En este artículo se mostrará cómo, en caso de no tener bien fortificado nuestro sistema SAP accesible desde Internet, es posible extraer e interactuar directamente con los host de la red interna de una empresa. traer los host que que se encuentran en la DMZ de la red empresarial.

Búsqueda de sistemas SAP accesibles desde Internet

Los sistemas SAP que vamos a localizar expuestos en Internet serán “SAP NetWeaver”. Se trata de una aplicación orientada especialmente a servicios que proporciona una fácil integración con todas las aplicaciones SAP. Lo primero, un poco de Hacking con Buscadores. Realizando una sencilla búsqueda en Google, se observan más de 2000 resultados:

Figura 2: Búsqueda de sistemas SAP NetWeaver en Google

También es posible usar Shodan para localizar este tipo de sistemas, utilizando para ello la cadena “SAP NetWeaver Application Server”, obtenemos un buen número de resultados.

Figura 3: Búsqueda de sistemas SAP NetWeaver en Shodan

Arquitectura del sistema SAP NetWeave

Una vez localizados estos sistemas, el siguiente paso es conocer cuál es la arquitectura que tienen todos ellos para saber qué dispositivo es el que comunica las peticiones que los usuarios realizan desde Internet con los servidores o host internos de la empresa.

Figura 4: Arquitectura perimetral de un sistema SAP NetWeaver

Como puede observarse, existe un elemento, el “SAProuter”, encargado de la enviar las peticiones que realizan los clientes del sistema, mediante su interfaz gráfica o navegador, con los diferentes servicios atendidos por los servidores que componen la plataforma, alojados en la red interna de la empresa.

Lozalización del SAProuter

Uno de los componentes más importantes dentro de la arquitectura SAP es el SAProuter, ya que es quién permite o restringe las comunicaciones de red entre el sistema ERP y el exterior.

Para conocer qué máquinas se encuentran dentro de la red interna de la empresa, lo primero será localizar el SAProute de un sistema que se encuentre accesible desde Internet. Utilizaremos el módulo sap_service_discovery de Metasploit. Por defecto no viene directamente integrado en Metasploit, pero es posible descargarlo directamente desde el repositorio de GitHub de la empresa Rapid7.

Una vez descargado el módulo, le movemos al directorio de Metasploit donde se encuentran los escáneres de SAP.

Figura 5: Diferentes módulos pertenecientes a la categoría scanner de Metasploit

Lanzamos Metasploit y comprobamos que el módulo está listo para utilizarse.

Figura 6: Módulo de Metasploit cargado para utilizarse

Como se ve en la descripción del módulo, su función es escánear los diferentes servicios que están a la escucha en un sistema SAP. Uno de ellos será el SAProuter. Tras configurar la opción RHOSTS con la dirección IP del sistema SAP expuesto en Internet, lanzamos el módulo ver si es posible localizar el SAProuter.

Figura 7: Descubrimiento del SAPRouter

Se observa que el SAProuter escucha las peticiones por el puerto 3299/TCP y que existen diferentes servicios:
• SAP Internet Communication Manager (ICM): escucha las peticiones por los puertos 8000/TCP y 8001/TCP y es el encargado de comunicar el sistema SAP con el exterior a través de los protocolos HTTP, HTTPS y SMTP. 
• SAP JAVA EE Dispatcher: encargado de distribuir las peticiones de los clientes a los diferentes procesos de trabajo y aplicar las políticas necesarias de planificación de procesos.
Obtención de información sobre el SAProuter

Localizado quién es el SAProuter, es posible usar el módulo sap_router_info_request de Metasploit para obtener si la tabla de rutas del SAProuter está accesible. Si es así, la posibilidades de conocer los servidores de la red interna de la organización serán altas.

Figura 8: Información del SAProuter

El módulo devuelve información sobre el directorio de trabajo donde se encuentra instalado el SAProuter y el nombre de la tabla de rutas usada (routtab) por el componente para poder enviar las peticiones de los clientes a los servidores correspondientes dentro de la organización.

Descubrir la infraestructura interna de SAP

Tras comprobar cómo el SAProuter es capaz de desvelar el nombre de su tabla de rutas, el siguiente paso será obtener parte o la totalidad de la infraestructura interna utilizada por SAP dentro de la red de la empresa. Para ello es posible utilizar el módulo de sap_router_portscanner de Metasploit. Tiene dos modos de funcionamiento:
• SAP_Proto: escaneo para detectar cuándo se está utilizando una ACL para denegar conexiones de capa 4. 
• TCP: permite escanear puertos TCP sin intentar detectar ACLs.
Configuraremos el módulo para detectar detectar máquicas en la red interna desde el SAProute (set rhost 195.x.x.x) con el puerto 445/TCP abierto (set ports 445). No sabemos el rango de direccionamiento interno de la organización - hemos probado una consulta al Primary Name Server y un ataque PTR Scanning al DNS pero no están expuestos los registros -, así que probaremos con el 192.168.0.0/16 (set targets 192.168.0.0/16). Podríamos haber hecho lo mismo con los rangos de direccionamiento interno 10.0.0.0/8 y 172.16.0.0/16. Existen más trucos para detectar los rangos internos de direccionamiento, pero aquí ha sido suficiente con probar.

Figura 9: Configuración del módulo sap_router_portscanner

Se observa cómo el módulo descrubre dos host en la red interna de la empresa con el puerto 445/TCP abierto.

Figura 10: Máquinas dentro de la red de la empresa con el puerto 445/TCP abierto

Conclusiones

Analizando la información de las pruebas realizadas, se concluye que:
• Un ERP como SAP NetWeaver es utilizado en multitud de empresas y organizaciones, y hemos visto una manera muy sencilla, haciendo un poco de Hacking con Buscadores, la manera de localizarlos en Internet. 
• En todos ellos, el elemento que comunica las peticiones que llegan desde Internet con la red interna de la empresa, es el SAProute, lo que hace especialmente interesante la localización de este tipo de dispositivo para ver si de él podemos obtener información de la red interna de la organización. 
• Si el SAProute no está bien configurado, proporciona información sobre la ruta absoluta donde se encuentra instalado, C:\saproute, de donde podemos inferir que muy probablemnete el sistema operativo de ese servidor sea Windows. 
• La posibilidad de que en la red interna de las organizaciones utilicen Windows como sistema operativo es alta, de ahí que se decida buscar por el puerto 445/TCP correspondiente al servicio Samba usado para el intercambio de ficheros. 
• Observamos cómo el esquema de direccionamiento de la red interna de la empresa es 192.168.0.0/24, ya que también se ha probado con los intervalos 10.0.0.0/8 y 172.16.0.0/16 y no se han obtenido resultados.
Autor: Amador Aparicio de la Fuente (@amadapa)
Escritor del libro "Hacking Web Technologies"

No hay comentarios:

Publicar un comentario