Mostrando entradas con la etiqueta Applet. Mostrar todas las entradas
Mostrando entradas con la etiqueta Applet. Mostrar todas las entradas

jueves, febrero 13, 2014

¿De qué lugar del mundo es el creador de este malware?

Las apps de Android en formato apk y los Applets Java en formato Jar son ficheros comprimidos en ZIP que llevan la lista de ficheros con la fecha en la que se crearon los archivos. Y esa fecha está puesta con la hora del sistema (y por tanto su configuración horaria). Además, en esos ficheros empaquetados están también la firma con el certificado que se ha utilizado para la firma, y en la fecha del certificado se utiliza la hora UTC.

Figura 1: Fechas de modificación en un fichero APK malicioso de Android

Así que, juntando esas dos fechas, y asumiendo que los creadores de malware y amigos del fraude online utilizan sus certificados autofirmados por eso de no gastar dinero en un certificado firmado por una CA que te van a bloquear en cuanto se descubra que es una app maliciosa y que firman los applets malicioso y los apk en el momento en que compilan la versión final, se podría saber en que franja horario está configurada la maquina de nuestro amigo el creador de este crapware.

Figura 2: Información en formato ASCII de la firma de un apk malicioso

Y así nació en el laboratorio de Eleven Paths la herramienta GmtCheck que realiza el cálculo. Lee un fichero JAR o APK y, si está firmado:
- Intentará extraer la hora de creación (UTC) de un certificado.
- Intentará leer la hora de modificación del último fichero creado en la compilación (normalmente el fichero .sf en el directorio meta-inf).
- Hará las cuentas y dirá en qué zona horaria vive el desarrollador, asumiendo que la creación del certificado y la compilación han ocurrido en el mismo momento (minuto arriba, minuto abajo) y que el desarrollador no ha modificado su hora de sistema.
Figura 3: Esuqema de fechas localizadas en ficheros y certificados

Por supuesto hay muchas cosas que pueden ser cambiadas, como que el desarrollador tenga la máquina en otra franja horaria distinta a la que vive o que firme a de forma separada en el tiempo, pero las pruebas que se han hecho con muchas apps muestran que suele funcionar así.

Figura 4: Uso de GmtCheck son una apk maliciosa

Esta herramienta está disponible junto con el resto de las que se van publicando en la web del laboratorio de Eleven Paths, y en el blog de Eleven Paths y el canal Twitter de Eleven Paths se van publicado las pruebas que se hacen con todas ellas entre otros muchos temas.

Actualización: ¿La utilidad de esta aplicación en modo comandos? Pues os recomiendo la lectura de PowerShell, la navaja suiza de los administradores y conectéis los puntos buscando el poder del scripting para ganar inteligencia en la lucha contra el malware.... ¿llegó alguna idea?

Saludos Malignos!

miércoles, noviembre 20, 2013

No necesitas subir el código fuente para que rule el Flash

En las auditorías de seguridad, cuando te topas con una web escrita en Adobe Flash, tienes que conseguir todos los ficheros .SWF. Al igual que haces con el código fuente de las páginas HTML servidas por el sitio web, tener un archivos .SWF significa que también tienes que el código fuente si realizas un proceso de decompilación para obtener su código fuente. Para ello se pueden usar múltiples herramientas, y hasta decompiladores .SWF o .NET online - también decompilan Applets Java -.

Esto está bien, pero si puedes conseguir el archivo .FLA original, mejor que mejor, solo por si hay comentarios o recursos que no aparecen durante el proceso de decompilación. Esto, en una web que tenga un proceso estricto de seguridad, no debería pasar nunca, y los ficheros .FLA no deberían estar nunca al alcance de todo el mundo.

Pero como os podéis imaginar, esto no siempre es así.

Hace tiempo, cuando publiqué el artículo que hablaba de analizar los ficheros .DS_Store subidos a los sitios web para descubrir otros ficheros escondidos en el mismo servidor, ya me pasó que encontré que en una carpeta estaban el fichero .SWF y el código fuente en fichero .FLA.

Figura 1: Al analizar el fichero .DS_Store aparecían principal.swf y principal.fla

Los ficheros .FLA no están protegidos en el servidor web por defecto, así que si lo encuentras, salvo que haya alguna regla añadida manualmente en el WAF - sería una buena recomendación añadirlo directamente a las reglas de fortificación de Mod_Security para evitar estas fugas - vas a poder disfrutar de toda la información.

Conocido esto, decidí probar el otro día que andaba con algo de tiempo, a buscar ficheros .SWF e intentar localizar los ficheros .FLA de los ficheros .SWF que me fuera escupiendo Google haciendo algo de hacking con buscadores, en plan "lotería random". Lo que esperaba es que no fueran muchos, y que cuando solicitará el fichero .FLA se obtuviera algún mensaje de error como este.

Figura 2: El fichero .fla no está en el servidor web

En algunos casos me topé con la grata sorpresa de que el servidor tenía el mod_negotiation activado, así que cuando pedía el fichero .FLA me proporcionaba la lista de ficheros con el .SWF de nuevo. Ya sabéis que si está activado este módulo se pueden listar casi todos los ficheros del servidor web.

Figura 3: Buscando un .fla acabé topando con un mod_negotiation activado

Pero lo más curioso fue que sobre más o menos unos 50 sitios que probé, acabé con 8 ficheros de código fuente .FLA. Como podéis suponer, primero empecé probando en sitios al azar, y luego fui dirigiendo el tiro a dominios que deberían tener una mayor seguridad - como cuando se prueban los análisis de metadatos con FOCA en sitios como la Missile Defense Agency, para probar años después que siguen teniendo fugas que pueden provocar ataques "desde el pasado" -. Y no hizo falta buscar mucho, enseguida apareció algún fichero .FLA en sitios .mil.

Figura 4: Un fichero .FLA en un dominio .mil

No había nada especial en ese código fuente. Tan solo el código para reproducir unos vídeos. Nada preocupante desde el punto de vista de seguridad, pero me extrañó que no tuvieran una medida global de protección contra este tipo de fugas de datos, con lo serios que se han puesto con esto.

En cualquier caso, nosotros con Faast buscamos y detectamos esto, y si tienes que hacer una auditoría, antes de buscar hacer probar las 20 técnicas para listar ficheros de un servidor web, prueba a pedir el código fuente, no vaya a ser que una vez más, los árboles no te dejen ver el bosque.

Saludos Malignos!

sábado, octubre 05, 2013

Regreso al pasado para cargar pilas con los juegos de 8 bits

De vez en cuando, en esos momentos en que estoy saturado de contestar la pila de mensajes que aún me quedan por procesar en la bandeja de entrada, cuando me doy cuenta de que llevo más tiempo de "Information Worker" que haciendo cosas técnicas, suelo cortar por prescripción facultativa y volver a cosas más cercanas a mi pasión. En esos momentos vuelvo a buscar desesperadamente algo que huela a bits & bytes.

En esos momentos reviso en los RSS los artículos que he marcado para leer después, o continúo con alguna comprobación que tuviera a medias de alguna idea que esté rumiando. Si no, abro el emulador de BASIC y me pongo a continuar con alguno de los programas en que me he enfrascado recientemente o prueba alguna herramienta que tuviera pendiente. Son pequeños espacios de tiempo que saco que me ayudan a equilibrar el cerebro. 

Entre las cosas que he descubierto que me dan dosis extras de energía y liberación para volver a enfrascarme en la batalla del día a día se encuentra el volver a recordar el sabor que tenía en mis labios cuando veía la informática en mis primeros años de contacto. En esos momentos en los que me maravillaba con los juegos de 8 bits y en los que el mundo dejaba de existir más allá de la conexión que tenía yo con mi Amstrad CPC 6128. No había Internet, no había nadie conectado a mi alrededor. Solo mi juego de píxeles gordos y yo. 

Hoy en día es fácil conseguirlo, basta como poner en el buscador Amstrad CPC emulator y salen cientos de sitios. Muchos de ellos aún funcionan con el emulador online basado en un Applet Java, pero aún es más sencillo todavía con los nuevos portings a HTML5 y JavaScript que permiten que te enganches a juegos míticos como el Manic Miner.

Figura 1: Manic Miner escrito en JavaScript

Ahí me gustaría ver a los jóvenes de hoy en día intentando resolver las fases. En esta aventura de plataformas, que podría ser el origen del Mario Bros, no había la posibilidad de salvar el juego a medias, y cuando te mataban te tocaba empezar desde el principio. Me gustaría que probarais unos minutos a ver hasta que pantalla llegáis.

