Volvemos con otro reto en el blog, siguiendo la temática de Mr Robot por si deseas conocer y ver los anteriores retos tienen en el siguiente enlace Retos de Snifer@L4b's. y ahora venimos con este nuevo, recuerden que esta en la temática de MR Robot ;).


Se identifico el siguiente QR Code de AllSafe en un dispositivo USB el cual necesita de tus conocimientos para identificar el mensaje.
Se irán dando pistas a partir de hoy Viernes a las 00:00 Horas por Telegram en el canal del blog como  bajo el HashTag #AllSafeMrRobot, la resolución del mismo se dara a conocer en Marzo o bien hasta que alguien lo resuelva, recuerda si lo haces y gustas compartir como lo resolviste apoya al blog!

Una Cosa Es Cuestionar Tu Mente Y Otra Es Cuestionar Tus Ojos Y Oídos. ¿Pero Acaso No Es Lo Mismo?
Creditos a Boddby por el FanArt


Regards,
Snifer
Leer Mas
Probablemente muchos conocen la aplicación (app) SOSAFE (https://www.sosafeapp.com) y quizás muchos la ocupan y la tienen instalada en sus smartphones y esto se debe a la gran cobertura que tuvo el lanzamiento de la app y también a las muchas polémicas que han surgido en torno al uso y objetivo de la misma.


Figura 1: Logo de SOSAFE

Sin embargo, para los que no la conocen es la aplicación más descargada en el país, con más de 5 millones de usuarios (casi un tercio de todos los chilenos), el desarrollo y lanzamiento de esta app se enmarcó en el programa Cascos Históricos y Centros Cívicos, financiado por la Subsecretaría de Prevención del Delito del gobierno de Chile.

¿Para que sirve?, principalmente para Reportar, alguna situación de riesgo que necesite ser informada, seleccionando el tipo de incidente, se puede describir la situación, sacar una foto y la municipalidad y los vecinos más cercanos serán notificados. Tiene un Botón de Pánico y ante una emergencia, presionando el botón la municipalidad será notificada inmediatamente y se pondrán en contacto.

Vale la pena mencionar que el nivel de seguridad en las aplicaciones móviles es muy similar al que tenían las aplicaciones web hace 15 años atrás, con esto quiero decir que no hay mucha cultura respecto aplicar buenas prácticas de seguridad en la codificación y configuración de las app, la mayoría tienen vulnerabilidades, pero la gran diferencia es la criticidad de la vulnerabilidad, hay desde las informativas, donde muchas veces no es necesario hacer nada, hasta las críticas, que pueden exponer información confidencial o privada y/o cambiar la configuración del smartphone, de hecho se han vuelto tan populares, que incluso OWASP tiene su propio ranking de las vulnerabilidades top 10 de móviles (https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10).



Figura 2: Top 10 Owasp Mobile

Por estas razones fue que en el Centro de Excelencia (CoE por sus siglas en ingles) de Dreamlab Technologies (https://dreamlab.net) decidimos analizar la app para conocer su nivel de seguridad, ¿qué encontramos? Lo detallamos a continuación.

¿Es Segura?


Lamentablemente no, todas las vulnerabilidades que a continuación exponemos fueron reportadas responsable y confidencialmente hace más de 90 días al Equipo del Centro de Respuestas a Incidentes de Seguridad CSIRT (por sus siglas en ingles) del Ministerio del Interior (https://www.csirt.gob.cl).

Se detectaron varias vulnerabilidades críticas en la app, pero nos concentramos en la que expone información de los usuarios, que incluye datos personales privados, como nombre, apellido, correo electrónico y ubicación exacta de la persona a través del GPS.

Detalle de la Vulnerabilidad

Haciendo análisis del tráfico de la app se pudo detectar que la comunicación se realiza en texto claro mediante el protocolo HTTP y no HTTPS (cifrado), sin embargo, algunos de los datos si van cifrados en la capa aplicativa, pero se puede conocer la llave como se describe en el siguiente párrafo. http://api.sosafe.cl.

En el ingreso a la app en el login o ingreso, debido a que los datos se envían sin cifrar se puede observar que el ingreso se realiza utilizando como único factor de autenticación la combinación de correo electrónico + identificador generado por la app al endpoint (smartphone del usuario). Esto permite a una persona mal intencionada posicionada entre la app y el usuario como “hombre en el medio o MiTM” obtener dichos datos e impersonar al usuario. La comunicación posterior al ingreso utiliza el mismo canal sin cifrar, algunos mensajes incluyen en el cuerpo de la respuesta datos codificados en base64 con contenido encriptado con el algoritmo AES, modo CBC. Pero, la llave se deriva de constantes encontradas en el código y de el identificador del aplicativo y es fácil de encontrar por un atacante, debido a que el código es accesible ya que la app no cuenta con ningún tipo de protección contra ejecución de usuario con privilegios de administrador o root o decompilacion.
 
Figura 2: Parte del código de la app donde se encuentra la llave

La app obtiene los reportes desde el servidor mediante un json (acrónimo de JavaScript Object Notation, es un formato de texto ligero para el intercambio de datos) codificado, pero utilizando las llaves para decodificarlo o mediante un análisis dinámico en operación adjuntándose las funciones decrypt2 y encrypt de la clase cl.sosafe.panicbuttonandroid.app.bl.util.Mcrypt se pueden obtener los datos en claro, los cuales incluyen datos personales privados como nombres, email y ubicación exacta, aunque el reporte haya sido anónimo.

 
Figura 4: Json decodificado en claro con datos personales privados

Esta semana descubrimos que, gracias a la vulnerabilidad, también se puede impersonar a los usuarios y cambiar de manera no autorizada los datos del usuario (nombre, dirección, email, etc.) y escribir un reporte/incidente a nombre de otro usuario. A continuación, se demuestra en la foto, donde se puede observar una prueba que realizamos desde Suiza en mi perfil de SOSAFE (Yo no escribí ese reporte)


Figura 5: Reporte realizado de manera no autorizada

Al día de hoy los permisos excesivos y vulnerabilidades se mantienen en la app, por lo tanto, se da la paradoja de que la app más popular de chile y que se ha convertido en un gran servicio municipal y que al día de hoy es la batiseñal digital contra la delincuencia, es insegura y expone datos personales de sus usuarios incumpliendo lo dispuesto en la ley 19628 sobre protección y almacenamiento de datos personales.

Gabriel Bergel
CSO
Dreamlab Technologies
Leer Mas
Hey! hey! nueva entrada en el blog, es así continuamos mejorando de a poco la serie de entradas de Burp Suite en la cual si andas comenzando a conocer la herramienta puedes hacer uso de ella y aprender, y si no te gusta Burp tienes la opción de OWASP ZAP PROXY.


Como lo dice el título la entrada, se tiene un plugin que nos permite realizar la enumeración de subdomoinios el cual es Domain Hunter y en esta entrada especificaremos la instalación y el uso.

Instalación y Ejecución del Plugin

Como siempre para la instalación procedemos a descargar el JAR que lo tenemos disponible su github, así que no es necesario configurar el path que si tienes algun problema referente a ello tienes el proceso del mismo en Burp Suite XXV - Configuración de Plugin en Burp Suite.


Una vez que seleccionamos el Plugin y seleccionamos OPEN tendremos el siguiente resultado, en el caso de no tener ningun error por la versión de JAVA o que se tenga de manera inadecuada descargado el plugin.

Para la puesta en marcha solo necesitamos que este activo el proxy en Burp Suite y una vez lo tengamos listo dentro del "scope", nos dirigimos al TAB Domain Hunter


Tenemos que ingresar el dominio en el primer campo y despues dar el click  en Search para obtener los sub-dominios.

La otra opción y lo que recomienda el trabajo con el plugin es de utilizar después el SPIDER ALL  que iniciará con un crawler de la misma herramienta para identificar la existencia de otros subdominios en el contenido del sitio web.
Vale aclarar que se tiene en el mismo Github el proceso de funcionamiento e instalación, pero no está demás tenerlo en el blog.

"La locura, a veces, no es otra cosa que la razón presentada bajo diferente forma." - Goethe

Regards,
Snifer
Leer Mas
Ultimamente ando haciendo uso de Telegram como una herramienta continua para varias cosas, desde la descarga de audio realizar tweets, tener feeds a la mano, e incluso con la integración de IFTT con el servicio me permite agregar tareas a RMT Remember The Milk herramienta que uso para GTD y no olvidarme tareas tanto del hogar como del trabajo.


Esta semana de camino al trabajo descubrí un BOT particular el cual brinda información si una cuenta tiene algun leak, es decir si alguna contraseña relacionada al correo fue expuesta por el hackeo de algun servicio, Robin Pass pueden darle click y les dara el acceso respectivo al mismo para iniciarlo es con el comando /start y como tenemos a continuación nos indica que el mismo hace uso de publicaciones liberadas, también nos da a conocer que no comparte los datos y únicamente en caso de encontrar que el correo cuenta con contraseñas asociadas envia un email al mismo.



Para validar  solo debemos escribir el correo electrónico que deseamos validar, en el caso de que exista alguna contraseña asociada nos da a conocer en mi caso de las 3 cuentas que probe 2 si tuvieron tras recibir el correo electrónico veo que una era solo numeros y de los otros 2 por lo visto una API KEY de donde no lo se o no recuerdo.



Ahora esto de que nos sirve o que utilidad se le puede dar a este pequeño? Se tiene un alto grado de probabilidad, de que una persona use la misma contraseña en mas de un servicio, por lo tanto si en primera instancia validamos con RobinPass y luego vamos a buscarnos la vida con algun leak público caso reciente de hace un mes atrás llegariamos a tener una mayor opción a obtener la contraseña o un potencial patrón.

Se que esta segunda entrada de la semana se ve algo pobre, no tuve el tiempo para dedicarme a terminar una entrada de Hacking 101 que se viene sobre Enumeración de nombres cortos, al mismo tiempo ando preparando el material para el primer Podcast de Dame una Shell de este año, como siempre espero que sea de su agrado esta entrada y las que vienen, y por cierto que BOTS en Telegram usas? Puedes compartirlo en el Chat.

El principio es la mitad del todo. Pitágoras de Samos

Regards,
Snifer.
Leer Mas
Hace como 3 años se tuvo la entrada de Fortificando NMAP con VulnScan y hoy primer día del 2018, seguimos energizando a NMAP en colaboración directa con Vulners el cual es una base de datos de Vulnerabilidades y Scanner.


Lo que hace este NSE (Nmap Script Engine) es el de consultar a Vulners acerca de las vulnerabilidades, que afecta a la versión del puerto identificado, es decir si  realizamos un análisis de puertos a un HOST y este tiene unicamente el puerto 80 que esta corriendo un Apache 2.2.15 tendremos en el resultado las vulnerabilidades que afectan a dicha versión, vale aclarar que esto puede ser un potencial falso positivo, ya que el servidor puede estar con dichas modificaciones de las versiones al intento, pero este proceso nos ayuda a identificar potenciales vulnerabilidades del activo, a continuación un ejemplo de lo mencionado.


Instalación del NSE Vulners

Pasamos a describir la instalación del NSE para ello es necesario ubicar donde esta nmap esto podemos hacerlo con locate o whereis.

Snifer@Labs:# whereis nmap
nmap: /usr/bin/nmap /usr/share/nmap /usr/share/man/man1/nmap.1.gz

La ubicación es en /usr/share/nmap  y accedemos a la carpeta scripts.


El siguiente paso ya estando en el directorio scripts descargamos el vulners.nse, esto pueden hacerlo de manera gráfica o con un wget en la terminal paso el comando a continuación

Snifer@Labs:/usr/share/nmap/scripts# wget https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/vulners.nse

Se tendría el siguiente resultado.


Para un conocimiento general las librerias de nmap que necesita para el funcionamiento son las siguientes:

http
json
string

Ejecución de Vulners

Para la ejecución del NSE tenemos que agregar la bandera -scripts vulners con -sV que la funcionalidad es determinar el servicio y la versión que se encuentra


Snifer@Labs:# nmap -sV --script DOMINIO/IP

A ello podemos agregar un no ping, o bien fragmentar para eludir algún WAF pero siempre considerando que -sV tiene que estar como bandera, ahora el resultando de un escaneo es el siguiente.


Se tiene a continuación el repositorio en Github por si quieren  seguirlo ;).
Además del enlace de la serie de entradas de Pentesting con Nmap aquí.

Mis mayores éxitos fueron producto de decisiones que tomé cuando dejé de pensar e hice sencillamente lo que me parecía correcto. #Kvothe

Regards,
Snifer
Leer Mas