sábado, octubre 31, 2015

Y tu dinero se fue a las nubes por fiarte de esa chica en Wallapop

En el mundo del Fraude Online existen multitud de variantes. Desde las bandas organizadas del cibercrimen que son capaces de competir entre ellas por el control de las víctimas en guerras de bots, hasta el menudeo más insospechado para robar 10 USD a una víctima, una cuenta de Steam para comercializar con ella o robarle los objetos de un juego, o estafas clásicas como las de cambiar las notas de la Universidad

Figura 1: Y tu dinero se fue a las nubes por fiarte de esa chica en Wallapop

Cualquier dinero extra puede ser bueno para alguien con mucho tiempo y poco de lo primero. En este caso os traigo la historia de uno de los lectores con uno de estos personajes que se dedica a robar tarjetas de crédito a través de Wallapop.

Una oferta que no puedes rechazar

El comienzo de la historia es tan sencillo como crear un perfil en la red y poner algún objeto llamativo para su venta. En este caso, el usuario se llama "Paula" y supuestamente está en Getafe en la Comunidad de Madrid, pero como se puede observar aún no ha vendido ningún objeto, por lo que podríamos decir que su Karma o la confianza en su perfil debe ser ya pequeña. A la izquierda se ve cómo tenía a la venta un FIFA 16 para PlayStation4 por 40 €.

Figura 2: A la izquierda vende el FIFA 16 PS4, luego un iPhone 6S Plus regalado

A la derecha se puede ver como este usuario, después de la conversación que os voy a narrar, decidió retirarlo de la venta y poner su fantástico iPhone 6S Plus (que debe rondar los 900 o 1.000 €) por un increíble precio de 380 €. Toda una oferta a la que muchos despistados pueden sentirse atraídos. 

El devenir de los hechos

El protagonista de nuestra historia, convencido del precio y teniendo en cuenta que Getafe (Madrid) no le pillaba lejos, decidió intentar quedar con el comprador y pagarle el FIFA 16. Por desgracia, ante esta petición el vendedor alegó que se había mudado a Barcelona. No pasa nada. Nuestro protagonista tiene amigos en Barcelona así que propuso quedar en Barcelona pero... el vendedor está en Badalona, un poco más retirado y con menos posibilidades de que el comprador tuviera allí a un amigo.

Figura 3: La negociación hasta llegar al Google Doc

Al final, el comprador le dice que lo mejor es que se lo mande, que no se preocupe que es como un pago contra-reembolso, solo tiene que rellenar un formulario en una Pasarela de Pago Seguro, en el que se usa la imagen de un banco que he tapado, y donde hay que introducir los datos de su tarjeta de crédito, pero poniendo que el pago es de 0 €. Por supuesto, la pasarela no es más que un simple formulario de Google Docs.

Figura 4: El formulario para hacer un phishing a una pasarela de pago bancaria

Este es el phishing más guarro que he visto en mucho tiempo. Tanto, que hasta el formulario tiene la alerta de Google Docs puesta de que no se deben enviar usuarios y contraseñas. Claro, no se están enviando usuarios y contraseñas, solo se están enviando los datos de la tarjeta de crédito, así que no debe haber ningún problema con ello. 

Corolario y cierre

Lo peor de todo es que seguro que le ha funcionado en alguna ocasión este truco, y por eso sigue con ello, así que si detectas a alguno haciendo esto, denúncialo al sitio, denúncialo al banco que suplante, denúncialo a los cuerpos de seguridad y si no te hace caso nadie, pásamelo a mí que ya lo reporto yo a quién sea necesario.

Saludos Malignos!

viernes, octubre 30, 2015

Obtener la contraseña de Lync (Skype for Business) con PowerShell desde el Windows Credential Manager

Por vicisitudes de la vida me ha tocado enredar con el almacén de credenciales (Windows Credential Manager) en Microsoft Windows 7 - funciona igual en Windows 8, Windows 10 o Window Server 2012 -, todo gracias a ese preciado producto de Microsoft que es Outlook y su integración con Active Directory. Para lo que quiero hacer, Powershell es algo así como la herramienta definitiva ya que igual te vale para administrar los sistemas eficientemente como para hacer Pentesting con PowerShell en una red Windows. En el artículo de hoy, el uso de PowerShell podría decirse que su uso es para ambos fines, y que dependerá de cada uno el uso que se le quiera dar.

Figura 1: Obtener la contraseña de Lync con PowerShell

Para simplificar aún más las cosas voy a hacer uso del script Credman.ps1 del bello JimmyJoeBob Alooba que permite gestionar el almacén de credenciales de máquinas Windows, y que en este caso vamos a utilizar con la cuenta del propio usuario de la máquina - sin ser administrador del equipo -.

Acceso a datos de Windows Credential Manager

El funcionamiento es sencillo. Tras descargarlo, hay que firmar el script digitalmente, ya que tenemos aplicada la política AllSigned como forma de fortificación de ejecución de software en nuestros equipos Windows. En un primer intento, tras ejecutarlo y lista mis credenciales, sin sacar una contraseña alguna por el momento.

Figura 2: Listando credenciales almacenadas en Windows Credential Manager de Windows

Hay que comentar que en el almacén de credenciales de Microsoft no solo se guarda información permanente - lo que marcamos como "recordar contraseña" -, sino que también aparece información volátil y de sesión. Y aquí es donde entra en juego Microsoft Lync 2013.

Las credenciales de MS Lync (Skype for Business)

Supongo que si digo que actualmente se llama "Skype for Business" queda todo explicado sobre la idea de la herramienta. Una de las mejores posibilidades es la de integrarse en Active Directory e integrarse con líneas de telefonía dentro de la estrategia de Comunicaciones Unificadas que muchas empresas aplican. Además, se enlaza con Microsoft Outlook para obtener contactos, almacenar conversaciones, etcétera.

Una vez que se ha instalado en el equipo Microsoft Lync 2013 y se ha iniciado sesión, el comportamiento del script cambia. Si volvemos a lanzar exactamente el mismo script podemos ver que salen mis contraseñas de Microsoft Lync 2013 en texto claro.

Figura 3: Con Microsoft Lync con una sesión activa se muestran las credenciales

Si alguien es capaz de acceder durante unos instantes a mi sesión de escritorio y lanzar el script, en PowerShell podría robar mis credenciales para conectarse al correo electrónico, recursos de red, tal vez VPNs, etcétera. También podría hacer llamadas telefónicas a través de otra instancia de Microsoft Lync utilizando mi identidad y cargar todas las llamadas a mi cuenta.

Las credenciales de la cuenta de Microsoft Lync quedan ahí mientras que la sesión está abierta e incluso pasado un buen rato después de que se cierre la sesión se sigue mostrando Solo se borra automáticamente si se vuelve a abrir Microsoft Lync con otra cuenta o si reiniciamos la sesión. La explicación de por qué están las credenciales ahí se debe a la integración del servicio con todos los servicios. En algún momento necesitará autenticarse en otros servicios y por eso recuerda la contraseña en la sesión, aunque tal vez debería guardarla cifrada en el Windows Credential Manager.

Figura 4: En Windows Credential Manager se muestra que
la cuenta tiene la contraseña guardada, pero no se ve.

Una última prueba que queda por hacer es ver si la GUI del administrador de credenciales también muestra la contraseña o no.

Figura 5: Edición de datos de la credencial

Como se puede ver, parece que no. El interfaz gráfico sí que tiene alguna protección para no mostrar esa información sensible. Ni siquiera se muestra el campo con herramientas como WinSpy. Este funcionamiento es similar a cómo se guarda la cuenta de la sesión de Windows cuando se autentica en un equipo con un usuario de Windows Live.

Figura 6: Windows Credential Manager en Windows 8 con
almacenamiento de datos de Windows Live

La ventaja de este sistema tan sencillo de usar el script para listar las identidades frente a usar una herramienta más agresiva como Mimikatz o los volcados de memoria - para el caso de Microsoft Lync o cualquier otro sistema que almacene credenciales temporalmente sin cifrar - es que no es bloqueado por el sistema antimalware del sistema ni necesitamos privilegios de administrador para acceder a los datos. Al fin y al cabo no es más que utilizar herramientas del propio sistema como PowerShell con los permisos de usuario.

Autor: Jdeisusi

jueves, octubre 29, 2015

Ese que te escribe ha sido hackeado ¡Cuidado con él!

Como ya sabéis, hace no mucho que se ha lanzando el servicio de "He sido Hackeado" del que os hablé no hace mucho. Se trata de un servicio que, dada una dirección de correo electrónico, comprueba si ha sido filtrado en algún dump de identidades que se haya producido en la red, ya sea por culpa de un gran robo de identidad o de filtraciones en pastes de Internet

Figura 1: Ese que te escribe ha sido hackeado ¡Cuidado!

Como prueba de concepto, le pedí al creador del servicio que hiciera algún ejemplo de uso del API, como por ejemplo la integración en un add-on de Google Chrome para comprobar si las direcciones de los remitentes de los mensajes correo electrónico que te llegan a tu bandeja de entrada de Gmail han sido filtrados o no en algún lugar de Internet. Y así nació este add-on llamado Hacked e-mails checker for Gmail que puedes instalar.

Figura 2: Hacked e-mails checker for Gmail en Chrome Sotre

El funcionamiento es bastante sencillo. Cada vez que abras un mensaje de correo electrónico de Gmail desde Google Chrome con este add-on activado, la dirección de correo electrónico que del remitente será enviada vía API al servicio de He sido hackeado. Si allí no aparece en ningún sitio, entonces se verá un candadito de color verde, tal y como se puede ver en la imagen siguiente.

Figura 3: El remitente no aparece en la base de datos de He sido hackeado

Si por el contrario, el remitente aparece en alguna de las filtraciones catalogadas, entonces el candado que se podrá observar será de color rojo. Si se quiere conocer exactamente en qué filtración aparece, entonces hay que ir a la web de He sido hackeado y comprobar el punto exacto dónde apareció.

Figura 4: El remitente sí que aparece en la lista de e-mails filtrados

Esta comprobación podría ayudarte a tener más seguridad en el remitente de un mensaje que venga sin cifrar o menos. Podría ser una comprobación a añadir a la lista de cosas que probaba yo con el prototipo del proyecto Apolo basado en este algoritmo que hace años describí para verificar un poco mejor los remitentes de los mensajes de correo electrónico.

Figura 5: Iconos de advertencia creados por el plugin de Apolo en Gmail

Este es solo otro ejemplo de cómo se puede integrar el servicio. Nuestros compañeros de Sinfonier lo integraron en Bolts para poder usarlo en cualquier topología, así que si lo quieres utilizar en el concurso de Bolts y Topologías de Sinfonier y ganar hasta 3.000 USD, aquí tienes más ejemplos. Recuerda que puedes consultar ayuda sobre Sinfonier en la Comunidad de Eleven Paths que ya tenemos funcionando desde hace un para de semanas.

Saludos Malignos!

miércoles, octubre 28, 2015

Time-Based Web Browsing History Disclosure using HSTS & Tracking with HPKP (HTTP Public Key Pinning) Cookies

Este fin de semana ha tenido lugar la conferencia ToorCON en San Diego, unas conferencias en las que tuve el placer de participar hace ya unos 6 o 7 años. En ella un investigador ha publicado un para de vulnerabilidades de lo más inteligentes que pueden utilizar los sitios web para espiar la navegación de los usuarios.

Figura 1: Abusando de HSTS para espiar la navegación de los usuarios

Ambas técnicas, aprovechando la estructura de navegación cifrada usando HTTPs, abusando en ambos casos de HSTS (HTTP Strict Transport Security) para conseguir sacar información del historial de sitios visitados y para conseguir crear una supercookie

Time-Based Web Browsing History Disclosure using HSTS

Cuando un sitio web hace uso de HSTS, se lo notifica al navegador mediante un HTTP Header que envía al navegador en el que le informa de que a esa página web solo se puede conectar usando HTTPs, por lo que el navegador rechazará cualquier intento de conexión que se haga a ese sitio utilizando HTTP. Conocido esto, el investigador Yan Zhu hace uso de una función JavaScript que, pasada una lista de sitios web que utilizan HSTS, intenta conectarse a ellos pidiendo una imagen que no existe en el servidor web por medio de HTTP.
La conclusión es sencilla, si el sitio ha sido visitado previamente y no ha caducado el TTL - de forma natural o por un ataque vía NTP usando Delorean - que se marca en el HTTP Header de HSTS, entonces el navegador generará un error muy rápidamente y navegará vía HTTPs, ya que sabe que no puede conectarse vía HTTP a ningún recurso de ese dominio. Si por el contrario el sitio no ha sido visitado recientemente, entonces se tiene que producir la petición al servidor web del recurso solicitado para configurar HSTS y luego pedir el recursos, obteniendo un error con un tiempo de respuesta mayor.

Figura 3: Sniffly saca una lista de sitios con HSTS que puede que hayas visitado y que no

El atacante solo debe medir los tiempos de los errores para poder hacer un ataque de Time-Based Web Browsing History Disclosure basado una lista de sitios a consultar. Eso sí, esta técnica solo vale para sitios que hagan uso de HSTS. Para que lo pruebes, ha publicado una Prueba de Concepto online llamada Sniffly.