Otras veces, cuando lo que quiero es pegar tiros, me abro el 1942, el Flying Shark, el Ikari Warriors, el Comandos o el espectacular R-Type, que me permiten desahogar adrenalina en lo que eran los juegos de aquella época para pegar tiros. He de citar indudablemente a Bomb Jack, que jugando en modo Turbo sigue siendo uno de los que más horas de mi vida han consumido. Puedes jugar a muchos de ellos en CPCBox.

Figura 2: BombJack modo Amstrad CPC 6128 en CPCBox

Como ha cambiado todo. Un gran lanzamiento mediático en aquella época podría ser el juego de Batman. Personaje mítico para un juego en el que el muñeco solo puede subir por las escaleras y no saltar - ya sabemos que no tiene muchos poderes el hombre pero algo más de movimiento hubiera sido de agradecer -. Efectos especiales basados en colores y poco más.

Figura 3: Batman para Amstrad CPC

Lo más maravilloso es que puedes ver el código fuente de algunos juegos de los que no se ha hecho un emulador y una carga de ROM, sino un porting completo a JavaScript, y comprobar cómo se gestionan todos los movimientos de los personajes y la programación de los algoritmos. Nada de utilizar un motor de juegos que te gestiona todo. Aquí están los algoritmos desde cero, lo que los hace más maravilloso.

De hecho, algunos de los artículos que tengo siempre marcados para leer son los de Cyberhades, que además de meter algunas de estas historias en su libro de Microhistorias: Anécdotas y curiosidades de la historia de la informática, publican de vez en cuando en su blog para que nos enteremos de cómo arreglar el bug del juego Galaga en su kill screen, del juego Donkey Kong o del Pac-Man.

Figura 4: El juego Galaga y su kill screen

Volver a esos mundos hace que me de cuenta otra vez más de cuánto amo mi profesión. Sentir que una persona, sola, con su computadora y en un tiempo record es capaz de hacer esas obras de arte me maravilla. Me entusiasma regresar al pasado una y otra vez, cargar las pilas, y poder seguir con ilusiones renovadas con mi trabajo dando gracias por tener la oportunidad de vivir esta maravilla llamada informática.

Saludos Malignos!

lunes, abril 29, 2013

Buscar sitios web con Applets Java usando Shodan

En el post de ayer os hablé del Decompilador de Flash y Java Online y os puse un par de ejemplos con ficheros SWF de Apple.com que había buscado de forma sencilla con Google o Bing. Para encontrar esos archivos basta con utilizar el operador EXT y salen miles. Pero eso no funciona bien para los Applets, por múltiples causas.

La primera es que puede que la extensión en la que se guarda un Applet sea Class si es un único documento, JAR o ZIP si son varios comprimidos o incluso ninguna extensión como sucedía en la fase 2 del Reto de Boinas Negras. La segunda parte es que los ficheros no están metidos en la web  con un enlace, con lo que los buscadores no suelen indexar su contenido, así que lo más probable es que no aparezcan en los resultados a no ser que se den otras circunstancias de indexación de ficheros.

Así que, para resolver estos problemas, decidí tirar de trucos de hacking con buscadores y utilizar  Shodan y el operador HTML para buscar los sitios donde hay una etiqueta Applet en la primera página de la web y encontrar muchas muestras, y como podéis ver aparecieron miles de sitios así.

Figura 1: Etiqueta HTML en Shodan

Shodan no indexa todas las páginas a día de hoy, pero si lo que hay en la primera página es un panel de control de una videocámara, un sistema de energía, un termostato o un sistema de control de antenas que utiliza un Applet Java, saldrá a la primera. 
Figura 2: Seguridad basada en Applet Java

Como os podéis imaginar, echando un vistazo preliminar salen decenas de sitios que validan la password en el propio Applet, o que custodian el acceso aún con la password por defecto.  Para analizarlo, hay que mirar el nombre del archivo en la etiqueta Applet.

Figura 3: Configuración de Applet en HTML

Si solo está el .class, entonces se le puede pasar la URL a Show My Code. Si hay un archivo que empaqueta todo el código, hay que descargarlo, descomprimirlo y enviar uno a uno los ficheros a Show My Code, comenzando por el que aparezca en el Applet.

Figura 4: Código decompilado y descargado desde Show My Code

Para hacer el seguimiento y perder un poco de tiempo como hago yo de vez en cuando con estos programitas, es importante que recuerdes que los parámetros de entrada del Applet pueden estar no solo en los que introduzca el usuario por el GUI, sino que también los configura la página web mediante los parámetros del objeto Applet en HTML.

Saludos Malignos!

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares