Mostrando entradas con la etiqueta SAP. Mostrar todas las entradas
Mostrando entradas con la etiqueta SAP. Mostrar todas las entradas

viernes, agosto 25, 2017

Y de tu SAP a conocer tu motor de Bases de Datos

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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"

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"

viernes, noviembre 09, 2012

No aprendas SAP... si quieres transformar el mundo

El miércoles pasé por mi EUI-UPM del alma para debatir sobre las oportunidades laborales para los nuevos informáticos, y allí se produjo un debate curioso sobre qué deberían estudiar y aprender los chavales durante su tiempo en la Universidad.... y salió por ahí que deberían aprender SAP, ya que había mucho trabajo de ello... algo que a mí me horrorizó ipso-facto sólo de pensarlo.

En mi época el lenguaje de moda para los negocios era COBOL, algo que empezaba con IDENTIFICATION DIVISION y terminaba con toda la imaginación y magia de la que te habías imbuido después de verte en TRON ¡conduciendo una jodida moto de luz, hermano! Como yo era un culo inquieto, antes de entrar en la Universidad ya había aprendido a programar en Basic, COBOL, Pascal, C y alguna que otra cosa más, que aún me recuerdo haciendo scripts en D.O.S. usando el edlin.

Sin embargo, como ya os he dicho muchas veces, lo que me hizo pensar de manera distinta y entender mejor el mundo de la informática fueron otros nombres que aparecen mucho menos en las ofertas de empleo, como Dijkstra, Melkman, Fourier, Jarvis, Niklaus Wirth y su "Algoritmos + Estructuras de Datos = Programas", y un largo, largo, largo etcétera que me ocuparía varios blogs enunciar. 

En la Universidad no hay que aprender tantos lenguajes concretos - y menos de negocio -, eso será consecuencia natural en tus ratos libres de la necesidad de plasmar tus pensamientos. De hecho, cuando estaba oyendo eso de que había que aprender SAP en la Universidad o que los ingenieros informáticos debíamos aprender la gestión de los porcentajes de beneficios, planes de negocio y demás, me imaginaba a Steve Jobs paseando por la Universidad, tocándose los huevos como él reconocía, y apuntándose a caligrafía para aprender a hacer letras bonitas que era lo que le apetecía en aquel entonces - tal y como comentó en su archifamoso discurso de la Universidad de Stanford -.

También recordaba la historia que nos contaron los chicos de Cyberhades y el HomeBrew Computer Club, donde Wozniak se dedicaba a explicar a sus compañeros cómo implementar las operaciones de coma flotante en hardware, o a enseñarles la placa que se le había ocurrido hacer para una computadora personal. Otro pensamiento que me vino a la mente fue si estarían Larry Page y Sergey Brin haciendo planes de marketing cuando implementaban el motor de Google ahí, a pelote ellos con sus computadoras.

De hecho estoy casi convencido de que cuando se estaba creando Youtube y Twitter seguro que todos los ingenieros cortaban a la hora en punto para recuperar sus faltas de asistencia a las clases de contabilidad, marketing y planes de negocio, y que Linus Torlvalds, después de mandar a tomar por culo al primero que le tocaba los huevos lo primero que hacía era escribir unas disculpas públicas no fuera a ser que no vendiera su Linux.

En definitiva, que si cuando estás creando tecnología o implementando ideas en la Universidad tu primer objetivo es SAP o el marketing, entonces mal vamos. Durante los años que estas en la carrera tienes mucho tiempo que luego nunca volverá, así que aprovéchalo para hacer la tecnología que te gustaría usar. El lenguaje a utilizar que sea el que mejor te venga para plasmar tus ideas, y si ninguno te gusta, pues create tu propio lenguaje, que para eso damos Compiladores e Interpretes y Teoría de Autómatas y Lenguajes Formales.

Luego cuando salgas de la Universidad, sal e intenta hacer lo que te guste con la tecnología y si no consigues cambiar el mundo, no pasa nada... siempre podrás llevar una vida y un trabajo normal apuntándote a un curso y siendo un programador de SAP, que tampoco está tan mal, pero intenta canalizar toda esa energía que tienes en los años de la Universidad para crear tu propia tecnología.

Saludos Malignos!

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares