miércoles, mayo 24, 2017

Cómo ejecutar en red Telefónica WannaCry File Restorer usando Active Directory

La semana pasada publicábamos Telefónica WannaCry File Restorer, un script escrito en Powershell con el que se podía recuperar archivos temporales afectados por el ransomware Wannacry. El script funciona bastante bien en los casos en los que el ransomware ha sido “cortado”, es decir, en un momento dado el proceso ha dejado de funcionar, ya sea porque haya sido parado con un error - muchos casos -  o porque se haya apagado o hibernado el equipo.

Figura 1: Cómo ejecutar en red Telefónica WannaCry File Restorer usando Active Directory

Lo interesante, y por lo que primero nos focalizamos en crear un script en Powershell - además de luego dotar a los usuarios de una versión escritorio de Telefónica WannaCry File Restorer,  es que cualquier equipo de IT que se haya visto afectado por este ransomware puede lanzarlo en su dominio/s con el objetivo de recuperar archivos, sin necesidad de que el usuario final participe en el proceso, aprovechando las posibilidades de Active Directory.


Figura 2: Telefonica WannaCry File Restorer (PowerShell Script)


Para mostrar cómo hacerlo hemos querido montar un pequeño entorno que conste de un dominio Microsoft con un Domain Controller en Windows Server 2016  en y con un par de máquinas Windows cliente.


Figura 3: Telefónica WannaCry File Restores Desktop Version


Por supuesto, se podría proveer la herramienta de escritorio a todos los usuarios, pero la idea es mostrar cómo un administrador del dominio podría lanzar el script Telefonica WannaCry File Restorer con el objetivo de que se ejecute en cada máquina del dominio de forma, totalmente, transparente al usuario, como vamos a ver en la PoC.

PoC:  Ejecutado en TWCFR usando AD

El escenario es sencillo: un controlador de dominio desde dónde invocaremos el script con una instrucción de Powershell, un par de máquinas con sistemas operativos cliente de Windows. Todo el proceso, por parte del equipo de IT, ocurre de forma transparente al usuario, lo cual es un proceso interesante, ya que no genera ruido en el trabajo del usuario.

En la siguiente imagen, se puede ver como invocamos al script de Telefonica Wannacry File Restorer. El comando Invoke-Command es utilizado en Powershell para ejecutar cualquier comando en Powershell y tiene la característica de poder ser ejecutado en un entorno remoto. Si las credenciales que se proporcionan son las de un administrador de dominio, el script podrá ser ejecutado en otras máquinas pertenecientes al dominio.

Figura 4: comando para invocar el script TWCFR desde Powershell

El parámetro –FilePath indica el script que debe ser ejecutado. Cuando el script comienza su ejecución podemos detectar sobre qué path se está ejecutando, en este caso sobre la carpeta %localappdata%\temp del usuario1. Esto puede verse en la siguiente imagen.

Figura 5: El script ejecutándose sobre la carpeta del usuario1

Sin duda, muchos equipos de IT afectados por la lacra del ransomware puede utilizar el dominio para llevar a cabo tareas de limpieza o restauración. En el caso de WannaÇry, cualquier equipo de IT afectado puede utilizar este método para recuperar archivos temporales que hayan quedado en los equipos. Os dejamos un video del funcionamiento del despliegue del script en un dominio Microsoft.

Figura 6: PoC ejecución de TWCFR en un Active Directory

Por supuesto, nosotros recomendamos el uso de herramientas de prevención para evitar cualquier ransomware que pueda afectar en el futuro a tus documentos, y como es el caso de Latch ARW.


Además, la utilización de políticas de backup (en un almacenamiento protegido) adecuadas es fundamental para poder luchar en igualdad de condiciones contra la lacra del ransomware.

Autores: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths y Fran Ramirez (@cyberhadesblog) escritor de libro "Microhistorias: anécdotas y curiosidades de la historia de la informática" e investigador en ElevenPaths

martes, mayo 23, 2017

WordPress Latch Enforcement: Cómo forzar el uso de Latch a todos los usuarios de WordPress

La seguridad de un sistema es tan fuerte como lo es en el eslabón más débil. Esta es una frase que seguro que muchos conocéis. En un proceso de fortificación de una plataforma tomar decisiones de cuándo una medida de seguridad no es optativo es fundamental. En este caso, el uso de un segundo factor de autenticación para gestionar la seguridad de las identidades, de forma obligatoria para todos, para conseguir la Máxima Seguridad en WordPress posible.

Figura 1: WordPres. Cómo forzar el uso de Latch a todos los usuarios. "Latch Enforcement"

En un artículo anterior os comentaba cómo se puede utilizar la característica de Lock on Request en Latch para forzar que se cierre automáticamente el Latch del usuario después de cada utilización, lo que evita que un usuario se deje el pestillo abierto "por error" u olvido. 


Figura 2: Ejemplo de WordPress con Latch Lock on Request


Hoy os quería dejar un truco para forzar el uso de Latch en todos los usuarios de tu WordPress. Es decir, que si un usuario no tiene activado Latch en WordPress, no pueda continuar utilizando su cuenta dentro del sistema. 

Figura 3: Configurar Latch en WordPress en 10 minutos

Para ello, la primera fase es configurar Latch en WordPress en 10 minutos como se puede ver en este vídeo de la Figura 3. Luego, a configurar el forzado de Latch en todas las páginas de WordPress.

Latch Enforcement

Para forzar el uso de Latch, basta con bloquear al usuario dentro de la página del perfil y que no pueda salir de ella hasta que no se haya configurado Latch. El método es tan sencillo como comprobar en todas las páginas de WordPress al inicio si en la tabla en MySQL donde se encuentran los Latch_IDs, si este usuario hay algún valor o el valor es nulo.

Figura 4: Código para forzar el redirect a la página de pareo de Latch

Si el valor es NULL, entonces el usuario es redirigido a la página del perfil /wp-users/profile.php, hasta que finalmente se configure una cuenta de Latch para proteger su identidad. En el siguiente vídeo lo podéis ver funcionando.

Figura 5: WordPress Latch Enforcemente

Al final, forzando el uso de Latch en todas la cuentas y aplicando el Lock on Request, es más difícil que te roben las cuentas de tus usuarios, ya que todos los usuarios están obligados a tener un 2FA y todos los Latch están cerrados.

Saludos Malignos!

lunes, mayo 22, 2017

Una PoC de Mobile Connect con Biometría de Huellas Dactilares

A la hora de implantar una estrategia de identidad en una organización hay que pensar en el conjunto de soluciones que permitan dotar a cada aplicación o sistema en el que hay que identificarse del máximo posible de opciones para maximizar las cuatro características que deben determinar una buena elección: Universalidad, Usabilidad, Robustez y Cumplimiento.

Figura 1: Una PoC de Mobile Connect con Biometría de Huellas Dactilares
No voy a detenerme en el post de hoy a hablar de estrategias de identidad, porque ya os he hablado tiempo atrás de cuál es nuestra visión. Hoy solo os voy a mostrar otra opción combinada de tecnologías de identidad para autenticarse con dos factores. Ya en una entrevista anterior hice varios ejemplos de uso de Mobile Connect, Latch y Biometría, como podéis ver en este vídeo.

Figura 2: Mobile Connect, Latch y Biometría

Lo más robusto sería utilizar tres factores, con algo que se sepa, algo que se sea y algo que se posea, pero en muchos casos esa Robustez penaliza en exceso al Usabililidad o la Universalidad. Por supuesto, entre utilizar un único factor de identidad o tres, lo más extendido hoy en día es permitir a los usuarios utilizar dos factores de autenticación, como vemos en casi todos los servicios, y en los más avanzados, se permite elegir el mecanismo de segundo factor, para aumentar la Usabilidad y la Universalidad.


Figura 3: Autenticación usando Mobile Connect con la SIM

En este ejemplo, podéis ver una PoC (Prueba de Concepto) hecha por ingenieros de la empresa Certisign de Brasil, en la que han integrado Mobile Connect como primer factor de autenticación más Biometría de Huellas Dactilares como segundo.

Figura 4: Mobile Connect + Fingerprint Biometric

En este caso, si has visto el vídeo, habrás podido comprobar que se está utilizando la cámara del smartphone para escanear las huellas, lo que permite extender la Usabilidad del sistema a todos los smartphone con cámara, y no solo a los que tienen lector de huellas dactilares, como hacía yo en el ejemplo del vídeo de la Figura 2.

Figura 5: El lector de Biometría de Huellas Dactilares es la cámara del smartphone
Al final, el arquitecto de sistemas o aplicaciones es el que debe elegir cuáles son las opciones de identidad que quiere permitir, teniendo en cuenta que utilizar varios sistemas, de varios factores, y permitir al usuario que decida cuál es la que quiere usar es una combinación.

Saludos Malignos!

domingo, mayo 21, 2017

Nuestras charlas, eventos, cursos y conferencias para la semana que viene @ElevenPaths @0xWord @Luca_d3

Para hoy domingo os traigo la agenda de eventos, conferencias y charlas para la semana que viene. El resumen trae muchas cosas, y yo voy a participar en varios actos, así que toma nota por si quieres venir a alguno de ellos. 

Figura 1: Nuestras charlas, eventos, cursos y conferencias para la semana que viene

Yo esta semana viajo el martes a Alemania para visitar nuestra querida O2 DE, y paro el miércoles en Barcelona a mi regreso para estar en tres eventos el día 24 de Mayo en una de mis ciudades preferidas. Primero, en el HolaMetic17 de TechData, donde impartiré mi charla del "DirtyTooth: Its only Rock'n Roll but I like it".

Figura 2: Hola Metic 17 de TechData

Después, el mismo día 24 en Barcelona estaré en un MeetUP de WordPress, dando una charla de Hardening WordPress like a Hacker, donde hablaré de My WordPress in Paranoid Mode, de la gestión segura de cadenas de conexión, de cómo proteger Wordpress con Latch, de los ataques de NetWork Packet Manipulation a WordPress y de cómo forzar Lock on Request y Enforced Latch con esta plataforma de CMS.  Muchas de ellas las tienes incluidas en el libro de Máxima Seguridad en WordPress que podrás adquirir allí.

Figura 3: Hardening WordPress like a Hacker en Barcelona

Tras esa charla, viaje a nuestra querida Universitas Telefónica para participar en unas sesiones con nuestros compañeros de Telefónica y regreso a Madrid el jueves para asistir al ElevenPaths Talk que tendremos ONLINE a las 15:30 sobre "Criptomonedas". Recuerda que es gratuita.
Y a las 16:30, justo nada más terminar la charla anterior, dará comienzo el LUCA Talk dedicado a LUCA Tourism, un seminario que explica cómo se puede transformar el sector del turismo utilizando BigData & Insights dinámicos. Muy interesante si tu pasión es la profesión de Data Scientist o tu negocio es el turismo.

Figura 5: LUCA Tourism. Webinar gratuito

Además, este mismo lunes da comienzo el Curso Online de Hacking Ético en The Security Sentinel. Una formación de 180 horas que puedes seguir durante 9 semanas y en la que recibirás el libro de Pentesting con PoweShell como material de apoyo. Tienes toda la información de registro en la web del mismo.
Y el fin de semana toca EastMadH4ck, el sábado 27 y el domingo 28 estamos con 0xWord apoyando esta reunión de hacking que tiene lugar en Arganda del Rey. En ella entre la larga lista de ponentes en la que están Yago Hansen, Jorge Websec o Angelucho entre otros, también están algunos de los autores de libros de 0xWord que podrás conseguir allí, como Amador Aparicio que es autor de "Hacking Web Technologies", Eva Mae autora del cómic de Hacker Épico que narra visualmente la historia del libro de Hacker Épico, o Daniel Echeverri, escritor de "Python para Pentesters" y "Hacking con Python".  Si el tiempo acompaña, tal vez me pase por allí a ver el ambiente, que tengo ganas ver algunas de las charlas.

Figura 7: EastMadH4ck en Arganda del Rey

Por último, el lunes 29 de Mayo da comienzo el Curso Online de Auditorías Móviles en The Security Sentinel, con una duración de 120 horas y con el libro de Hacking iOS: iPhone & iPad 2ª Edición como material de estudio.

Figura 8: Curso Online de Auditorías Móviles

Y esto es lo que tenemos por delante los próximos días, a ver si por el camino encuentro tiempo para seguir escribiendo todos los días un artículo por aquí. Que tengáis una gran semana.

Saludos Malignos!

sábado, mayo 20, 2017

Cruz al Mérito de la Guardia Civil con Distintivo Blanco

El martes de esta semana ha sido un día muy especial, ya que justo tras comprobar que la mañana avanzaba en Telefónica con normalidad tal y como habíamos diseñado durante los comités del puente, pude irme a un acto de la Guardia Civil, en el cuartel de Valdemoro (Madrid). Salí de Telefónica, me fui a Móstoles a recoger a mi mamá, y fuimos a las celebraciones del aniversario de la creación de la Guardia Civil, que tuvieron lugar este pasado 13 de Mayo.

Figura 1: Cruz al Mérito de la Guardia Civil con Distintivo Blanco

Me habían invitado porque, mis compañeros de profesión y amigos que sirven en la Guardia Civil, me propusieron para recibir la Cruz del Mérito de la Guardia Civil con Distintivo Blanco, y lógicamente no me lo quería perder. Son muchos años de cariño y amistad los que me unen con los hackers de la Guardia Civil que luchan contra el cibercrimen y los ciberdelitos, y que quisieran mostrarme su cariño con este reconocimiento, ha sido una pasada que me ha hecho muy feliz.

Figura 2: La Cruz al Merito de la Guardia Civil con Distintivo Blanco que luce en mi casa }:)

La verdad es que, para un civil como yo, fue una sorpresa enorme y no sabía exactamente qué significaba esta condecoración. Tuve que buscar en Internet lo que significaba esta Cruz al Mérito de la Guardia Civil con Distintivo Blanco y,  cuando lo descubrí,  me hizo más feliz aún. Que ellos, que se pegan con los malos de verdad en la red, piensen que mis pequeñas aportaciones a lo largo de estos casi quince años que nos conocemos, han sido merecedoras de esta distinción es lo más importante para mí. 
No pude quedarme mucho, y tras el acto regresé rápido a Telefónica, para dar carpetazo al último comité de seguimiento del incidente que tuvimos. Lo más bonito llegó cuando aparecí de vuelta al trabajo con la Cruz al Mérito de la Guardia Civil y  mis compañeros me felicitaron y me aplaudieron. Moló taco.

Figura 4: Momento de la entrega de la condecoración

Hoy quería que mis amigos de las unidades de lucha contra la ciberdelincuencia, cibercrimen y las unidades tecnológicas de todos los rincones de España de la Guardia Civil, supieran que me han hecho feliz y me siento orgulloso tanto de portar esta Cruz al Mérito como del trabajo que hacen ellos. Es una pena que la gente no sepa que algunos de esos hackers, anónimos para el público y compañeros para nosotros en las comunidades técnicas, que sirven en esas unidades tecnológicas han hecho tanto bien en tantas operaciones contra los cibermalos dentro de España e internacionalmente, y que no pasan más cosas porque ellos están ahí.

Figura 5: Afirmativo. El gorro esta autorizado.

Como anécdota habitual de los "quinquis ciberdelincuentes del 15M", alguno saltó diciendo que si había ido con el gorro y era una falta de respeto, y esas cosas que tantas veces hemos debatido. Tengo claro que son los mismos que dirían que me he vendido cuando no lo lleve puesto. Lo mejor es que mis amigos del cuerpo, los mismos que llevan años conociéndome, me querían allí, con mi gorro y todo. Como siempre. Afirmativo. Grandes mis compañeros de la Guardia Civil.

Saludos Malignos!

PD: En los últimos 5 años que llevo en Telefónica he vivido las cosas más bonitas de mi carrera profesional con amigos, compañeros y profesionales de excepción. Muchos de ellos que están conmigo aquí llevan a mi lado muchos años porque vienen desde Informática 64, donde comenzó nuestra relación con estos hackers que nos han concedido la Cruz al Mérito. Esta condecoración no es mía, es de Telefónica, de ElevenPaths, de Informática 64, y la gente que está detrás de ellas. Y, por supuesto, de mi familia, que tanto ha dado y da por mí.

viernes, mayo 19, 2017

Cómo restaurar ficheros con Telefónica Wannacry File Restorer Alpha 0.1 versión escritorio

Ayer sacamos un script en PowerShell que ayudaba a recuperar los ficheros afectados por WannaCry que, aún estando cifrados, habían quedado copias perdidas sin cifrar en las carpetas temporales que utiliza el ransomware. No descifrar los ficheros, pero si tu fichero aparece cifrado por WannaCry y existe una copia en las carpetas temporales, podrás restaurarlo.

Figura 1: Telefónica WannaCry File Restorer (versión escritorio)

Como para muchos usuarios ejecutar el script Telefonica WannaCry File Restorer no es tan fácil, hemos invertido un poco de tiempo en hacer una herramienta de botón gordo en versión escritorio que ya podéis descargar.

Figura 2: Telefónica WannaCry File Restorer (Script PowerShell)

La herramienta hace exactamente lo mismo que el script de PowerShell, pero con solo dar a un botón, lo que esperamos que ayude a muchos de los usuarios a recuperar los ficheros que sea posible de forma rápida y cómoda.

Figura 3: Telefónica WannaCry File Restorer (Versión Escritorio)

En el vídeo siguiente podéis ver la herramienta en acción, y que como podéis ver no tiene ningún misterio.

Figura 4: PoC de Telefónica WannaCry File Restorer (Versión Escritorio)

Por último, quiero recordaros que si tenéis documentos o backups de vuestros documentos en el mismo sistema operativo en que trabajáis y queréis evitar que os afecte un ransomware en el futuro, lo mejor es que tengáis las carpetas protegidas desde hoy con Latch Antiransomware.


Figura 5: PoC de Latch Antiransomware con WannaCry

Saludos Malignos!

jueves, mayo 18, 2017

Cómo recuperar ficheros afectados por WannaCry. Telefónica WannaCry File Restorer.

Si has sido afectado por el ransomware WannaCry y te ha cifrado documentos existen formas con las que puedes conseguir otra vez tus documentos sin cifrar. Lógicamente, lo ideal sería que tuvieras un backup desconectado o en la nube al que pudieras recurrir, así como que los tuvieras protegidos por una solución como Latch Antiransomware. Si no es así, antes de seguir trabajando con tu equipo o formatear el disco, hay sitios en los que puedes buscar los ficheros.

Figura 1: Telefónica WannaCry File Restorer

Además de los lugares donde se quedan copias automática, como correos con adjuntos, Shadow Copies de Windows, pendrives en los que hubieras trabajado, recuperadores de ficheros eliminados al estilo Recuva o similares (no buscando solo los que hubiera borrado el malware sino también las copias borradas previamente no afectadas por el malware), existen algunos lugares menos conocidos que puedes mirar.

Las extensiones no cifradas de documentos ofimáticos

Una de las cosas que más llama la atención en WannaCry es la lista de extensiones que cifra. Bastante singular, como se puede ver:
•.lay6 •.sqlite3 •.sqlitedb •.accdb •.java •.class •.mpeg •.djvu •.tiff •.backup •.vmdk •.sldm •.sldx •.potm •.potx •.ppam •.ppsx •.ppsm •.pptm •.xltm •.xltx •.xlsb •.xlsm •.dotx •.dotm •.docm •.docb •.jpeg •.onetoc2 •.vsdx •.pptx •.xlsx •.docx
Excluidas están una cantidad buena de ficheros que tal vez tengas en tu equipo y deberías buscar, porque tal vez tengas tu documento guardado en alguno de esos formatos. Los más singulares que no cifra WannaCry son:
  • .doc – Legacy Word document.
  • .dot – Legacy Word templates.
  • .wbk - Legacy Word document backup.
  • .xls – Legacy Excel worksheets.
  • .xlt – Legacy Excel templates.
  • .xlm – Legacy Excel macro.
  • .ppt – Legacy PowerPoint presentation.
  • .pps - Legacy PowerPoint presentation.
  • .pot – Legacy PowerPoint template.
  • .pps – Legacy PowerPoint slideshow.
  • .pdf - Portable Document Format.
  • .odt - Open Document Text.
  • .ods - Open Document Spreadsheet.
  • .odp - Open Document Presentation.
  • .odg - Open Document Graphic.
  • .sxw - Open Office Binario.
  • .rtf - Rich Text Format.
  • .tmp - PowerPoint Temporary PPT.
  • .xar - Excel Temporary XLS.
  • .asd - Word Temporary DOC.
Además, si eres un usuario avanzado de Excel, recuerda que existen los formatos XLA, XLB, XLC, XLD, XLK,XLL, XLM, XLSB, XLSHTML, XLT, XLV y XLW. Algunos son ficheros especiales para guardar macros VBA o plantillas, pero otros son formatos XLS codificados en otros formatos. Te recomiendo que busques en tus carpetas de EXCEL a ver qué ficheros con estas extensiones tienes guardados.

Papeleras de reciclaje de carpetas sincronizadas en la nube

Es un comportamiento bastante peculiar, pero durante el fin de semana un compañero notó que los archivos de una carpeta cifrada estaban todos en la papelera de reciclaje de OneDrive. No es de extrañar. Cuando se borra un fichero en local que está cifrado, se elimina también en la nube, y allí muchos servicios tienen la papelera de reciclaje activada

Ficheros temporales de WannaCry

Las muestras del ransomware WannaCry que hemos analizado tienen dos formas identificadas de llevar a cabo el proceso de cifrado. En ambas formas utiliza una carpeta temporal para mover los archivos elegidos - por las extensiones - que el malware va a cifrar. Gracias a esto, se puede usar un pequeño truco para poder recuperar parte de los archivos afectados por el ransomware, usando sus archivos temporales. Hay un par de casos distintos, y tienes que ver cuál es el tuyo.

Figura 2: Carpeta con ficheros temporales de WannaCry

En el primer caso, el malware identifica que el equipo tiene una partición de datos y utiliza la ruta %userprofile%\appdata\local\temp para mover los archivos a cifrar. El primer archivo que se mueve, es renombrado como 0.WNCRYT, el segundo como 1.WNCRYT, y así sucesivamente. Esos archivos, acabados en "WNCRYT" son los que va a cifrar, pero aún no están cifrado. Es decir, son el fichero de extensión, por ejemplo, DOCX, que WannaCry selecciona para cifrar, copiado a esa carpeta pero aún sin cifrar. Posteriormente, Wannacry irá cifrando cada uno de esos archivos a [nombre].WNCRY e instantes después, elimina el fichero *.WNCRYT correspondiente.

Figura 3: El fichero WNCRYPT no está cifrado

Como ya se ha dicho, el fichero almacenado en %userprofile%\appdata\local\temp es un archivo temporal y no está cifrado, solo se ha movido a esa ubicación y renombrado, por lo que se puede recuperar su contenido. Hay que tener en cuenta, que el ransomware va intercalando mover archivos a la carpeta temporal y el cifrado de éstos. Por esta razón, es probable que no se pueda recuperar todos los archivos, pero sí un alto porcentaje de ellos.

Figura 4: El fichero PDF está intacto

En el segundo caso, WannaCry identifica que un equipo dónde se está ejecutando tiene dos particiones de datos, creando en la raíz de la segunda partición una carpeta denominada $RECYCLE, que no se debe confundir con $RECYCLE.BIN. En esta carpeta $RECYCLE realiza el mismo proceso que en el caso anterior, en el que se van moviendo los archivos a dicha carpeta con el objeto de cifrarlos. Mientras el archivo se encuentre con la extensión WNCRYT no se ha perdido, por no estar cifrado. En el instante que WannaCry cifra el archivo WNCRYT y lo convierte en el archivo WNCRY ya está cifrado.

