jueves, 2 de enero de 2014

SnaptChat: análisis forense

Mucho se ha hablado en este blog sobre las aplicaciones de mensajería para los smartphones y de los fallos de seguridad de las mismas.

No hace mucho tiempo leí este artículo sobre la aplicación de la que os voy a hablar a continuación, esta aplicación y cuyo nombre está en el título del Post es SNAPCHAT.

Podría deciros que SNAPCHAT no es más que otra aplicación de mensajería instantánea, pero no es así, el gancho que tiene dicha aplicación es que permite a los usuarios enviar imágenes, videos cortos o mensajes a través de sus smartphones. El remitente elige el tiempo que desea que su mensaje sea visible para la otra persona, con un mínimo de 10 segundos. Y después es eliminada del mensaje, vamos que desaparece. Pero...¿Desaparece totalmente?


Bien, pues ya os hacéis una idea de lo que hace la aplicación, no obstante en el artículo que menciono en los párrafos superiores, su uso entre adolescentes es para casos de sexting, así que como disponía de algo de tiempo libre me dispuse a instalarla en mi smartphone y ver si realmente cumplía su objetivo, pero eso sí, iba a ir un poco más allá en mi investigación.

Tras una primera prueba he de decir que realmente la aplicación cumple su objetivo, recibes una foto (es la prueba que hice) y al tiempo estipulado por el remitente de la misma ésta se borra.

Pues bien, aquí es donde entra mi curiosidad, y me acordé del principio de transferencia de Locard, que viene a decir en resumen "cada contacto deja un rastro", así que me puse manos a la obra.

He decir que la "mini" investigación está realizada sobre un terminal Android rooteado.

En primer lugar fué localizar la aplicación en el terminal, por regla general las aplicaciones que se instalan en terminales Android se almacenan en el directorio data o datadata (según versión).

Ya tenía localizada el directorio de la aplicación, así que para ver los datos que contenía de forma más cómoda me la descargué a un directorio de mi equipo:

Como podéis observar, he desplegado todo el contenido de los directorios para que os hagáis una idea de lo que contiene.

Mi primera intención, y en la consola antes de descargarla a mi equipo, fué dirigirme al directorio Files a ver si hay se almacenaba una copia de la imagen recibida, pero...Mi gozo en un pozo.

Mi siguiente paso fué abrir una de las bases de datos, las de google anaytics no me interesaban, así que abrítcspahn.db. Tras indagar en la base de datos, la cual como podréis ver en la siguiente imagen, tiene unas cuantas tablas, personalmente me llamaron la atención las tablas "StoryImageFiles" y "StoryImageThumbnailFiles", pues dicho y hecho a por ellas :)

La primera tabla "StoryImageFiles" no contiene datos, al menos en mis pruebas, ya que son eliminados de la misma, pero la siguiente "StoryImageThumbnailsFiles" si como podéis ver:


No hay que ser un hacha, nos está diciendo en qué directorio hay almacenada una miniatura de la imagen, pues ya tenemos la evidencia :) (Volved a mirar la captura de los directorios), y he aquí la imagen que me remití en mis pruebas, las zapatillas de mi niña :) :


Comentar, que la miniatura se guarda con la extensión jpg.no-media así que hay que eliminar el no-media para que sea legible su visualización.

Mi investigación no quedo ahí, me propuse indagar algo más, el resto de tablas que componen la BBDD podemos encontrar información de números de teléfonos añadidos a la aplicación, quién te ha mandado un mensaje, a quién se lo has mandado, campos TIMESTAMP etc... y además, podríamos obtener información EXIF de la imagen recuperada. Además, en los ficheros XML, se puede ver la información de la cuenta de correo que se ha utilizado para crear la cuenta, aunque el resto de datos esté cifrada.

No he realizado pruebas con los videos ni ninguna otra, así que animo a otros investigadores a realizar sus propias pruebas, y quien sabe, quizás algun investigador con más conocimientos es capaz de obtener más datos.

Nota: el post me lo publicaron en Security by Default

JAP (JonDo Anon Proxy) - Alternativa a Tor



