SAP
Como pentester profesional seguro que nos hemos enfrentado en ocasiones a evaluaciones de seguridad que son completamente nuevas para nosotros. Esto significa que deberemos documentarnos antes, durante y seguramente después que la evaluación de seguridad tuviera lugar.
Normalmente si buscamos en Internet solemos encontrar de todo pero realmente si buscamos sobre como realizar un pentest de un entorno SAP o como hacer un analisis de vulnerabilidades encontramos cosas desactualizadas, charlas de antiguas y sobre todo poca o ninguna metodología de trabajo.Quizás este sea el mayor problema que podemos encontrarnos cuando debamos auditar un sistema SAP, también debemos tener en cuenta que puede que el cliente nos solicite una evaluación de seguridad de la arquitectura y por tanto deberemos conocer que hacen cada uno de sus componentes.
Es evidente que si el cliente desea una revisión del la parte de SAP WEB puede que nos resulte sencillo configurar Burp y comenzar nuestro pentest, sin embargo si no se trata de este tipo de evaluación de seguridad y se nos requiere para algo más profundo entonces necesitamos conocer algunos puntos antes que voy a mencionar a continuación.
Componentes de SAP
Si buscamos información de cómo funciona una infraestructura SAP podremos encontrarnos con mil documentos propietarios de SAP que nos volverán loco. Por lo tanto vamos a mirar que es SAP de manera sencilla y para ello lo mejor es mirar la Wiki donde obtendremos una breve descripción de cuales son las funciones de este software tan popular en bancos y grandes organizaciones.
SAP Business Suite es un conjunto de programas que permiten a las empresas ejecutar y optimizar distintos aspectos como los sistemas de ventas, finanzas, operaciones bancarias, compras, fabricación, inventarios y relaciones con los clientes. Ofrece la posibilidad de realizar procesos específicos de la empresa o crear módulos independientes para funcionar con otro software de SAP o de otros proveedores. SAP está basado en una plataforma de tecnología integrada llamada NetWeaver. La suite puede soportar sistemas operativos, bases de datos, aplicaciones y componentes de hardware de casi cualquier proveedor.
Actualmente, proporciona soporte para las siguientes áreas empresariales:
- Finanzas
- Fabricación
- Aprovisionamiento
- Desarrollo de productos
- Marketing
- Ventas
- Servicios
- Recursos Humanos
- Gestión de la cadena de suministro
- Gestión de tecnologías de la información
Una vez que ya sabemos para que se utiliza esta plataforma podemos comenzar analizar sus componentes principales. Estos componentes que están implementados en NetWeaver Application Server (AS) es posible instalarlos en diferentes plataformas y diferentes sistemas operativos sin embargo las partes que más nos interesan a nosotros como pentesters son las áreas que tienes que ver con parámetros de configuración, transacciones, autorizaciones o incluso el área de reportes, de cualquier manera deberemos revisar lo siguiente.
- Seguridad de la red
- Remote Function Calls (RFC)
- Web Services
- Central User Management
- Los métodos de transporte
- Mantenimiento del sistema
- Mantenimiento de parches
- Monitoring
- Servicios de Log
Del mismo modo que en cualquier otra evaluación de seguridad deberemos seguir las siguientes fases:
- Fase de descubriendo de servicios SAP en la infraestructura
- Fase de evaluación de vulnerabilidades
- Fase de exploración
Conceptos Básicos de SAP
A continuación escribiré una breve introducción sobre algunos conceptos de SAP que nos interesa conocer y que debiéramos saber.
Instancias y sistemas: Se conoce como instancia de SAP aun grupo de componentes de SAP que nos proveen de uno o más servicios. Estos sistemas son identificados por SAP System ID o lo que se conoce como (SID). También debemos saber que las los sistemas (instancias) son parametrizados a través de perfiles.
Cliente: Los clientes son independientes en un sistema SAP y son identificados por tres dígitos. Los clientes por defecto son 000,001 y 066.
Transacción: Están relacionadas con las secuencias de diálogos que se mantiene con la base de datos el tipo de operaciones que se realizan. Los códigos que identifican estás transacciones son variados pero a continuacion muestro algunos ejemplos (SE16,KF01, SU01, ..)
Autorizaciones: SAP proporciona la viabilidad de configurar y asignar roles que contendrán a su vez las autorizaciones que nosotros le asignemos.
ABAP: Se conoce como ABAP el tipo de lenguaje de programación a alto nivel que es usado en SAP.
Reportes o programas: Los programas de BAR reciben los datos insertados por el usuario y estos realizan un reporte en base al formulario de una manera interactiva para el usuario.
Módulos: Existen diferentes módulos y funciones que permiten ser invocados de forma remota en SAP. Los módulos utilizan Remote Function Call o lo que conocemos como RFC.
Problemas más habituales detectados en una evaluación de SAP
Los problemas más habituales durante en un pentest tienen que ver con la configuración por defecto de SAP y que no es modificada por los administradores. Por defecto muchas configuraciones de SAP no son seguras y podemos tomar ventaja de ellas para comprometer el sistema por completo en ciertos escenarios.
El impacto de que una organización vea comprometido su sistema SAP es muy alto ya que este sistema normalmente almacena información confidencial o de carácter delicado.
Realmente nos contratan para detectar fallos en configuraciones, buscar debilidades en la infraestructura y de este modo incrementar la seguridad de los sistemas en base a nuestras recomendaciones.
Pentest
Para llevar acabo de forma correcta nuestro pentest deberemos tener nuestro arsenal listo para el pentest, esto incluiye las siguientes herramientas
- Sapyco
- Bizploit
- Nmap
- Herramientas para Rservices (rsh, rlogin, rexec)
- Cliente SQL para varios sistemas (Oracle, MSSQL)
- Herramientas para NFS y SMB
- Burp Suite
- Nessus
- Metasploit
- Por ultimo herramientas de ataques de fuerza bruta tipo Hydra.
Debemos de ser muy cuidadosos con las herramientas que utilizamos durante la auditoria ya que podríamos provocar posibles denegacio de servicio o incluso si modificamos algún valor en SAP sin entender cuál su consecuencia puede que sea un sistema innacesible.
Fase de descubriendo de servicios SAP en la infraestructura
Esta fase es la más aburrida pero es crucial para tener un buen resultado durante el pentest. En esta fase deberemos detectar y descubrir los servicios expuestos por la infraestrucutra y que pertenecen a SAP.
- Análisis del tráfico (Podemos configurar wireshark)
- Análisis de puertos
- Check la configuración desde su cliente SAPGUI
Los puertos tienen un formato pre-definido PRE+SYS.Number esto quiere decir que los dos primeros valores indican el servicio y los otros dos indican las el sistema
- Puertos comunes son : 32xx,33xx,36xx,39xx,3299x81xx
Herramientas como Metasploit,Sapyco o Bizploit pueden ser verdaderamente útiles durante esta fase a continuación un listado de todos los módulos de Metasploit que son útiles en esta fase.
Routers SAP:
- auxiliary/scanner/sap/sap_router_info_request
- auxiliary/scanner/sap/sap_router_portscanner
Recopilar información:
- auxiliary/scanner/sap/sap_service_discovery
- auxiliary/scanner/sap/sap_icm_urlscan
- auxiliary/scanner/sap/sap_rfc_client_enum
- auxiliary/scanner/sap/sap_soap_rfc_ping
- auxiliary/scanner/sap/sap_soap_rfc_system_info
- auxiliary/scanner/sap/sap_icf_public_info
- auxiliary/scanner/sap/sap_soap_th_saprel_disclosure
- auxiliary/scanner/sap/sap_soap_rfc_read_table
- auxiliary/scanner/sap/sap_rfc_read_table
- auxiliary/scanner/sap/sap_rfc_usr02
Ataques de fuerza bruta:
- auxiliary/scanner/sap/sap_web_gui_brute_login
- auxiliary/scanner/sap/sap_soap_rfc_brute_login
- auxiliary/scanner/sap/sap_rfc_brute_login
Ataques para ejecutar comandos en Windows o Linux
- auxiliary/scanner/sap/sap_rfc_dbmcli_sxpg_call_system_command_exec
- auxiliary/scanner/sap/sap_rfc_dbmcli_sxpg_command_exec
- auxiliary/scanner/sap/sap_rfc_sxpg_call_system
- auxiliary/scanner/sap/sap_rfc_sxpg_command_exec
- auxiliary/scanner/sap/sap_rfc_abap_install_and_run
- auxiliary/scanner/sap/sap_rfc_system
- exploit/multi/sap/sap_rfc_abap_install_and_run
- exploit/multi/sap/sap_rfc_sxpg_command_exec
- exploit/multi/sap/sap_rfc_sxpg_call_system
- auxiliary/scanner/sap/sap_soap_rfc_sxpg_call_system_exec
- auxiliary/scanner/sap/sap_soap_rfc_sxpg_command_exec
- auxiliary/scanner/sap/sap_soap_rfc_dbmcli_sxpg_call_system_command_exec
- auxiliary/scanner/sap/sap_soap_rfc_dbmcli_sxpg_command_exec
- exploit/multi/sap/sap_soap_rfc_sxpg_call_system_exec
- exploit/multi/sap/sap_soap_rfc_sxpg_command_exec
- exploit/multi/sap/sap_mgmt_con_osexec_payload
Ataques remotos vía SMB Relay.
- auxiliary/scanner/sap/sap_soap_rfc_eps_get_directory_listing
- auxiliary/dos/sap/sap_soap_rfc_eps_delete_file
- auxiliary/scanner/sap/sap_soap_rfc_pfl_check_os_file_existence
- auxiliary/scanner/sap/sap_soap_rfc_rzl_read_dir
- auxiliary/scanner/sap/sap_smb_relay
Módulos para crear usuarios en SAP
- auxiliary/scanner/sap/sap_soap_bapi_user_create1
- auxiliary/scanner/sap/sap_soap_rfc_susr_rfc_user_interface
- auxiliary/scanner/sap/sap_ctc_verb_tampering_user_mgmt
Módulos para interactuar con la consola de administración vía SOAP
- auxiliary/scanner/sap/sap_mgmt_con_abaplog
- auxiliary/scanner/sap/sap_mgmt_con_brute_login
- auxiliary/scanner/sap/sap_mgmt_con_extractusers
- auxiliary/scanner/sap/sap_mgmt_con_getaccesspoints
- auxiliary/scanner/sap/sap_mgmt_con_getenv
- auxiliary/scanner/sap/sap_mgmt_con_getlogfiles
- auxiliary/scanner/sap/sap_mgmt_con_getprocesslist
- auxiliary/scanner/sap/sap_mgmt_con_getprocessparameter
- auxiliary/scanner/sap/sap_mgmt_con_instanceproperties
- auxiliary/scanner/sap/sap_mgmt_con_listlogfiles
- auxiliary/scanner/sap/sap_mgmt_con_startprofile
- auxiliary/scanner/sap/sap_mgmt_con_version
Fase de evaluación de vulnerabilidades
Ahora que ya debiéramos tener toda la información del sistema que estamos auditando debo comentar también que algunos de los módulos o herramientas que he nombrado antes también sirven para la fase de explotación.
Contraseñas por defecto
Los puertos del servicio conocido como dispatcher y el puerto de la consola web deben ser analizarlos con determinación. El servicio dispatcher es donde se conecta por defecto el cliente SAP por lo tanto ganaríamos acceso directo al sistema si logramos un acceso como administrador con credenciales por defecto. A continuación algunas de las credenciales por defecto de SAP.
- SAP* – 06071992
- SAP* – PASS
- DDIC – 19920706
- SAPCPIC – ADMIN
- EARLYWATCH – SUPPORT
- TMSADM – PASSWORD
- TMSADM – ADMIN
Software desactualizado o fuera de soporte
Encontrar módulos desactualizados de SAP o clientes fuera de soporte son los casos más habituales dentro de la evaluación de seguridad de SAP. Esto suele ser porque el cliente no es actualizado por el usuario final y los módulos de producción suelen contener información delicada y que necesita estar accesible en todo momento. Estas son las causas mas habituales por los que el sistema SAP no suele ser actualizado y por lo tanto nosotros podemos ventaja de ello.
Esto es gran problema para la organización porque algunas de las vulnerabilidades conocidas son públicas y por lo tanto otorgan una gran ventaja al atacante que tendrá más posibilidades de éxito en caso de ataque.
Software de Terceros
No debemos olvidar que SAP es instalado en multitud de sistemas y que estos también debe de ser atacados y vulnerados (siempre y cuando este dentro del scope). No nos vale de nada tener todo SAP actualizado si luego los sistemas son vulnerables, de una manera u de otra lograríamos acceso a los datos y por lo tanto los sistemas deben ser auditados según la guía CIS de benchamark.