Telefónica WannaCry File Restorer

Estos archivos temporales con extensión WNCRYPT solo se pueden recuperar si el ransomware no ha terminado el proceso de cifrado de todos los archivos de ese lote. Es decir, si WannaCry no ha terminado el proceso de cifrado por un error, porque el equipo se ha hibernado o porque apagado o se ha detenido el proceso de WannaCry con algún antimalware en ese momento. Para poder saber qué tipo de archivo es hay que ver los Magic Numbers y renombrar la extensión.

Figura 5: Magic Numbers para identificar formato de ficheros

A continuación, os mostramos un script llamado Telefónica WannaCry File Restorer que hemos desarrollado en el laboratorio de ElevenPaths, en Telefónica, con el objetivo de poder recuperar y restaurar los archivos y extensiones de los ficheros afectados.

Figura 6: Telefonica WannaCry File Restorer

En el siguiente vídeo puedes ver cómo funciona este script PowerShell en acción, y para los que quieran algo más sencillo, vamos a sacar una aplicación Windows para que sea mucho más sencillo para todo el mundo.

Figura 7: Vídeo de funcionamiento de Telefonica WannaCry File Restorer

Saludos Malignos!

miércoles, mayo 17, 2017

Hacking Android: Ataques de "Directory Trasversal" con ficheros ZIP

En la BlackHat London 2015 el investigador Ryan Welton mostró cómo se podía hacer directory traversal a través de inyecciones ZIP en dispositivos Android. Mi compañero Fran Ramirez (@cyberhadesblog) y yo hemos estado ojeando esta técnica estos días. La idea es muy sencilla, un archivo ZIP creado de forma maliciosa puede permitir a un potencial atacante escribir un archivo arbitrario en secciones no controladas del sistema operativo Android. Y cuando decimos arbitrario, queremos decir en una ubicación para la cual la app que lo ejecuta no tendría acceso a priori.

Figura 1: Hacking Android. Ataques de "Directory Trasversal" con ficheros ZIP

Como se puede ver, la idea presentada por Ryan Welton es sencilla a la vez que interesante. Podemos generar un ZIP que extraiga los archivos subiendo varios niveles de la carpeta dónde se encuentra. Esto sería fácil a través de la sintaxis “../”. Si el fichero ZIP no es gestionado de forma adecuada, esto podría permitirnos escribir fuera del directorio de extracción, es decir, escribir un archivo en otra ubicación, incluida otra aplicación. Esta técnica no es nueva, y en el año 2010, en el blog Seguridad Apple, teníamos ejemplos de estos trucos en herramientas como ZipEg para MacOS.

Figura 2: Ejemplo de manipulación de fichero ZIP con nombres ../../../../

Cómo se explicó en la charla de BlackHat muchas apps descargan recursos en formato ZIP, por lo que un atacante podría intentar colocarse en medio de una comunicación en una red y obtener ventaja modificando el ZIP que se descarga la app legítima y sustituirlo por un ZIP malicioso. Hay que tener en cuenta siempre los permisos de la carpeta donde queremos ubicar los ficheros inyectados. Si las rutas son directorios de sistema, será necesario que la aplicación o proceso que descomprima el fichero ZIP tenga permisos necesarios.

Figura 3: Remotely Abusing Android [PDF]

En el ejemplo mostrado por Ryan Welton, éste inyecta un fichero en unos de los ZIP que se descarga una aplicación de la Google Play Store (“My Talking Tom”) y que luego se descomprime automáticamente al ejecutarse (desde el proceso “PackageInstaller” de Android) el fichero APK donde se encuentra la misma. De esta forma garantizamos que al menos en la carpeta donde se instala la aplicación podemos inyectar nuestro código modificado o incluso sustituir alguna librería o módulo del programa original como hemos mencionado antes.

Escenarios posibles

Los escenarios pueden ser distintos, por lo que vamos a ver distintos casos que se detallan en la charla de Ryan Welton:
El caso base: Aplicación vulnerable y que no comprueba nada en la extracción del ZIP. Ante este caso la escritura del archivo malicioso en la ubicación deseada es casi segura. 
Comprobación del hash del ZIP esperado: En algunas aplicaciones se descubrió que comprobaban el hash del ZIP a descargar, por lo que, si éste era manipulado en su descarga, no se procedía con la extracción. 
Figura 4: Validación de Hash en fichero descargado
Manifest: En algunas aplicaciones que comprobaban el hash del ZIP, se enviaba una especie de manifest, un archivo JSON, en el que se podía ver el hash esperado. Esta petición también se realizaba por HTTP, por lo que se podía llevar a cabo la modificación previa de dicho JSON.
Probando la inyección

En primer lugar, hablamos del entorno que se ha montado para llevar a cabo esta prueba.
• Máquina con Kali Linux 2.
• MITMProxy versión 0.18.2 para la inyección del ZIP manipulando el tráfico.
• Dispositivo móvil Android.
• 4 máquinas virtuales de Android, entre las que están la 7.1, 6.0, 5.1.0 Y 4.4.1.
• BusyBox 1.22 en las máquinas virtuales.
• BusyBox 1.26.2 en el dispositivo Android.
El procedimiento llevado a cabo es utilizar MITMProxy para ver el tráfico generado por la app. Nosotros hemos querido ejemplificar este hecho, para que se vea claro.

Figura 5: Interceptando el tráfico con MITMProxy

En el siguiente video se puede ver MITMProxy mostrando las peticiones que se realizan, y en el instante en el que se quiere descargar un ZIP de una ubicación X, se lleva a cabo la modificación o inyección del ZIP malicioso por el legítimo.

Figura 6: Vídeo de manipulación de ZIP con MITMProxy

Viendo esto está claro que se puede manipular de forma sencilla este tráfico. Una vez la aplicación descarga el archivo ZIP modificado, depende de los permisos o mecanismos de seguridad que se tengan para proteger la extracción y la ubicación dónde se pondrán los ficheros que se encuentran en el interior del ZIP.

