Llegar al
Sistema Gestor de Bases de Datos (SGBD) en cualquier proceso de
Ethical Hacking es fundamental. Ahí están los datos y suele ser la pieza más preciada. Si un atacante consigue llegar y acceder con privilegios se verían afectados los pilares de la seguridad:
La confidencialidad, la Disponibilidad y la Integridad. En otro día vimos en un artículo cómo es posible
descubrir la infraestructura SAP de una organización, y hoy vamos a ver cómo continuar para descubrir dónde está el
SGBD que utiliza el sistema
SAP de una empresa gracias a un componente fundamental en los entornos
SAP: el
ICM (Internet Communication Manager), responsable de la comunicación del sistema
SAP con Internet mediante los protocolos
HTTP, HTTPS y SMTP.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWWkOKeuOO1qhnm4xol5HC75ZPAPQyTVhXWN8fMzYTdWBuCY2G3MzukFtf9ytihq1H7RtMIXnnseyWAnneZ_07BLwQdx-XNtYen4OcMm0X9IaLGtOtLZNElrR36BLOHvG11iZR/s640/SAP0.jpg) |
Figura 1: Y de tu SAP a conocer tu motor de Bases de Datos |
Todos los sistemas
SAP utilizan un
Sistema Gestor de Base de Datos Relacional (
SGBDR) donde mantienen centralizada la casi totalidad de la información manejada por este software de gestión (información de clientes, pedidos, proveedores, etcétera). Dada la naturaleza de esta información, lo lógico es que este
SGBD se encuentre en la red interna de la empresa y sólo desde allí se admitan las peticiones a las bases de datos.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZgpFhOZ3z54udoEWjS_TJofj6Bq_Hy_hhAbjcFUO3uHKz8FTVckoA_xVkUVrmXG7KpfqYgW6AzTp82WBkxPOcA58-o-I72TtE_G2Fbf_qJomFcJOUHbeQhiBhVLZOEZmdK9zf/s640/SAP1.png) |
Figura 2: Arquitectura del sistema que recibe las peticiones desde Internet |
En este artículo se veremos cómo, aprovechándonos de una mala configuración en el
ICM del sistema
SAP, en ocasiones, es posible conocer el tipo de
SGBD es utilizado por el sistema, parte del direccionamiento interno de la empresa donde se encuentra el
SGBD, así como el sistema operativo que corre en el
host del servidor de bases de datos.
Módulo sap_icf_public_info
Para descubrir el
SGBD del sistema
SAP de una empresa, puede usarse el módulo
sap_icf_public_info de
Metasploit disponible
en el GitHub de la empresa Rapid7.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1_XAhe606bld0-Ge6UqTf_ZuCyfgnbBiENyNwVoKYp_j0Mkwpm2VInzgANRaHGvDbBDajPCBV0FKo_qC4p7UkcWMxVXi2J8IJ5dDMuQHk9IctB7vsLbzTvUKTWh3laSLhoEoT/s640/SAP2.png) |
Figura 3: Información del módulo sap_icf_public_info en Metasploit desde Kali Linux |
Lo que hace este módulo es aprovechar parte de la configuración por defecto del componente
ICM, para que éste pueda reenviar peticiones
HTTP/S a un recurso
XML que guarda la información sobre el
SGBD usado en el sistema
SAP, versión del sistema operativo del host sobre el que corre el servidor de base de datos, direccionamiento
IP interno, etcétera.
La configuración del módulo es muy es sencilla, ya que la mayoría de las veces basta con indicar el en parámetro
RHOSTS la dirección pública del sistema
SAP expuesto en
Internet (
set RHOST 200.x.x.x). Por defecto, el módulo realizará peticiones
HTTP al puerto
8000/TCP del sistema
SAP.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc4-13_7kZxX8dAM6uSFzzYkE1nkUcSGCvHOIMHRMF7FbQLGeJr16MPO564z-vwVzjeikuotXnrGbIyMZQrPHBGIbEgLsffVGy_ylmcb6Y17mX5WyVkIl8d7IfcsE7izuPOO1k/s640/SAP3.png) |
Figura 4: Configuración del módulo sap_icf_pulic_info |
Descubriendo los Sistemas Gestores de Bases de Datos
Tras lanzar el módulo, observamos que devuelve información sobre un
SGBD, en este caso
Oracle, el nombre del servidor de base de datos,
sappbobd, el nombre del
host sobre el que corre,
sapboci, así como la dirección
IPv4 interna que tiene asignada,
192.168.241.40. Además, el sistema operativo es un
SunOS.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY9-Oc7L3XqN0q8adZ99yiFrt2I_YhhwPevfagebc4sUWSvCmCthFkHiG3CdMUETqhNFW2M6JpO8ICHBcrZXai4a-L9kSR1rep5qmBWraY7xcSUpIrAcKXTDBzWogjBvMeLKqP/s640/SAP4.png) |
Figura 5: Información de un SGBD Oracle y el host en el que corre |
En este otro caso, tenemos que el
SGBD es
MSSQL de
Microsoft, el nombre interno del servidor de base de datos es
SVRPROERP\PRD, el nombre del host es
SRVPROER y el sistema operativo es un
Windows NT.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk4r5_cEEYdHfIqOZdIorlJz5V7bRFGB2WJOLIDFX4kjrGcghIWNmQcX5K9V17f5cGXQq87dMnCQ3HJnByMN88fAZasOKRyniEuOE6LRgu43n6hDbDxMgUdv1PUhiTOx0M45Wl/s640/SAP5.png) |
Figura 6: Información de un SGBD MS SQL Server del Host en que corre |
En este otro ejemplo, tenemos que el
SGBD es un
DB/400 de
IBM, el nombre del host y del
SGBD coinciden,
sapprod, el sistema operativo sobre el que corre el
SGBD es
OS/400 de
IBM.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihucVVPXsAyv3ISRUjPqTJPwFlFpbLT1H1qmQzUYMutU9_HN7HtWpNCotffD060U4Yo8mds45AYgHPYiUtx2aVxZln-vrfJuGYYy8_UZ39yVBbpC6HLwSkXsY4pJ_FoozBdoTw/s640/SAP6.png) |
Figura 7: Información de un SGBD DB/400 de IBM y el host en que corre |
Análisis del tráfico de red generado por el módulo
Siempre que se lanza un módulo en
Metasploit es interesante capturar y analizar el tráfico de red que genera, ya que puede proporcionarnos más información que la meramente devuelta por el módulo. Descubrimos que el módulo
sap_icf_public_info realiza una petición por
GET vía
HTTP de un recurso
XML cuya
URI es
/sap/public/info.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY_vtd0aBsbDmJWR6RPm7vQRF6hw3b8pYqNfP6sXkAmqqHcu7Wa1WLX4mvxzIesDBLxKCpdhYkiVkMocrkJRtzZHPmUPklx_BsCdL4_EqVCO6rPN70vWm7aizqhwsxZ7rK2RLp/s640/SAP7.png) |
Figura 8: Flujo TCP de la petición realizada al sistema SAP |
Dado que es una petición bajo el protocolo
HTTP, conociendo la
URI (/sap/public/info), la dirección
IP del sistema
SAP y el puerto
TCP que recibe la petición, es posible construir la
URL completa y acceder al recurso
XML directamente desde un navegador web.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha1x3kj_o1rbgj0K9LEB8njhhgbFoZAmlh31IqBA9MWpdulP9yEhQ_hZiiVkcHhRZTA_PZAldVKCupi9YH2WUTxRM5ttVSiJGyu6TXERgvABIPk7Z8kfAUG9vLq4irA7AG251v/s640/SAP8.png) |
Figura 9: Resultado de la petición generada desde un navegador web |
Conclusiones
Para evitar este tipo de fugas de información del sistema
SAP y evitar que sea indexada por los principales motores de búsqueda, bastaría impedir que el componente
ICM realice la petición del recurso
XML directamente desde
Internet mediante el protocolo
HTTP, permitiendo las peticiones únicamente desde la dirección
127.0.0.1 de
localhost o indicando qué
hosts son aquellos que sí tienen permiso para consultar la información del recurso
XML.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1nRC8NYDmFFmOtq18-YtAyBOtLm-uz7L_FDRZkeXgea7fqik9H4SRZoJv7KBRa-MPQv3I4D9s60OrHaVwqJc_IWsnW5lNA2t6rYYiRQBeLeO4V0NsXTGhaKnBfXs1OT4DguVG/s640/SAP9.png) |
Figura 10: Zona de la configuración de los hosts con acceso al recurso XML |
Autor: Amador Aparicio de la Fuente (@amadapa)
Escritor del libro "Hacking Web Technologies"
1 comentario:
Interesante articulo que entre lineas dice algo. El sploit en si ya consigue la informacion con wireshark solo confirma que puede llegar al XML.
Publicar un comentario