Dada la época en la que estamos y viendo como están las cosas, cada vez es más personas están interesadas en preservar su anonimato en su navegación (no vamos entrar en detalle del por qué). 

Todos conocemos TOR (The Onion Project) al igual que conocemos, en cierto modo, que no toda la información que pasa por TOR vaya cifrada, no voy a entrar en explicar como funciona la red TOR ya que doy la doy por sabida (No obstante os recomiendo este post en el que está muy bien explicada).

Si bien, al menos los que hemos usado TOR por una u otra razón, hemos podido ver que, en ocasiones, es excesivamente lento (aunque eso se puede solventar en cierto y ya os hablaré de cómo hacerlo en otro post).


Hace unos días encontré una alternativa a TOR y cuyo funcionamiento se basa en las mismas bases de TOR, es decir, se establece una red entre varios nodos y se transmite la información.

Vale vale no has decubierto la pólvora, y dónde está la diferencia, que más vale malo conocido…pues veámoslas: 

  • Velocidad: los servidores están optimizados, así obtienen mayor rendimiento que su homólogo TOR.
  • Seguridad: los nodos son ofrecidos por instituciones independientes las cuales, previamente, firman una declaración pública en las que aseguran que NO almacenan ningún tipo de información sobre el tráfico que reciben y envían (digamos que de forma legal están atados de manos) Así funciona JAP:

(si queréis más detalle y una comparativa TOR vs JAP lo podéis leer aqui)
Aquí los nodos se llaman mix providers, las rutas mix cascades y podemos seleccionar desde su configurador la ruta más rápida y/o más segura.

Podremos comprobar que la velocidad de navegación con JAP aumenta con respecto a TOR, que como comenté anteriormente, puede ser lento y pesado.

Pero…no todo lo que reluce es oro, aunque es gratuito, en JAP para obtener una velocidad y seguridad idónea, tendremos que contratar un servicio de pago llamado JonDonym cuyo precio oscila desde los 5€ hasta los 100€ los cuales se facturan por volumen. Podéis ver los precios aquí, no obstante, y para los más vagos :), os dejo una pequeña comparativa de la versión free y la de pago más básica.

También, y al igual que TOR, cuenta con un addon para firefox, el cuál podemos descargar e instalar una vez hemos completado el proceso de instalación, dicho addon se llama JonDoFox y sería el equivalente a TorButton, pero con la diferencia de que éste automáticamente nos creará un nuevo perfil en Firefox


y nos configurará el navegador para funcionar con JAP, trabajo que nos ahorraremos, y es más, y se me olvidaba comentarlo, en el mismo instalador se da la posibilida de realizar un test de anonimato con nuestro navegador actual.

El aspecto final de JAP funcionando es el siguiente:


[+] Sitio Web del proyectohttp://anon.inf.tu-dresden.de/index_en.html

Bueno, ya tenéis una alternativa a la red TOR la cual os recomiendo probar, en las pruebas que yo he realizado (y sin cuenta Premium) los resultados han sido bastante buenos, ahora os toca probar a vosotros :)

Nota: el post me lo publicaron en Security by Default

sábado, 20 de julio de 2013

Encriptar: significado

Hola a tod@s!

El motivo de escribir esta entrada es por el mal uso de la palabra ENCRIPTAR!!!

Si queremos obtener un significado fidedigno de la palabra nos dirigiremos a la RAE (Real Academia Española) y buscaremos en su última edición publicada, vamos allá:



http://lema.rae.es/drae/?val=encriptar

La palabra encriptar no está registrada en el Diccionario. Las que se muestran a continuación tienen formas con una escritura cercana.

http://lema.rae.es/drae/?val=desencriptar

La palabra desencriptar no está registrada en el Diccionario. Las que se muestran a continuación tienen formas con una escritura cercana.
[...]

SORPRESA!!!!! la RAE no tiene esa palabra en su vocabulario, y mira que es extenso. Visto esto podemos decir, y con la boca bien grande, que encriptar NO EXISTE!!!!

Entonces, por qué infinidad de libros, manuales, profesores, etc siguen usando esa palabra! Que la use una persona NO técnica, pues mira, tiene un pase, pero encontrarla en manuales pues como que toca los …..

Es más, si le buscamos un significado a esa palabra, puedo decir que es "Meter en una cripta", así que POR FAVOR! dejad las criptas en paz de una vez que ellas no tienen culpa de una mala traducción :) y dejemos en paz al personaje de "Historias de la Cripta" (tales of the Crypt) 


Si si, como leéis, una mala traducción.

Lo que ha pasado aquí es que se ha cogido la palabra original con origen inglés (encrypt - decrypt) y se ha llevado al español (encriptar - desencriptar) vamos, al más puro estilo spanglish, cuando, y todos lo sabemos, su traducción literal es:

Usaremos el traductor de Google:

 

GATOS Y CIFRADO ("ENCRIPTAR")

Gracias a mi amigo @_Angelucho_ he de comentaros que, en seguridad informática, se suele hablar o mencionar la palabra "encriptar" con los gatos o como él la usa en sus entradas (MIAU). Y os preguntaréis, por qué se habla de gatos cuando hablamos de cifrado¿?

Su origen, al menos hasta donde yo sé, data de mucho tiempo atrás, tanto que ni siquiere existía la informática :), me remonto a los tiempos de los faraones (aunque puede que quizás más). En aquella época los gatos eran venerados como animales sagrados y se referían a ellos como MIU (por su maullido) tanto que en una familia, cuando un gato fallecía, se le enterraba con todos los honores, pero cuando su (digamos) dueño era de poder (en el caso de los faraones que eran enterrados en criptas y a los cuales, en ocasiones, hasta se les momificaba) y fallecía, se tenía la costumbre de enterrar al gato con el para que le protegiera. Por norma general los entierros se hacían en criptas.


Ya sabéis la historia de los gatos y la "encriptación", así que no uses la palabra origen de este post y usa el término correcto CIFRAR! Así dejaremos en paz a los pobres gatos :)

Things Up!!! 


jueves, 4 de julio de 2013

Eliminar Passwords de Windows (Reset Windows Passwords)

Resulta que el otro día mi vecino me para a la entrada del portal y me dice: "...tengo un problemilla con el ordenador de mi hija..." que raro verdad, seguro que no os ha pasado nunca nada de esto :P
Como me considero "buena persona" le comento..."a ver...cuéntame..."

Pues qué le pasaba, lo típico, resulta que la niña había puesto una contraseña en su equipo con Windows 7 para que su hermano no se lo tocara (seguro que esto tampoco lo habéis oido nunca, jejejej), y que lo había llevado a una "Tienda especializada de Informática" y le habían comentado que lo único que podían hacer era pinchar el HD de su equipo en otro PC y salvarle unos cuantos datos antes de formateárselo.

Pedazo de respuesta chaval!!!! Os podéis imaginar mi cara, verdad? Y estos son especialistas, me cago.... (Mi respeto a todas las tiendas, por supuesto).
Después de escuchar su "pena" por no poder utilizar el equipo y del palo que le querían meter en la tienda me decidí a echarle una manilla.

Yo no sé vosotros, pero yo soy de esos que siempre lleva consigo un par de dvd por lo que pueda pasar, entre otros llevo mi Hirens Boot (si no conocéis este BootCD os invito a hacerlo, yo lo he utilizado en muchas ocasiones, hasta para hacer copias bit a bit de un equipo para un análisis forense del mismo, así que es bastante completito para entornos windows, OJO! no quiero decir que sea una distro Forense).

Mi primera intención fué preguntarle si tenía el DVD de instalación de Windows 7, por si acaso, ya imagínais la respusta verdad. El motivo de preguntarle esto, fué porque recordé la entrada en su blog (Saltar password de Administrador en windows 7)de mi Ciber Compi @1GbdeInfo, así que ya que no la tenía decidí usar mi Hirens Boot para quitarle el "problema".