Para esta PoC hemos utilizado el código publicado en la artículo de We Live Security cambiando solamente el formato de decodificación de UTF-8 a ISO-8859-1 y el “payload”. Este script de mitmproxy detecta el tráfico de red, en concreto analiza las cabeceras GET de http/https y cuando detecta un fichero con los caracteres “PK” en los primeros dos bytes (cualquier fichero en formato ZIP) activa inyección.

Figura 7: Script para hacer inyección de ZIP en MITMProxy

La rutina “response” se encarga de detectar los ficheros y también es aquí donde definimos las rutas de inyección. La rutina “injectIntoZip” por otro lado, se encarga de insertar el fichero con nuestro payload (en nuestro caso el fichero “zipizape”) dentro del fichero ZIP interceptado. En vez de utilizar directamente mitmproxy hemos optado por la versión mitmdump, para poder mostrar los mensajes de salida (“Found ZIP” y “Zip injected”) una vez se ha realizado la inyección como puede observarse en la imagen anterior. El funcionamiento de mitmproxy y mitmdump es idéntico, sólo tienen como diferencia la información que muestran en pantalla.

Unzip en BusyBox

En todos los sistemas Android donde hemos realizado las pruebas se ha utilizado el programa “unzip” integrado en Busybox. Éste es básicamente un paquete de aplicaciones que reúne las utilidades y comandos más comunes de UNIX (como por ejemplo el mencionado “unzip”) en un único fichero binario. Muchos sistemas GNU/Linux llevan por defecto una versión de este paquete debido a su gran utilidad.

Figura 8: PoC de inyección de fichero ZIP en Android con Busybox 1.22

La primera curiosidad que nos encontramos es que en función de la versión de Busybox que se esté utilizando, la inyección a través del ZIP funciona o no lo hace. En estos videos se pueden ver las diferentes posibilidades, con la versión 1.22 y con la versión 1.26.2.

Figura 9: PoC de inyección de fichero ZIP en Android con BusyBox 1.26.2

Interesante charla y concepto de inyección a través de los ficheros ZIP. La posibilidad de tener o aprovechar un Directory Traversal en sistemas como Android es un concepto interesante. Por supuesto, hay sistemas parcheados y otros muchos Android que están expuestos a este tipo de ataques o técnicas, y, lógicamente, dependiendo de las medidas de seguridad que pongan las apps para descargar los ZIP serán vulnerables o no a estos ataques. Además, estos trucos podrían empezar a ser utilizados por el malware para Android para ocultarse mejor en el sistema.

Autores: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths y Fran Ramirez (@cyberhadesblog) escritor de libro "Microhistorias: anécdotas y curiosidades de la historia de la informática" e investigador en ElevenPaths

martes, mayo 16, 2017

WannaCry: NoMoreCry Tool & Latch ARW

Mucho se ha dicho ya del ransomware WannaCry en los medios de comunicación. Mucho y muy confuso, por desgracia, pero lo que sí que es cierto es que WannaCry es un ransomware al uso que ha utilizado un vector de propagación muy virulento, por aprovecharse de una vulnerabilidad highly critical explotable por LAN sin interacción por parte del usuario, lo que que lo ha hecho más agresivo en su difusión. Eso sí lo ha hecho diferente, pues una vez se cuela dentro de una red local, su difusión es rápida y hay que ser expeditivo para detenerlo.

Figura 1: WannaCry. NoMoreCry Tool & Latch ARW

Lo cierto es que en las muestras que hemos podido ver, el ransomware no traía capacidades especiales antiforensics para detectar que estaba bajo análisis, técnicas de empaquetado y ofuscación avanzadas, ni protecciones contra el borrado extras. Su "éxito" ha sido sacar partido de un bug explotable remotamente sin interacción con el usuario en un servicio muy común en las redes de área local. Al estilo de viejos Conficker, Blaster o similares.

Figura 2: PoC de WannaCry y Latch ARW (Antiransomware)

Como ransomware no traía funciones especiales, así que con muchas de las soluciones antiransomware que existían en el mercado, cualquier persona infectada con este malware podría proteger sus documentos. En esta prueba de concepto puedes verlo funcionando con Latch ARW, nuestra solución para proteger documentos contra este tipo de ataques.
Todos los equipos que fueron infectados con WannaCry, pero que tenían sus documentos protegidos con Latch ARW no han perdido ningún archivo o información. Así que, para estar preparado para cualquier mutación posible, lo recomendable es que tengas tus carpetas protegidas previamente, y te ahorrarás lamentaciones. Aquí puedes ver cómo funciona con otras muestras de ransomware.


Figura 4: Latch ARW funcionado con Crytolocker

Si te has visto afectado por este ransomware y has perdido algún documento, lo siguiente que puedes hacer es buscar los lugares donde puedas tener copias de los archivos que has perdido. Desde el correo electrónico, hasta las Shadow Copies, pasando por las papeleras de reciclaje de las carpetas sincronizadas con discos en la nube, tipo One Drive o Dropbox

Figura 5: NoMoreCry Tool

Si vas a pinchar un backup en un disco duro externo, antes asegúrate de haber eliminado WannaCry con alguna solución tipo NoMoreCry y de haber actualizado los parches de seguridad de Microsoft para que no te vuelvan a explotar una vulnerabilidad similar.

Saludos Malignos!

lunes, mayo 15, 2017

BluedIoT: Cómo hackear 360Fly Action Cameras usando BlueTooth Low Energy [CVE-2017-8403]

Todo empezó con la ilusión de montar un canal de YouTube compartido con mi amigo David Caro. La idea era hacerlo con algo especial, algún tipo de hardware molón con un toque de tecnología novedosa. Supimos de la existencia de cámaras que grababan en 360 grados al ver que se ofrecía la posibilidad de adaptar contenido de ese tipo tanto en Facebook como en YouTube, entonces empezamos a revisar las especificaciones de varias en búsqueda de una “finalista”, y la candidata final fue la 360fly 4k.

Figura 1: BluedIoT: Cómo hackear 360Fly Action Cameras usando
BlueTooth Low Energy [CVE-2017-8403]

No os la voy a “vender” ni cómo la mejor, ni cómo la peor, simplemente se ceñía a nuestras necesidades. El producto nos satisfacía y cumplía con lo que leímos, pero algún “ángulo muerto” se ocultaba en ella.

El misterio de la password de la cámara

Un día, después de terminar una sesión de grabación, mi amigo David me pidió la cámara para pasar-se los vídeos directamente por USB en lugar de transferir-los por la red, ya que al grabar en 360 y resolución 4K, hace que aumente considerablemente el peso de los clips. Cuando la tuve de nuevo en mis manos, algo raro vi que me descuadró. Un pop-up en la app me decía que la “password” era incorrecta, y yo no la había cambiado.

Figura 2: Alerta de contraseña erronea

Le pregunté a mi amigo David si la había cambiado él, a lo que me dijo que no, que intentó con la app mediante conexión Wi-FiBluetooth, pero nada, y que fue el cable USB el que logró hacer las “paces” con los datos, y la transferencia prosiguió. ¿Qué hace uno cuando el método tradicional no funciona antes de hacer un reset? Pues probar y ver que otros recursos tenía, a lo que me dije, voy a ver si puedo cambiarla (mediante la app oficial para Android), seguro que me dirá que no… ¡ahí va!

Figura 3: Cambiando la contraseña desde la app oficial de Android

Se la tragó con patatas, inserté una nueva y como si nada. Aí fue cuando pensé que o me quedo con la intriga o investigo, y como me conozco opté por resolver el enigma que me tenía absorto. Durante el “shock” y la incomprensión, me vino un flash sobre un proyecto que se mantuvo un tiempo “top secret” de Chema Alonso y su equipo de ElevenPaths, el ya popular DirtyTooh Hack, que me inspiró para seguir con esto.

Un punto clave era la conexión Bluetooth, ya que cuando la password fue cambiada no se hizo por Wi-Fi, sino por Bluetooth, así que, teniendo eso en cuenta, lo primero era empezar por esta tecnología y el rol que ejerce en este modelo de cámara.

Aprendiendo del enemigo por BlueTooth

A nivel de usuario entendía lo justo, pero tenía cero experiencia en analizar nada con Bluetooth. Me tocaba hacer de “dentista” y sacar “la caries azulada”. Indagando, en busca de algún tipo de sniffer, me topé con Ubertooth One. Esa no era mi parada ya que me estaba pasando de largo. no digo que sea una mala herramienta pero no era la adecuada para lo que necesitaba yo con mi experiencia en el tema. Buscando más, vi que tenía el sniffer más cerca de lo que pensaba. Resulta que el propio sistema operativo Android, a partir de la versión 4.4 ya incorpora un sniffer de tipo activo (es decir, en una conexión controlada/vinculada o pareada).

Figura 4: Activando el log de conexión BlueTooth en Android

Se activa en las opciones del desarrollador, y se genera un fichero con nombre btsnoop_hci.log (que en mi caso lo guardaba en la raíz de la memoria del terminal). Tras activarlo me puse a cambiar otra vez la password para luego dar una ojeada en Wireshark, y hacer una búsqueda por la palabra que había puesto como nueva contraseña.

Figura 5: Paquete BlueTooth con la password enviada en texto claro

En la imagen se puede ver la password en claro a ASCII. ¡BINGO! Lo tenemos. ¿¡Y ahora qué!?¿Cómo interactúo y con qué? Esos paquetes capturados se trataban de una versión de BlueTooth más moderna, por así decirlo, se trata del Bluetooth Low Energy. Esta variante de Bluetooth, empieza a partir de la versión 4.0. Diseñado para reducir el consumo de energía en comparación con la versión antigua y nacido para adaptarse en el mundo del IoT. Funciona algo distinto al Bluetooth “clásico”. Se basa en una estructura de GATT: Generic Attribute Profile para la transferencia de datos.

Figura 6: Estructura GATT

Su organización se estipula en: perfiles, servicios y características.
1.-Perfil: Describe el tipo de dispositivo basado en sus servicios. 
2.-Servicio: Define función/es del dispositivo, un servicio tiene una colección de características. 
3.- Característica: Contiene un valor y se utiliza para el transporte de los datos. Contiene también propiedades para controlar el comportamiento de la característica (lectura, escritura, notificación) para designar los permisos adecuados, y los descriptores para describir en más detalle mediante línea/s de texto tipo string.
Los servicios y las características tienen un UUID para ser identificados. Bluetooth SIG (Special Interest Group) usa 16 bits del UUID para la especificación de sus nombres como normativa. 128 bits son personalizados, destinados para el fabricante. 360Fly tiene su distintivo como miembro aprobado, usando 16 bits de su UUID como servicio.

Otro valor valioso es el handle, de 16 bits y usado para ser distinguido en el servidor GATT (en la cámara) y va asociado con un UUID en cada una de las características, como si se tratase de un alias cortito para facilitar su uso. Los servicios tienen un rango de handles, este rango se asocia sólo a un UUID (un servicio conlleva un rango e identificado por un UUID) así pues, podremos saber a qué servicio pertenece dicha característica handle. Vamos a clarificarlo en la práctica de manera visual junto a la siguiente figura.

Figura 7: Estructura con la herramienta gatttool

En los servicios (= primary) tenemos un handle, que empieza por 0x0001 y acaba en 0x0005. Este servicio, llamado “Generic Attribute”, tiene el UUID 1801. El UUID de la característica con nombre “Service Changed” es 2a05 con handle 0x0003, este handle está comprendido en el rango que va desde 0x0001 a 0x0005. En definitiva, la característica “Service Changed” forma parte del servicio “Generic Attribute”. Más claro así, ¿verdad?

PoC en acción

