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!

jueves, 4 de julio de 2019

Obtener el password de un proyecto de ZelioSoft 2 (Zelio)

Hola gente como estan?
Bien, en este post les traigo un método para obtener el password de los proyectos de  Zeliosoft 2.
Hay que tener en cuenta que este método funciona para los proyectos que tengan guardados en su pc, que estén protegidos contra modificaciones.
Bien, comencemos. Primero abrimos ZelioSoft y OllyDbg:


Una vez abiertos attachamos ZelioSoft de la siguiente manera:

Cuando presionamos "Attach..." nos saldrá el siguiente diálogo en el cual buscaremos el proceso, luego lo seleccionaremos y le daremos al boton "Attach":
Una vez cargado debemos presionar la combinación de teclas Alt + E, dicha combinación nos abre una lista de módulos ejecutables cargados, de esta lista debemos seleccionar con doble click el que tiene por nombre Zelio2 (columna Name):

Luego presionaremos la combinación de teclas Ctrl + B que nos abrirá un diálogo de búsquedas en el cual, en la textbox  HEX +00 pegaremos la cadena hexadecimal "C7 83 F8 E9 08 00 01 00 00 00 E8 E2 D2 FF FF" sin comillas y presionaremos el botón Search:
Nos posicionará en la linea que se ve seleccionada en la imagen, donde colocaremos un breackpoint 2 lineas mas abajo como está en la imagen (para poner o quitar un BP seleccionamos la linea y presionamos F2):
Luego le damos a la tecla F9 para que corra normalmente el programa y nos vamos al ZelioSoft donde seguiremos los pasos normales para abrir el proyecto en si, cuando le demos a la opcion abrir proyecto existente se nos pausará Olly debido a exepciones, es cuestion de darle a la tecla F9 hasta que continue normalmente y nos permita seleccionar el proyecto. Ni bien seleccionamos el proyecto y lo abrimos, el Olly se pausará sobre el BP que pusimos, en esta instancia veremos en el registro EAX el password del proyecto en hexadecimal, si le hacemos doble click a EAX, se nos abrirá un dialogo con detalles del registro mostrándonos el password en valor decimal con signo y sin signo:
Bien para el caso de mi proyecto de prueba el password era efectivamente 1444.

Este tutorial es a modo orientativo y sólo aplica a los proyectos que estén guardados localmente en el PC, no he probado aún intentar vulnerar un proyecto ya cargado en un Zelio.
Espero les sea de ayuda!

Saludos mi gente!