Querido Diario….

Después de haber llenado de cemento a la única pista que tenían para encontrarme, Fab empezó a investigar al guardia. Para ello, intentó primero romper el código de autenticación de su celular para obtener acceso a sus fotos o redes sociales, pero no lo consiguió. Entonces intentó buscar información haciendo uso de la detección de rostros de Instragram, lamentablemente seguían sin encontrar nada.

Mientras tanto yo seguía en lo mío, siguiendo las recomendaciones de Leonel, me había ido por la opción de inentar algo desde las aplicaciones móviles del banco; lo cual pfff.. me hacía sufrir un poco, porque tenía muuuuucho tiempo que no revisaba una aplicación móvil.

Hoy en día, es normal ver que las aplicaciones son completaemente nativas, ya sea para iOS o para Android, pero anterioremente eran en realidad navegadores que consumian vía web la aplicación y lo mostraban al usuario. El mundo había cambiado, y yo no había cambiado con el mundo.

De entre iOS y Android, preferí empezar por las aplicaciones en Android, porque pues coff.. coff.. #android… lo primero que me encontré es que la arquitectura de Android va en capaz, una sobre la otra. Así como se ve en la imagen. No puedo negar que sentí pena cuando vi la palabra Linux, no puedo creer que hayan usado el kernel de Linux para un producto con malo como lo es Android.

Una de las cosas más importantes que se pueden ver en el diagrama, es que Android maneja dos niveles de seguridad; uno proporcionado directamente por el kernel de Linux y otro por Android como tal. Linux maneja los permisos a nivel bajo, como los UID y GID; mientras que Android maneja la seguridad de alto nivel como el acceso a los dispositivos de almacenamiento, permiso de acceso de las aplicaciones a la información del equipo, etc.

Todos estos permisos vienen definidos en un archivo que se llama AndroidManifest.xml, y que es creado por el desarrollador de la aplicación; aquí vienen también algunas otras cosas como la versión de Android requerida por la aplicación, dependencias, etc.

Pfff.. hay otras cosas que tener en cuenta, como las Activities, Services, Broadcast Receivers, Shared Preferences, Intents y Content Providers; pero cuando uno tiene que hackear un banco para mantenerse vivo no se tienen tiempo para verificar todo esto, así que ya iré aprendiendo eso en el camino.

Existen aplicaciones de prueba para aprender, como DIVA (https://github.com/payatu/diva-android); pero… tampoco hay mucho tiempo para detenernos en el aprendizaje, hay que pasar a la acción.

Ya en la acción, lo primero que necesitamos es poder instalar cosas en nuestro dispositivo. En el caso de que estemos usando Genymotion podemos simplemente arrastrarlo y que todo pase magicamente, o podemos hacer uso del Android Debug Bridge (adb); está herramienta nos permite instalar aplicaciones en el dispositivo, debuggear aplicaciones, visualizar los logs de la aplicación, perfilar.

Si queremos ver una lista de los dipositivos que tenemos conectados, podemos usar el comando:

$ adb services

Para conectarnos a un equipo, podemos usar:

$ adb connect [dirección IP del dispositivo]

$ adb -s [dirección IP del dispositivo] shell

Para subir archivos al dispositivo, podemos utilizar:

$ adb push archivo.txt /mnt/sdcard/archivo.txt

Para descargar archivos:

$ adb pull /mnt/sdcard/archivo.txt archivo.txt

Incluso podríamos hacer un backup de la aplicación, algo que @Tania_ me preuntó en la semana:

$ adb backup package_name -f store.ab

Podemos ver los procesos ejecutandose:

$ adb shell ps | grep -i [nombre de la aplicación]

Ver lo que la aplicación está realizando en ese momento:

$ adb logcat | grep -i process_id

Instalar aplicaciones:

$ adb install aplicacion.apk

Desinstalar:

adb uninstall aplicacion.apk

Esto se podría decir que es únicamente para poder trabajar con el dispositivo, lo importante viene en el análisis. En donde lo primero es realizar una ingeniería en reversa, para eso usamos Dex2jar

$ ./d2j-dex2jar.sh aplicacion.apk

En este momento ya podemos trabajar con la aplicación como si fuese un JAR; podems usar JD-GUI para poder analizar la aplicación de forma gráfica. Otra forma es utilizar Apktool, la cual es también utilizada para hacer ingenieria inversa a las aplicaciones:

$ apktool d aplicacion.apk -o /mnt/descompilacion

Eso es básicamente lo básico para poder empezar a trabajar, y de allí… pues un TXT con los dominios de OWASP, como decía El ingeniero: «pues todas las aplicaciones son lo mismo ingeniero, autenticación, autorización, validación de entradas… »

A pesar de que estuve mucho tiempo en esto, aun no había avanzado mucho. Fue cuando tocaron a la puerta, y entraron dos tipos armados; junto a la señora.

- Boa tarde Augusto. Como você vai?
- Ainda é difícil dizer, mas segui em frente 
- Não estou muito animada em ouvir isso ... mas tudo bem, continuarei confiando em você. Tens fome? - dijo minetras indicaba con un gesto que la siguiense

Caminamos hacia un comedor, puesto frente a un ventanal y que daba con la vista al mar. En la mesa había dos platos servidor, me senté en un extremo y con cuidado empecé a comer.

Esa señora era muy extraña, sabía que ella era la encargada de todo, pero aun no sabía que rol jugba aquí. Mientras estabamos sentados apareció una niña, la cual le abrazo y le dijo algo al oido. Estabe en su departamento personal.

- Ela é sua neta? - pregunté
- Sim, é um amor. Tem filhos?
- Não
- Não te agradam?
- Sim, eu amo as crianças. Eu adoraria ter filhos
- Onde você aprendeu a falar português? - empezó a comer también
- Na escola. Eu sempre odiei o inglês, mas precisava de um idioma estrangeiro para me intitular, então escolhi um que não fosse desagradável

Se llamaba Olga, no era turbia e ilegal, pero al fallecer su esposo un día se dio cuenta que todo el dinero del que gozaban venía de negocios muy rentables y poco éticos. Así que se dedicó a hacerlos crecer, algo parecido a la Duquesa, versión tica.

Hace poco, cuando Don R anunció su salida de los negocios aprovecho para acrecentar su poder dentro Costa Rica. Quienes habían secuestrado a Janey eran también sus nietos. Ahora, lo que le interesaba era poder sacar mucho dinero tan rápido como pudiese de los bancos, y moverlo entre sus cuentas de Asia y África.

Había escuchado de nuestra reputación a lo largo de México, y pensó que seríamos una gran opción, dado nuestro conocimiento de Costa Rica. Sin embargo, nunca pensó que intetasemos rescatar a Janey, y mucho menos que me intercambiaria por ella. Al parecer teníamos una versión del riesgo muy distinta.

- Eu tenho informação; Seus meninos estão procurando por você. Ontem eles atacaram a casa segura que tínhamos. Felizmente, para mim, eles não conseguiram nenhuma informação - dijo mientras encendía un cigarro. 
- Hum ... sim, eu assumi. Nós somos o que somos, mas #temosaatitude
- Quero que você entre em contato com eles e peça que desistam, ou não vou responder pela segurança deles. - Mintras decía eso, quitó una sabana que cubría el sofa

- Com todo o respeito, acho que você nos subestima. Vou continuar invadindo o banco, como prometi; mas não posso garantir a segurança do seu gente, nem de você. Nós, mexicanos, somos muito diferentes do que você está acostumado a tratar - me puse de pie, y regresé a mi celda.

Querido Diario…

Cuando volví a sentarme frente a la computadora tenía una llamada perdida. La regresé, era «Amanecer»; nuevamente me buscaba para invitarme a Seattle, agradecí y me paré de la computadora. Fui a tirarme a la cama; quería cerrar los ojos, despertar, ver ese color azul con blanco de las paredes; el aroma a fresco del perfume, el sonido del motorcito, verte durmiendo, abrazarte, darte un abrazo en la frente sin que te dieses cuenta, y volver a decir: que feliz soy a tu lado. Y cerrar los ojos, para quedarme dormido a tu lado.