Ya va siendo hora de ponerse manos a la obra, viendo por donde van “los tiros”. Veamos cómo manejarlo bajo Kali Linux. Se puede hacer por la propia app cómo método más fácil para el PoC, pero desde escritorio aporta otras cosas. El resumen de lo que haremos es:
1. Cambiar la password de la Wi-Fi mediante Bluetooth Low Energy. 
2. Tomar una foto y guardarla (para el recuerdo ;) ). 
3. ¡Borrarlo todo! (simulando que no se deja huella).
(Nota: Importante tener en cuenta de que se use Bluetooth mínimo versión 4.0 Low Energy para que funcione, si no se está seguro, revisad con el comando hciconfig –a [interfaz]

Fase 1: Cambiando la Password

Ponemos en pie la pila Bluetooth con: systemctl enable bluetooth.service y systemctl start bluetooth.service.

Figura 8: Activando BlueTooth con Kali Linux

Verificamos que todo esté correcto como puede verse en la figura siguiente con hciconfig

Figura 9: Revisando el estado del hardware BlueTooth

Escaneo en busca de la cámara con hcitool lescan.

Figura 10: Buscando la cámara 360 con BlueTooth LE

Convertir la password en formato hexadecimal (que usaremos más tarde) con: echo StrongPassword | xxd –p

Figura 11: ASCII a HEX de la password

Conectar con la cámara mediante gatttool a modo interactivo: gatttool –I y connect [mac cámara]. Como veis, no requiere de password, el método de conexión es “Just Works¡Qué fácil!, ¿no? Eso mismo pensé yo.

Figura 12: Conectando a la cámara con gatttool

Ahora toca cambiar el password con el handle que ya sabemos porque “snifamos” dicho paquete anteriormente: char-write-cmd 0x0048 [password en hexadecimal]

Figura 13: Cambio de password mediante ghatttool

Fase 2. Tomando foto y guardándola

Ahora nos conectamos a la Wi-Fi sin más con la password que sabemos, en este caso hemos puesto StrongPassword. Ahora que estamos dentro de la red de la cámara toca seguir jugando. Accederemos al Web Server de la cámara que le gusta usar la dirección IP 192.168.2.1. Accedemos mediante navegador, Mozilla Firefox que ya viene de serie en Kali Linux.

Figura 14: Navegando por el Web Server de la cámara

Usaremos la herramienta curl como cliente ReST para jugar con las opciones de la cámara. ¿Que te preguntas que cómo lo hemos sabido? Nos podemos poner a hacer un man in the middle como el jueves, interceptando el tráfico, o bien basta con leer documentación y hacer una visita a la ReST API, de la cámara que es pública. Tomemos una captura y a sonreír :D : curl –X POST --insecure https://192.168.2.1/360fly/camera/photo

Figura 15: Tomando la foto con cliente ReST.

En este caso se utiliza:
 -X: para indicarle el tipo de método de solicitud POST en este caso.
--insecure: lo mismo que –k para saltar la verificación de certificado que no tenemos en el almacén de confianza.
Podemos añadir de manera opcional –i o --include para obtener la información de las cabeceras.
Para saber si ha ido bien, verificaremos refrescando el navegador, aparecerá un nuevo .JPG con prefijo “FLY” y pulsando encima, podremos ver nuestro retrato:

Figura 16: Mostrando la foto

Para guardarla, hagámoslo fácil, simplemente botón derecho y guardar en el lugar que más os guste (¡ojo!, si estáis con Kali Linux en modo live, aseguraros de guardarla en partición no temporal de memoria).

Fase 3. Borrándolo todo

Con solo una línea, eliminaremos todo el contenido que hay en la cámara, lo que puede ser un verdadero problema si alguien está haciendo, por ejemplo, el reportaje de nuestra vida: curl –X DELETE --insecure https://192.168.2.1/360fly/media/file

Figura 17: Eliminando el contenido de la cámara

Y si fue bien, al refrescar la Web, veremos el típico Error 404 Not Found :S ¡Y eso era todo amigos, pero... aún hay más!

Bonus Track

En la siguiente imagen tienes en una tabla otros comandos interesantes para el PoC - no todos los disponibles -  para usar ambos: Bluetooth Low Energy y Wi-Fi.

Figura 18: Algunas de las funciones bajo BlueTooth y Wi-Fi de la cámara

Si solo usamos BLE (Bluetooth Low Energy), atacar a otras funciones es posible sin ser requisito la función de cambio de password Wi-Fi (cosas como poder hacer grabación, activar GPS, etcétera) ya que GATT nos permite enviar los valores correspondientes. Eso sí, tendremos derecho de descarga si además accedemos al Wi-Fi como hemos visto en la PoC. Y podría seguir enrollándome como persiana en bucle, por eso, si queréis profundizar más en detalle, aquí tenéis un artículo que hice exponiendo lo investigado.


Lo llamé BluedIoT, (haciendo juego con IoT) cómo una situación idiota por el hecho de juntar BLE con Wi-FI, en este caso porque de nada te sirve poner un super mega password con WPA2 si el Bluetooth lo cambia cuando le da la gana. A la vulnerabilidad se le atribuyó el CVE IDCVE-2017-8403

Figura 20: CVE-2017-8403 del bug de360fly 4K

Y aquí un vídeo que también realicé, con lo que hemos expuesto en este artículo, con un aire un tanto cinéfilo para darle un poco de entusiasmo.

Figura 21: Vídeo de la PoC del Hack de la 360Fly 4k

Reflexiones Finales

Aún suelo escuchar aquellos que dicen ¿Pero quién va a querer entrar si no tengo nada que esconder? Sí, quizá tengan razón, la probabilidad puede ser muy baja. En España esta cámara puede que no la tenga mucha gente, pero yo la tengo, y quiero un producto con unos mínimos de calidad a nivel de seguridad ya que, está en juego la confidencialidad del contenido multimedia y de otras muchas cosas que pueden dar lugar a ciertos negocios más oscuros. Pueden hacerte daño moralmente borrándose así tus memorias, tus mejores instantes.

Uno también puede pensar que la cámara esta defectuosa si se ha sido víctima de ello, enfureciendo al usuario final y culpando al fabricante. Como veis, todos perdemos, sólo gana el ciberdelincuente, una persona muy mala. Sed buenos… ¡Sed hackers!

Autor: Gerard Fuguet

Entrada destacada

Aura y su negocio oculto para conquistar el mundo

Ya estoy de regreso en Madrid , y mientras todavía continúa el eco de la presentación de Aura y la Cuarta Plataforma , he decidido tomarme ...

Entradas populares