Tracking with HPKP (HTTP Plublic Key Pinning) en Google Chrome

La segunda de las vulnerabilidades se trata de una nueva supercookie que se puede crear en los navegadores Google Chrome. Ya conocemos desde algún tiempo la posibilidad de dejar una SuperCookie en los TTL de los HTTP Headers de HSTS, pero ahora el investigador hace un abuso de la implementación HPKP que no es más que la implementación de las técnicas de Certificate Pinning en Google Chrome. La idea es que HPKP permite poner un certificado distinto para cada usuario y lo que hace el ataque es generar un cadena de identificación distinta para cada uno de estos certificados.

Figura 4: Implementación de HPKP en Google Chrome. Consulta de Gmail.com

Así, cuando el cliente se conecta la primera vez, este recibe vía HPKP un certificado con un pineo de backup con un TEXT configurado. Después, cada vez que se conecta se fuerza un error y esta cadena de TEXT  e envía vía "report-uri" al servidor que se ha configurado. De esta forma tenemos una SuperCookie usando HPKP en Google Chrome

Las dos técnicas son muy curiosas y de gran aplicación hoy en día en todos los sistemas de WebBrowsing FingerPrinting para los entornos de tracking publicitario, seguimiento de huellas digitales y scoring de riesgos, por lo que no os debe caber la menor duda que desde ya van a empezar a estar en uso de forma masiva.

Saludos Malignos!

martes, octubre 27, 2015

Calendario de actividades: 2 al 17 de Noviembre de 2015

El día 1 de Noviembre es un día especial, y por tanto no lo voy a meter en esta lista, ya que es domingo y lo más probable es que después de la resaca de la noche anterior nadie tenga muchas ganas de participar en ninguna cosa. No obstante, llegado el lunes día 2 de Noviembre hay una buena cantidad de actividades que tal vez os interesen. Esta es la lista de eventos, charlas y cursos que tendrán lugar durante la primera quincena de este mes, por si os encaja participar en alguna.

Figura 1: Calendario de actividades del 2 a al 17 de Noviembre de 2015

Durante lo que queda de mes de Octubre solo tengo un evento, que tendrá lugar este 27 de Octubre pero que es un evento privado para personalidades del mundo de la política donde solo tengo una pequeña charla de unos minutos, y otro el día 31 de Octubre en un pequeño pueblo de Madrid, llamado Cobeña, en el que voy a estar con unos chavales. Luego, ya todo es en Noviembre.

4 de Noviembre [Online] Sesión de Q&A
Para ese día voy a participar en una sesión online de Q&A (Questions & Answers) sobre seguridad informática en general, a través de Microsoft Insider. Aún no tengo la URL de registro, pero seguro que en breve está publicada por la web de este medio.
9 de Noviembre [Barcelona] Gartner EMEA
Dentro de la Expo de Gartner en Barcelona, tendré una sesión el día 9 de Noviembre para hablar de seguridad y la identidad digital. En esta sesión presentaré el trabajo de AuthaaS que ya os publiqué hace unos días.
Figura 2: Gartner ITXPO 2015 en Barcelona

12 de Noviembre [Microsoft Ibérica - Madrid] DevOps OSS Azure
Este día regreso de nuevo a Microsoft, esta vez para un Meetup organizado alrededor del tema de DevOps OSS en Azure. Yo estaré dando una sesión, pero mi charla será algo distinta ya que voy a hablar de mi experiencia de más de 10 años como Most Valuable Professional en el área de Enterprise Security. La verdad es que con todo lo que llevo encima este año, para ese día tengo en mente hacer algo más divertido que otra cosa.
Figura 3: DevOps OSS Azure Day
El evento dura todo el día, y mi charla será por la tarde, pero creo que nos darán hasta comida gratis, así que... no te lo pierdas. Tienes que apuntarte aquí: DevOps OSS Azure Day.
17 de Noviembre [Madrid] G-Sick Minds Madrid
El día 17 habrá un día especial del evento G-Sick Minds - que comenzará un poco más adelante en A Coruña - ya que para el día 17 hay una jornada de Seguridad Informática y JavaScript que tendrá lugar en Madrid.
Figura 4: Ponentes de G-Sick Minds Madrid
La lista de speakers de este día no tiene ningún desperdicio. Puedes apuntarte en la web de G-Sick Minds. 
2 de Noviembre [Online] Curso Auditoría de Seguridad de Dispositivos Móviles
El próximo 2 de Noviembre tendrá lugar el comienzo de un curso online de 6 semanas de The Security Sentinel centrado en la Auditoría de Seguridad de Dispositivos Móviles. En este curso se entregará a todos los asistentes el libro de Hacking iOS: iPhone & iPad de 0xWord.
Figura 5: Curso Online de Auditorías de Seguridad de Dispositivos Móviles
Tienes más información en la web de: Auditoría de Seguridad de Dispositivos Móviles.
Y esto es todo, si hay alguna charla que sale durante estas dos semanas, ya intentaré avisar por las redes sociales, pero de momento ya tienes algunas actividades por si te encajan.

Saludos Malignos!

lunes, octubre 26, 2015

Configurar y utilizar Latch en Magento Community

Magento es un popular framework Open Source de e-commerce utilizado en Internet para el que en Eleven Paths no habíamos construido ningún plugin oficial. Y desde hace algún tiempo ya hay uno disponible realizado por José "Joc", un desarrollador certificado de Magento, así que desde ya puedes utilizarlo en cualquiera de tus instalaciones.

Figura 1: Configurar y utilizar Latch en Magento Community

El plugin de Latch para Magento está disponible en el siguiente repositorio de GitHub, del que puedes hacer un fork o colaborar. La URL es la siguiente: https://github.com/jochhop/magento-latch

Para que puedas configurarlo y utilizarlo, se ha hecho este pequeño manual que explica paso a paso el proceso de instalación de Latch en Magento, el proceso de configuración en el framework y cómo utilizarlo por los diferentes usuarios.

Figura 3: Guía para configurar y utilizar Latch en Magento 

Para que veas como funciona, el siguiente vídeo muestra en detalle cómo utilizar Latch integrado en una instalación de Magento, y como responde el sistema.


Figura 4: Vídeo demostrativo de uso de Latch en Magento

Si tienes alguna idea de cómo utilizar Latch, recuerda que tenemos un Concurso de Plugins con el que puedes ganar hasta 5.000 USD por tu idea - que puede ser tu Proyecto de Fin de Carrera, tu Proyecto de Fin de Máster, tu carta de presentación en el el mundo laboral, tus prácticas, etcétera. Si necesitas ayuda, también puedes contactar con nosotros y el resto de los desarrolladores que han hecho algo con Latch en nuestra Comunidad Eleven Paths, para que te sea mucho más fácil hacerlo.

Saludos Malignos!

domingo, octubre 25, 2015

"Elimínalo, pero que parezca un accidente"

La verdad es que le he tomado mucho cariño a mi último malignomóvil aunque llevo ya un tiempo dándole vueltas a cuál será el nuevo modelo que vendrá a ocupar mi atención. Los coches bonitos y rápidos siempre me resultaron cautivadores, pero hoy en día hay que mirar muchas cosas antes de meterse en un nuevo auto, sobre todo con los ataques de hacking que se puede producir en ellos. He de decir que no me considero un gran conductor de coches. Me distraigo con facilidad con mis pensamientos y emociones, por lo que un día que tenga mucho estrés emocional o que esté preocupado por algo, suele ser un día en el que puedo tener un incidente que me lleve a "cambiar la aerodinámica de mi coche de forma abstracta no premeditada".

Figura 1: "Elimínalo, pero que parezca un accidente"

Creo que de todos los vehículos que he sido dueño he tenido la "suerte" de probar el airbag de conductor. Algunas veces por culpa de otros, y algunas veces por culpa mía como os conté recientemente. Esa es una buena medida de seguridad que evita que te golpees contra el volante en cuerpo y cabeza, ahorrando muchas lesiones graves. Por eso es bueno que se revise periódicamente su funcionamiento. Y aquí es donde viene el asunto del tema de hoy, que está descrito en este paper.

Figura 2: Arquitectura de conexión para verificación de seguridad de auto

Un grupo de la Universidad de Tecnología y Economía de Budapest han estado trabajando en ver cómo sería engañar a un sistema de verificación de funciones de un auto para hacer un ataque dirigido y deshabilitar el airbag. Es decir, ir al taller donde habitualmente fuera un objetivo que se quisiera eliminar e infectar el equipo al que se conecta el software de verificación de la víctima - en el sentido más amplio de la palabra víctima - con un malware para hacer un ataque de man in the middle con inyección de DLLs. Algunas formas de hacer esto las tenéis en estos artículos, pero si no, se hace como con XCodeGhost y se reemplaza todo el software de diagnóstico:
- API Hooking para inyectar DLLs .NET con NetInternals
- Crear un Proxy de DLLs en .NET
- Uso de API Hooking en Windows para analizar binarios
- Inyección de código en ensamblados .NET

- Metiendo los dedos en el enchufe
La idea es que, realizando un hooking de las funciones en memoria se puede hacer un man in the middle de los mensajes que van del auto al programa de diagnóstico y de los que van del programa de diagnóstico al auto, para conseguir que, por ejemplo, mientras que el auto tiene el airbag de conductor desactivado el programa de diagnóstico emita un mensaje totalmente contrario, es decir, como que el airbag está correctamente configurado y activado.

Figura 3: Se inyecta una DLL que en memoria hace man in the middle de mensajes

En palabras de los investigadores esto sería como realizar un ataque "Stuxnet-Style", ya que se está engañando a los técnicos que revisan la seguridad del sistema, mientras que por detrás el airbag ha sido desactivado por el software malicioso en el equipo de diagnóstico infectado.

Figura 4: En Stuxnet desde el PC se manipularon los PLCs aquí se manipula la ECU

Los investigadores realizaron las pruebas con un Audi TT - precisamente el que fuera mi Malignomóvil I - y fueron capaz de eliminar la protección del airbag y sacar resultados contrarios en el software de verificación. Cualquier técnico que hubiera revisado con ese equipo cualquier Audi TT de un taller, habría obtenido que el airbag estaba funcionando correctamente mientras que el auto iría sin protección de seguridad.

Figura 5: Prueba de Concepto sobre un Audi TT Coupé

El resto sería esperar. Esperar al accidente. Esperar a que el coche tuviera necesidad de hacer uso de la función de airbag y no lo hiciera. Las investigaciones irían entonces por averiguar por qué falló el airbag, y sería necesario hacer un forense ... ¡al equipo de diagnóstico!, ya que todo lo que sucedió después fue normal. Un equipo que una vez usado podría hacerse desaparecer. Por supuesto, si esto además se puede hacer remoto como ya hemos visto en el pasado, la cosa es mucho más fácil para el atacante.

Figura 6: Diferencia entre el mensaje de airbag activado o desactivado

Por supuesto, con este sistema no solo se puede hacer la manipulación del airbag, sino de todos los mecanismos de seguridad que llevan hoy en día los vehículos, como el ESP o el ABS, que por si os quedan dudas también me han ayudado a salir de más de un entuerto en el que me he metido por caer en estado de ensoñación pensando en una mariscada, un concierto o cómo resolver un problema. Al final los mecanismos de seguridad están ahí para ayudarnos y si en un momento dejan de estar la cosa puede ser fatal. Eso sí, con este método... parecería un accidente.

Saludos Malignos!

sábado, octubre 24, 2015

Cómo NO debes publicar y retirar una app de Google Play

Con tanto ajetreo de viajes casi no he tenido tiempo de sentarme un rato a disfrutar del placer de la tecnología durante las últimas dos semanas. Cada momento lo he llevado cronometrado, tanto que he tenido que quitarle tiempo a las horas de sueño y descanso. Una vez acabado mi periplo por latinoamérica, me queda aún conseguir adaptar mi cuerpo a los horarios de sueño de la franja horaria de España por lo que hoy he estado en pie desde las 5 de la mañana y me he puesto a leer un rato los RSS, contestar algunos de los cientos de correos electrónicos que tengo sin procesar y, cuando me he aburrido, he ido a probar alguna cosa que tenía en mente con los servidores LDAP y las apps de Android.

Figura 1: Cómo NO debes publicar y retirar una app de Google Play

Como sabéis, desde hace años me gusta jugar con las técnicas de LDAP Injection y quería buscar algún ejemplo con un tipo concreto de servidor LDAP para probar unas cosas. Para ello, haciendo uso de Dorking & Pentesting con Tacyt, me busqué algún backend que pudiera estar construido en LDAP y que tuviera alguna aplicación para consultarlo.

Figura 2: Buscando apps en Android con links a LDAP

Como se ve aparecen 14 apps, pero una de ellas me llamó especialmente la atención. Se trata de una app que tenía el backend de acceso a los servidores LDAP construido con WebServices, tal y como ya publicamos en un artículo anterior

Figura 3: Enlaces a un backend LDAP accedido vía WebServices

Por desgracia, la app parecía que había sido retirada de Google Play hacía algún tiempo, así que lo más probable es que no estuviera ya disponible el backend. Es lo que se debe hacer cuando se retira una app del mercado.

Figura 4: La app estaba retirada de Google Play

Sin embargo, al probar se puede alcanzar la información de los WebServices aún activados, así que si tenía un poco de suerte tal vez toda la infraestructura detrás de la app también estaría funcionando.

Figura 5: El backend aún activo

Al mirar WebsService concreto para obtener información de los usuarios se puede comprobar que necesitamos unas credenciales de acceso. Por supuesto se puede intentar hacer un ataque de LDAP Injection en el acceso, pero en esta ocasión lo que hace la aplicación es utilizar el usuario y contraseña para hacer un Bind contra el árbol LDAP y luego genera el LDAP Search Filter con el resto de los parámetros XML, con lo que se necesita un usuario y password sí o sí para poder hacer la consulta al árbol.

Figura 6: Petición SOAP al WebService para hacer un LDAP Search Filter al árbol LDAP

Por supuesto, aunque la app está retirada, nosotros tenemos copia en Tacyt, así que me la descargué, la descomprimí, la decompilé y llegué al fichero donde la app - ya retirada del market - tenía configurado el usuario y contraseña para hacer Binding en el árbol LDAP. No deberías poner tus passwords en tus apps.

Figura 7: Código de construcción de llamada al WebService en la app con datos de árbol LDAP

El resto es sencillo. La petición SOAP va por POST, así que basta con abrir una herramienta como Burp y usando el Repeater hacer la petición al WebService para consultar al árbol LDAP.

Figura 8: Construcción de petición SOAP en Repeater de Burp
Figura 9: Respuesta del WebService con la salida del LDAP Search Fileter

El resto ya es probar los LDAP Search Filters y comprobar si la aplicación web es o no vulnerable a LDAP Injection, que tal y como se puede ver es así ya que podemos incluir parámetros en la consulta para hacer las pruebas que quería hacer.

Figura 10: Respuesta de error forzada con filtro LDAP inyectado

Recapitulando, en un solo ejemplo nos hemos topado con una app publicada en el market que tiene los siguientes errores de publicación y retiro de la app:
1) Tiene los WebServices del Backend expuestos a Internet.
2) Son vulnerables a LDAP Injection por medio de la llamada SOAP.
3) Publicó la app con las credenciales hardcodeadas.
4) Retiró la app y no retiró el servicio de backend.
4) Retiró la app y no cambió las credenciales.
Nunca se debe hardcodear una credencial, pero especialmente si retiras la app deberías retirar todo y cambiar las contraseñas que utilizaste.

Saludos Malignos!

viernes, octubre 23, 2015

"Wikilix": Un aventura de Astérix & Obélix inspirada en Wikileaks

Cuando iba de alumno al Colegio Público Pablo Sorozabal de Móstoles teníamos una hora de biblioteca a la semana. El ejercicio consistía en bajar en fila - o lo que pudiera considerarse una fila en niños de 11 y 12 años - para sentarnos a leer durante una hora. No había ningún requisito de lectura, podías seleccionar el título que quisieras de los que allí habían disponibles...y entre la lista de libros disponibles estaba la colección completa de Astérix y Obélix. Como os podéis imaginar, había cuasi batalla campal por conseguir alguno de los tomos de la colección y pasar la hora con risas. Y sí, yo también prefería leer un tebeo de los irreductibles galos a pasar una hora con algún clásico de la literatura universal - ya tendría tiempo más adelante en la vida, ¡qué leches! -.

Figura 1: "Wikilix" - Una aventura de Astérix & Obélix inspirada en Wikileaks

Sí, sé que la colección realmente es sobre las aventuras de Astérix, pero yo siempre me sentí más como Obélix. Yo era un niño de cara redondita y sonrosada que buscaba caerse en una marmita que le diera poderes infinitos. Además Obélix sabía disfrutar bien de la vida, unos buenos trompazos a los locos romanos para coleccionar cascos, ir a cazar y comerse unos buenos jabalíes con los amigos. De corazón puro tenía un amor infinito por Falbalá. ¿Quién no se enamoraría de Falbalá? Esa chica rubia y buena que... al final no le correspondía. Pero hasta eso se tomó bien Obélix.

Figura 2: Obélix enamorado de Falbalá

Con el fallecimiento de René Goscinny y lo mayor que se nos ha hecho Albert Uderzo - ahora tiene 88 años -, cada nueva aventura que hemos ido obteniendo ha sido un regalo para todos. Sí, tengo absolutamente todos los cómics de Astérix y Obélix, además de películas en VHS, merchandising y demás cosas relativas a estos personajes. Y por suerte, ya tenemos un nuevo tomo de Astérix y Obélix, aunque lógicamente con un nuevo equipo creativo que dicen haberse esmerado en cumplir con rigor los pasos necesarios para que todo buena aventura de estos héroes triunfe. Se garantiza que algún romano recibirá un manporro, que Asurancetourix no podrá cantar, que un pescado palpará la cara del algún galo en la batalla campal de turno y que al final habrá un gran banquete en el que todos - a excepción de los jabalíes - festejarán el estar unidos.

Figura 3: Uno de los muchos banquetes

En la nueva historia, eso sí, la trama viene a ser un reflejo de nuestra sociedad actual, por lo que al igual que el gran Francisco Ibáñez decidió dedicar un cómic a "El Tesorero" para dejar constancia en la historia el sentir de la sociedad en la que vive y el histrionismo de la realidad por la que nos toca vadear, en esta aventura de Asterix, titulada "El papiro del César" la trama torna de forma satelital a todo lo sucedido con Wikileaks y Julian Assange.

Figura 4: El Papiro del César

En este caso los intrépidos galos deberán ayudar a Doblepolémix, interesado en que se conozca que Julio César no dijo toda la verdad en su libro de La Guerra de las Galias, donde pudo haber ensalzado de más a los rivales tergiversando la realidad en provecho propio. Pero hay un papiro que demuestra la verdad.

Figura 5: Exposición del álbum 36 de Astérix

Toda una trama que, tras la persecución que sufrió Wikileaks con el encierro en la embajada de Ecuador, o lo vivido con las filtraciones de Edward Snowden, seguro que muchos vamos a reconocer en las situaciones que en cada viñeta se vivan. Yo ya tengo encargado mi tomo para mi regreso a Madrid, pero también para ir a la exposición que desde ayer 22 de Octubre y hasta el próximo 30 de Noviembre se hace de 36 páginas originales de este álbum número 36 de nuestros héroes. La exposición está disponible en la Biblioteca Eugenio Trías de Madrid, así que si puedes, no te la pierdas.

Yo sigo sin perder la esperanza de que Obélix consiga con su corazón de Menhir, enamorar a Falbalá y quedarse con la chica. Creo en los finales felices.

Saludos Malignos!

jueves, octubre 22, 2015

El adware para Android es como una gran familia

Durante el año 2015 hemos visto como se ha ido descubriendo una serie de familias de adware agresivo en el mundo de Android que las diferentes casas de seguridad han ido catalogando con diferentes nombres de familias. Trend Micro alertó sobre una familia de adware a la que se llamó Ghost Push. Los investigadores de Cheetah Mobile descubrieron el adware de Monkey Test. Desde FireEye tuvimos dos descubrimientos con NGEmobi/Hinynhe y Kemoge. Fortinet alertó de ODPA y por último, CheckPoint informó de BrainTest. Todos con nombres distintos para estas familias de muestras, pero en Eleven Paths hemos podido enlazar todas las familias entre sí para concluir que son el mismo grupo de personas cambiando de estrategias.

Figura 1: El adware para Android es como una gran familia

La idea es bastante sencilla, utilizando Tacyt hemos podido ir uniendo las piezas del puzzle y localizando las relaciones entre cada familia. Por ejemplo, las muestras de Brain Test utilizan los mismos dominios que las muestras de Kemoge. Entre NGEmobi y Kemoge también hay correlación de dominios, además que las características de los certificados utilizados para firmar las apps tenían características similares y aparecían con un genérico "google".  

Figura 2: Esquema de relación de singularidades entre cada familia

Prestando más atención a los certificados de NGEmobi/Hinynhe y Ghost Push se puede ver que han sido construidos de forma similar que los utilizados por ODPA que descubrió CheckPoint. Y entre Monkey Test, NGEmobi/Hinynhe y Ghost Push hay una característica muy peculiar con unos certificados que solo tienen una "b".

Figura 3: Detalles del certificado marcado como "b"

Al final, todos han ido reutilizando partes comunes de su código o forma de ser desarrollado que denota que son las mismas personas, que incluso llegan a compartir un API Key en una de las apps, tal y como se explica en el informe.

El informe de investigación con Tacyt

Para poder entender mejor toda la investigación, hemos creado un paper que hemos subido a nuestro canal de SlideShare donde se explica en detalle cómo se puede ir correlando cada singularidad entre cada familia de adware analizada durante este estudio. Aquí está disponible.

Como se puede suponer, con cada eliminación de una familia de adware o malware se acaba con las muestras disponibles, pero por supuesto los creadores siguen libres para intentar un nuevo truco y conseguir éxito en una nueva campaña.

Saludos Malignos!