Bien, los pasos a seguir son muy sencillos:
  1. configuramos nuestra BIOS, es decir, el arranque del ordenador para que inicia con CD's o DVD's
  2. insertamos el CD de Hiren's Boot CD 15.1 e iniciamos el ordenador
  3. iniciar en modo Mini Windows XP
  4. ir al icono HBCD Menu, luego a Programas a continuación a Paswords / Keys seguimos a Windows Login y por ultimo ejecutamos la aplicación NTPWEdit (Reset User XP/Vista/7 Password)
  5. ejecutamos la aplicación  NTPWEdit 0.3
  6. damos click en el botón (Re)open
  7. en el cuadro user list seleccionamos al usuario que le queremos cambiar la contraseña
  8. damos click en change password
  9. a continuación insertamos una nueva contraseña
  10. damos click en botón OK
  11. y por ultimo damos click en el botón Save Changes
 Y Voilá, reiniciamos el equipo y listo.

Mi vecino se quedó la mar de contento, claro está, mientras booteaba el equipo no paraba de preguntar y de decirle a los niños "Venid y aprended..." :P

Pero qué ha pasado realmente???? Eso es lo que os debéis de preguntar.

No voy a entrar en mucho más detalle, ya que no es el objetivo de este post, si que os diré que, lo que hace la herramienta, es cargar el fichero SAM de windows y modificar el HASH de la contraseña de administrador eliminándolo.

Ante esto, existen unas cuantas contramedidas que se pueden tomar, utilizar otras herramientas para obtener el password, etc... pero era lo que tenía a mano.

En fin...

Things Up!!!

martes, 9 de abril de 2013

Análisis Forense en Android (Parte III)

Cómo comenté en la entrada anterior sobre análisis forense en Android y la obtención de evidencias sin tener rooteado el terminal, en esta nueva entrada voy a explicar cómo podemos obtener algunas evidencias básicas utilizando herramientas externas, eso si, open source.

Para este cometido disponemos de una pequeña aplicación desarrollada por la empresa ViaForensics. La aplicación en cuestión se llama AFLogical, la cual la podéis descargar desde aqui
Esta aplicación, una vez instalada sin ser root, nos permitirá obtener:
  • Información sobre las llamadas
  • Contactos del teléfono
  • Mensajes MMS y adjuntos
  • Mensajes SMS

Ya explicamos anteriormente el uso de adb y sus posibilidades, así que manos a la obra. Conectamos el terminal al equipo, nos abrimos una consola con nuestro adb instalado (voy a obviar los comandos previos ya que doy por echo de que los conoces. AH!!!! se me olvidaba, previamente hemos tenido que descargar la aplicación AFLogical.apk anteriomente mecionada.

$adb install e:\aflogical.apk
1251 KB/s (28794 bytes in 0.022s)
pkg: /data/local/tmp/aflogical.apk
Success

Pues ya tenemos la aplicación instalada, ahora bien, como no quiero tocar el terminal, vamos a ejecutarlo (eso si, mi terminal no tiene bloqueo, si el vuestro lo tuviera deberíais leer este post) mediante abd.
Como toda aplicación que instalamos en android hemos de llamar al ejecutable, todos los ejecutables en android suelen estar en el directorio data/app

$adb shell am start -n  com.viaforensics.android.aflogical_ose/com.viaforensics.android.ExtractAllData
Starting: Intent { cmp=com.viaforensics.android.aflogical_ose/com.viaforensics.android.ExtractAllData }

Con ese comando lo que hemos echo ha sido ejecutar la aplicación con todas las opciones marcadas. Eso si, he de comentar que esta aplicación dispone de unas veriones de pago que nos permite obtener más información.
Si vieramos la pantalla del terminal tendríamos un cartel que nos diría que la extracción de datos se ha completado, tal cual la siguiente:

Ahora sólo nos queda recuperar los datos que la aplicación ha obtenido. Estos datos se almacenan, por regla general, en la sdcard externa y crea el directorio (en mi caso):
forensics/20130409.1234
Si lo analizamos un poco podemos deducir que 20130409 es la fecha actual 2013/04/09 y 1234 es la hora 12:34
Así que si nos conectamos por shell al terminal y ejecutamos la orden ls nos devolverá algo parecido a lo siguiente (dependiendo de la versión de aflogical.apk):

  • CallLog Calls.csv
  • Contacts Phones.csv
  • DSC00295.jpg
  • MMS.csv
  • MMSParts.csv
  • SMS.csv
  • info.xml
Como podéis ver nos lo presenta en csv un formato más que legible para analizar los datos, así que sólo nos queda traernos esos datos a nuestra máquina para su posterior análisis:


$adb pull sdcard/forensics e:\aflogical
pull: building file list...
pull: sdcard/forensics/20130228.1158/Contacts Phones.csv -> e:\aflogical/20130228.1158/Contacts Phones.csv
pull: sdcard/forensics/20130228.1158/MMSParts.csv -> e:\aflogical/20130228.1158/MMSParts.csv
pull: sdcard/forensics/20130228.1158/MMS.csv -> e:\aflogical/20130228.1158/MMS.csv
pull: sdcard/forensics/20130228.1158/SMS.csv -> e:\aflogical/20130228.1158/SMS.csv
pull: sdcard/forensics/20130228.1158/CallLog Calls.csv -> e:\aflogical/20130228.1158/CallLog Calls.csv
pull: sdcard/forensics/20130228.1158/info.xml -> e:\aflogical/20130228.1158/info.xml
pull: sdcard/forensics/20130409.1234/Contacts Phones.csv -> e:\aflogical/20130409.1234/Contacts Phones.csv
pull: sdcard/forensics/20130409.1234/DSC00295.jpg -> e:\aflogical/20130409.1234/DSC00295.jpg
pull: sdcard/forensics/20130409.1234/SMS.csv -> e:\aflogical/20130409.1234/SMS.csv
pull: sdcard/forensics/20130409.1234/CallLog Calls.csv -> e:\aflogical/20130409.1234/CallLog Calls.csv
pull: sdcard/forensics/20130409.1234/MMS.csv -> e:\aflogical/20130409.1234/MMS.csv
pull: sdcard/forensics/20130409.1234/MMSParts.csv -> e:\aflogical/20130409.1234/MMSParts.csv
pull: sdcard/forensics/20130409.1234/info.xml -> e:\aflogical/20130409.1234/info.xml
13 files pulled. 0 files skipped.
705 KB/s (359236 bytes in 0.497s)

IMPORTANTE

No olvidéis desinstalar la aplicación:
$adb uninstall com.viaforensics.android.aflogical_ose
Success


Nos vemos en la siguiente entrada.

Things up!

lunes, 1 de abril de 2013

Android Simular pulsaciones por ADB (Input KeyCodes)

Después de unos días desconectado de todo volvemos a la carga, esta vez os voy a hablar de cómo podemos simular que pulsamos una tecla o realizamos una acción en un terminal Android.

Este método lo podremos aplicar para, por ejemplo, activar el modo avión en un terminal que no tiene bloqueo de seguridad.

De todos es bien sabido que el ADB de Android nos permite, entre otras cosas, instalar y desinstalar aplicaciones, recuperar/subir ficheros, etc. 


Todo esto está muy bien, pero además el ADB nos proporciona una serie de acciones con las que podemos simular que presionamos físicamente la pantalla. Para ello disponemos de la siguiente tabla de acciones:


Ahora bien, supongamos que nos llega a nuestras manos un terminal Android al que hemos de realizar un análisis forense, ya hablábamos en un post anterior que es recomendable tener activado el modo avión para realizar el análisis, así que vamos a ponernos manos a la obra.

Ya sabemos que lo primero es que el terminal tenga el modo depuración activado, de lo contrario poca cosa podremos hacer, bien, lo conectamos a nuestro equipo y ... "Ha habido suerte" tenemos el adb activo, así que vamos a "cacharrear", bueno ya sabéis cómo comprobar que tenemos acceso al terminal, no? de no ser así te recomiendo leer este post.

A lo que vamos, vamos a hacer uso de lo mencionado anteriormente, activar el modo avión sin tocar la pantalla, para ello:
#adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS

Veremos como se abre la ventana de configuración del modo avión :)

Bien, dependiendo de cada versión de android, la activación de la casilla correspondiente puede estar más arriba o más abajo, así que nos podremos mover con los keycodes tabla anterior hasta la opción deseada y luego:

adb shell input keyevent 23 
Ya tendremos el terminal en modo avión, curioso verdad?? :D

Espero que os sea de utilidad.

Things Up!