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!

miércoles, 20 de marzo de 2013

Freedly Alternativa a Google Reader


Imagen de www.redusers.com


Cómo todos sabéis Google Reader cerrará sus puertas el día 1 de Julio, una gran decepción para los que usamos esta aplicación de Google.

El comunicado se hizo oficial a través del blog que la empresa le dedicó al servicio, sin más explicaciones que su uso se vio reducido y que quieren invertir más energías en menos productos. Si bien no se aclara en este artículo, habría también una intención de que los usuarios de Reader se alimenten de noticias a través de Google+, a pesar de sus limitaciones en ese sentido.

¿Alternativas? Para empezar el propio Google nos recomienda acudir a Google TakeOut para exportar toda la información de reader y llevarla a otro cliente RSS (en formato XML). Y luego productos como Feedly, que se presenta como extensión para Google Chrome, además de como aplicación para iOS y Android.

Personalmente he probado Freedly (me la ha recomendado un compañero) y me ha sorprendido la facilidad de su uso y la integración completa con nuestra cuenta de Google Reader, y además gratis. También he de comentar que dispone de aplicaciones para iOS y Android en sus respectivas tiendas.

Por ponerle una pega, puedo decir que para empezar a usar Freedly (y a los que tenemos cuenta de Google Reader) es que nos solicita acceso para acceder con nuestra cuenta de Google).

Yo ya he empezado a utilizarlo, y tu??

Things Up!



jueves, 14 de marzo de 2013

Análisis Forense en Android (Parte II)

En la entrada anterior comenté la posibilidad de obtener datos del terminal sin ser root, se me olvidó comentar que es aconsejable tener el terminal en modo avión (aunque en muchos casos es necesario que esté rooteado, sobre todo si tiene patrón de acceso, clave, etc.). En en siguiente ejemplo que vamos a ver voy a usar el comando anteriormente mencionado:


#adb bugreport > bugreportAndroid.txt
#wc -l bugreportAndroid.txt
61497 bugreportAndroid.txt

Salen unas cuantas líneas que revisar, no?? :D


Aqui es importante, o cuanto menos aconsejable, que el terminal esté en modo avión y/o aislado de la red como mencioné en el post anterior, de lo contrario la ejecución del comando nunca terminará, dado que el terminal constantemente está pidiendo conexiones a la red, y lo tendréis que cortar, lo que ello conllevaría que, posiblemente, el report del comando esté incompleto.

Vayamos al tema!

Ya tenemos el fichero en cuestión, vamos a ver qué nos ofrece.

Nada más abrir el fichero veremos algo similar a:



========================================================
== dumpstate: 2013-03-13 16:14:56
========================================================

Build: cm_galaxysmtd-userdebug 4.2.2 JDQ39 eng..20130303.223331 test-keys
Build fingerprint: 'samsung/GT-I9000/GT-I9000:2.3.5/GINGERBREAD/XXJVT:user/release-keys'
Network: movistar
Kernel: Linux version 3.0.66-g6c5dade (xxxxxxxxxx@cyanogenmod)
Command line: console=ttySAC2,115200 loglevel=4 androidboot.serialno=XXXXXXXXXXXXXX bootmode=0

------ UPTIME (uptime) ------
up time: 3 days, 01:19:28, idle time: 1 days, 00:31:41, sleep time: 1 days, 19:24:50
[uptime: 0.1s elapsed]

Vamos a paranos un segundo en revisar estas líneas, podemos ver que el terminal es un Samsung GT-I9000, con la versión de Android GingerBread, Kernel XXJVT, Kernel Version 3.0.66, con cynanogenmod (rom de cynanogen ), operador Movistar, número de serie del terminal y el tiempo que lleva encendido. No está mal nada más abrir el fichero, no?

Voy a saltarme unos cuantos pasos y voy a ir al grano directamente.

Sabemos que el terminal es Android, por consiguiente el propietario del mismo ha de disponer de cuenta en goggle (ya sabés [usuario]@gmail.com) para que el terminal sea operativo al 100%. Pues al grano, realizamos una búsqueda en el fichero y buscamos el patrón: DUMP OF SERVICE account

Al realizar esta búsqueda encontraremos rápidamente el volcado de las cuentas del terminal, y podremos ver algo similar a lo siguiente:


DUMP OF SERVICE account:
User UserInfo{0:Jesus D.:13}:
  Accounts: 6
    Account {name=[usuario]@gmail.com, type=com.google}
    Account {name=[telephone_number], type=com.whatsapp}
    Account {name=[usuario], type=com.twitter.android.auth.login}
    Account {name=[usuario]@gmail.com, type=com.linkedin.android}
 


Pues no está nada mal, no? Básicamente y a un sólo click obtenemos el número de teléfono (eso si, por que el usuario tenía WhatsApp, y quién no??), la cuenta de correo, su cuenta de twitter, linkedin

Ahora bien, otro de los datos interesantes que podemos obtener es la última localización conocida del terminal, realizaremos los mismos pasos anterior, pero ahora el patrón de búsqueda será: DUMP OF SERVICE location

Hemos de encontrar algo así:


Last Known Locations:
    passive: Location[network [coordenada],[coordenada] [....]

Ahora sólo nos quedará ir a google maps y en el cuadro de búsqueda introducir los numeritos obtenidos, eso si IMPORTANTE tenéis que sustituir la coma por puntos, quedaría algo así (coordenadas inventadas) plasmado en el mapa.


Se pueden sacar muchas más cosas interesantes, pero no os lo voy a decir todo no?? Así que a estudiar :D jejejejej

Nos vemos en la siguiente entrada.

Si te ha gustado comparte!

Things Up!