RSS |

Blog de Omar

Just another WordPress weblog

Advertisement

Archive for the ‘ Android ’ Category

Yo sé, yo sé, lo admito …. han pasado varios meses desde que escribí mi último post y sólo puedo excusarme en que he tenido muchas cosas que hacer:

  • La Maestría, que absorbe gran parte de mi tiempo
  • Los cursos de seguridad dictados, he dictado 03 cursos que hicieron que llegara muy tarde a mi casa
  • Y finalmente….. el trabajo de todos los días.

Bueno, lejos de ser una excusa valida, sólo me queda retomar la actividad del blog. Me alegra mucho cuando me encuentro con personas que me dicen que me siguen desde la primera vez que expuse en LimaHack (allá por el 2011) y que hasta ahora siguen mis charlas hasta el LimaHack 2012, muchas gracias a todos.

La presentación LimaHack 2012

Como se los prometí a todas las personas que estuvieron en mi charla y se me acercaron al finalizar la misma, aquí les dejo la presentación del evento.

Evento: LimaHack 2012
Fecha: 03/11/2012
Expositor: Omar Palomino H. (este pechito, aunque ahora todo el mundo le dice “EL Palomo”)
Tema: Android Mobile Hacking
Recursos en la web (el APK y su funcionamiento): http://www.el-palomo.com/limahack/README-elpalomo_limahack.html

Resumen de la presentación:

  • ¿Por qué Android?
  • Atacando desde Android: Anti y Dsploit tools
  • Atacando la red: Firesheep
  • Análisis de seguridad en WhatsApp
  • Metasploit: Atacando Android
  • Ataques de códigos USSD
  • Analizando la seguridad de Google Play y decompiling APK files con AGNITO

Descargar la presentación [AQUÍ]

image1

image2

 

Popularity: 25% [?]

Por: BILLY GRADOS,

Android Developer en Devos Inc. (https://www.facebook.com/DEVOS.Inc) ,

desarrollador de Metro de Lima (by BGL) (https://play.google.com/store/apps/details?id=me.metro.bgl)

  1. INTRO
  2. DESARROLLO APPS
    1. SPEC
    2. SCREENS
    3. DESIGN
    4. CODE
    5. CODE WEB / SERVER
    6. DEPLOY
    7. TEST
  3. CONSEJOS
  1. INTRO

  2. Primero, dar el Agradecimiento a Omar PH, Ing. Sist., futuro Mg. Gestión TI, C|EH, Security +, ITIL v3., CSM (¿certified security master?) y otofílico, por este espacio de compartir el mundo móvil desde una aplicación rápida y compacta con líneas de código para dar un vistazo al desarrollo en android.

    Segundo, si quieres enterarte del Mundo Móvil y tecnología móviles,

    DALE ME GUSTA a la página de Devos Inc (https://www.facebook.com/DEVOS.Inc).

    ¿Qué es el mundo móvil?

    Si tienes un smartphone, si usas whatsapp, si escuchaste de instagram, foursquare, angrybirds, o las infinidades de aplicaciones para celulares con android, iOs, BlackBerry, Windows Phone, y más, entonces, sabes que esa revolución que empezó con un Walkman de Sony, continúa hacia sorprendentes tendencias como DNI y dinero electrónico, e incluso Google Glass. Toda tecnología que es portátil, que se mueve o puede ser llevada fácilmente contigo, está cambiando la forma como vemos el mundo. El mundo digital ya no está a la espera de nosotros desde una cabina de internet o una laptop, sino que está segundo a segundo con nosotros desde cualquier espacio donde llevemos como mínimo un Smartphone.

  3. DESARROLLO APPS

    Para gusto de muchos, no existe una lámpara mágica que fabrique aplicaciones móviles. Para solucionar problemas, existimos nosotros. Y con ingenio, y mucha perseverancia se ha llegado inclusive a curiosear por Marte, y desentrañar el genoma humano.

    Los que somos escritores para no humanos (me incluyo), lo hacemos teniendo en mente que cada línea de código en conjunto FACILITEN la vida de los usuarios para quienes construimos las aplicaciones. Muchas veces tan solo bastará un botón para obtener el reporte que antes tardaba días, o dar clic bastará para comprar la última oferta insuperable de un sitio de promociones y descuentos, debitándolo de nuestra cuenta bancaria.

    . Usaremos: Eclipse IDE Indigo corriendo en un Windows 7, Android SDK (http://developer.android.com/index.html). Advertimos: se expondrán los siguientes conceptos considerando que al menos se ha revisado y ejecutado satisfactoriamente el tutorial de construir tu primera aplicación android (http://developer.android.com/training/basics/firstapp/index.html)

    Descargar el código fuente.

    SOURCE: source.zip

    1. SPEC

      Hoy construiremos una aplicación compacta para:

      • Enviar los datos desde un formulario del teléfono inteligente usando Android hacia el sitio web de reservaciones.
      • Se simulará una aplicación para la empresa ficticia El Palomo ubicada en Estados Unidos, la cual se dedica al envío de movilidad (taxis) para el recojo de pasajeros (pickup) y traslado hacia otro punto (dropoff).
    2. SCREENS

      La idea de la aplicación es permitir a los usuarios reservar el envío de un taxi. Son cuatro opciones: express ride (cuando se reserva para los siguiente minutos), point to point (cuando se reserva para una determinada hora), y los relacionados al aeropuerto donde se indica de dónde se recogerá al pasajero o hacia qué aeropuerto quiere ir.

      • Pantalla principal
      • screen1

      • Pantalla principal (orientación horizontal)
      • screen2

      • Formulario
      • screen3

    3. DESIGN

      Para iniciar a programar podemos seguir los siguientes pasos:

      • main.xml: pantalla principal con las opciones principales de la aplicación
      • header.xml y footer.xml: será el encabezado y pie de página que se repetirán en las dos pantallas
      • form_layout.xml: la pantalla con el formulario.
    4. Encender

      Crear un nuevo proyecto en Eclipse, recordar que se sigue la siguiente estructura:

      estructura1estructura2estructura3 .
      .
      src: Carpeta con las clases java que darán vida a la aplicación..
      .
      .
      .
      .
      .
      .
      .
      .
      libs: Librerías para usar Fragments, y la inyección de dependencia para ahorrarnos unas líneas de código.

      .
      .
      res: RECURSOS:

      • Drawable con los xml de las formas y fondos a usar para los botones y scrollbar
        .
        .
        .
      • Layout: Aquí están las pantallas
        .
        .
        .
        .
      • Layout-land: Aquí la pantalla pero para posición horizontal
        .
        .
      • Values: Un conjunto de valores como arreglos, listado con colores, dimensiones, cadenas de texto y estilos.
        .
        .AndroidManifest.xml: Archivo donde inicia toda la configuración del proyecto android.

      Arrancar

      Con una estructura clara, arrancamos con las pantallas:

      Se usa include para incluir header.xml y footer.xml

      spinner es el componente que permite seleccionar una de las opciones de pasajeros.

      View se usa como separador.

      Como la aplicación está pensada para adaptarse a varios idiomas se aconseja separar en un archivo de cadenas de texto (strings.xml) todas las palabras y frases. Conforme se necesite las incluimos y las usamos en las pantallas.

      Lo mismo aplica para colores que reusaremos y podemos centralizar en un archivo (colors.xml) para cambiar rápidamente en todas las pantallas donde se use. Lo mismo aplica con las dimensiones (dimen.xml). También el listado de opciones de pasajeros (arrays.xml).

      Los estilos personalizados se manejan en styles.xml y que se enlaza con la aplicación gracias al AndroidManifest.xml

      <application
         android:icon="@drawable/ic_launcher"
         android:label="@string/app_name"
         android:theme="@style/ElPalomoTheme" >

      ahí se incluye qué ícono servirá para lanzar la aplicación (android:icon) y que se mostrará al lado de las demás aplicaciones.

      El Activity (que viene a ser como el controlador principal a usarse) a iniciar se declara usando el <intent-filter>. Todos los Activity tienen que ser declarados.

      Manejar y Apagar

      Manejar y apagar lo veremos a continuación.

    5. CODE

      ElPalomoReservationsActivity.java

      Activity principal donde inicia la aplicación.  Usamos el Annotation @InjectView para inyectar y tener una referencia a los elementos de la vista / pantalla R.layout.main

      Inmediatamente después de establecido el contenido de la pantalla ocurrirá la inyección de dependencia y podremos fácilmente sin usar findViewById

      Indicamos que los botones tendrán como listener al activity que hereda de RoboActivity he implementa a OnClickListener.

      Y finalmente cuando se reciba el evento clic gracias al listener declarado que es este Activity, nos permitirá ir al siguiente Activity.

      Usamos la la clase ControladorReservations como una clase singleton para disponer de información a través de toda la aplicación en memoria.

      FormActivity.java

      A diferencia del anterior este implementa validaciones de campos requeridos en el botón send.

         progress = new ProgressDialog(this);
         progress.setMessage(getString(R.string.sending));
         progress.show();
         new InternetRequestTask().execute();

      Esas líneas hacen que se ejecute la Tarea InternetRequestTask que será un hilo en background que enviará a la internet el formulario.

      InternetRequestTask extends AsyncTask dentro de FormActivity.java

      • doInBackground

      Usa la clase Util que empaqueta la implementación para el envío a Internet.

      return Util.openUrl(

      getString(R.string.url),

      httpMethod,

      param);

      getString(R.string.url) permite obtener la dirección url que se encuentra en el archivo de strings.

      httpMethod será POST.

      La variable param es un empaquetado de pares de Strings (Bundle).

      • onProgressUpdate

      Se usa en caso tengamos un progress dialog que se actualiza según el valor recibido.

      • onPostExecute

      Ejecuta un método de la clase padre FormActivity que mostrará al usuario que el formulario se envió correctamente.  Se cierra el diálogo, y se finaliza el Activity para pasar al Activity que lo llamó, o sea, ElPalomoReservationsActivity

      ControladorReservations.java

      Una clase que puede usarse para servir de control y de una capa lógica que actualmente solo se usar para saber qué botón se presionó.

      TimePickerFragment.java y CustomTimePickerDialog.java

      Las dos clases anteriores permiten que aparezca el timepicker. Primero como un fragment diálogo y luego como un diálogo personalizado. Estas clases fueron tomadas de http://developer.android.com/guide/topics/ui/controls/pickers.html

      Se adaptó para usar un intervalo de 15 minutos (TIME_PICKER_INTERVAL)

      Util.java

      Contiene parte de la clase del SDK de Facebook para android usada para la conectividad a internet.

    6. CODE WEB / SERVER

    7. android_reservations_service.php

      El archivo responsable de guardar los datos y responder a la aplicación móvil (cliente) enviará como respuesta Reservation sent lo cual se verá al finalizar progress dialog.

    8. DEPLOY

    9. Usar un servidor donde se ejecute PHP, incluir el archivo php y configurar la dirección correctamente en el strings.xml.

      (Recordar dar permisos a los archivos o directorio donde se creará el archivo reservations.txt)

    10. TEST

    11. Véase demo (http://www.youtube.com/watch?v=J3KVc_haLCA)

  4. CONSEJOS

  • Perseverancia como todo en la vida.
  • Tener una perspectiva clara de los requerimientos y ordenar el trabajo: Requerimientos, Diseño (arquitectura de la aplicación y diseño de pantallas), Programar desde las pantallas hasta la funcionalidad
  • Probar y anticiparse a los cambios. Jugar con implementar nuevas funcionalidades y proponerse retos de cómo quedaría mejor y completarlos.

Popularity: 37% [?]

DroidSheepGuardCuando tenía 17 años empecé a ver los programas de Marco Aurelio Denegri (un intelectual peruano de avanzada edad,  que debe ser, creo yo, uno de los intelectuales más importantes de Latinoamérica), me gustan sus programas porque denota en sus comentarios harto conocimiento, cita fuentes importantes y siento en sus palabras algo de cólera, como si estuviera molesto con el público, con sus camarógrafos y hasta con él mismo; esa energía que le pone para criticar las cosas me cautivó y siempre que puedo veo su programa. Hace una semanas pude ver  un programa donde hablaba de los “accesorios tecnológicos” como los celulares, las tabletas y cualquier dispositivo que podamos llevar con nosotros sin que nos ocupe mucho espacio, él comentaba que estos dispositivos se han vuelto para nuestra generación en una “prótesis” de nuestros cuerpos, en algo tan elemental que en la actualidad sin ellos no podríamos sobrevivir.

Basta salir a la calle y observar detenidamente, todos tenemos una prótesis tecnológica adherida a nuestro cuerpo, desde celulares convencionales sin un sistema operativo sofisticado hasta Smartphones con Android y iPhone o tabletas que inundan con mas frecuencia cada minuto nuestras calles.

LA ERA POST PC

Esta nueva era es cada vez mas notoria, en algunos países demorará mas en llegar, definitivamente Perú no será el pionero de esta nueva era, pero toca reconocer que Perú debido a su crecimiento económico constante los últimos 12 años lleva la ERA POST PC avanzando lentamente sin detenerse; todo suena muy bonito, todo suena prometedor y parece augurar un futuro prospero, sin embargo, hay otros aspectos en los cuales no hemos avanzado absolutamente nada, ni siquiera hemos dado un paso – ni medio diría yo – y se trata de la seguridad de información.

Para muestra sólo un botón (así dicen mis padres):

  • ¿Cuántos tienen encriptado su teléfono celular, es decir,  encriptada y protegida la información que tienen sus dispositivos móviles?
  • ¿Cuántos tienen una contraseña o patrón de bloqueo para sus equipos celulares que sea considerado robusto?
  • ¿Cuántos se sienten felices de encontrar una red wireless libre (parques, centros de reuniones, patios de comida, etc.) y aprovechan la misma para revisar su correo electrónico, cuenta de Facebook u otras cuentas personales?
  • Y el peor de todos ¿cuántos llegan a algún sitio y sienten la urgencia (casi necesidad biológica) de tomarse una foto y compartirla de inmediato a alguna red social poniendo al descubierto su ubicación sin necesidad de un GPS?

Los hackers, llamémoslos así, ahora tienen mira puesta en esta nueva era, LA ERA POST PC, y debemos reconocer que en el Perú el nivel de conciencia en cuanto a seguridad de información se refiere es todavía muy débil y le facilita el trabajo a aquellas personas que suelen aprovecharse de estas facilidades, además, los hackers ya no necesitan una laptop para obtener información crítica, ahora sólo les basta un equipo celular para lograr acceso a información sensible.

¿Quiénes deben preocuparse? 

Voy a clasificarlo de la siguiente manera:

  • LUGARES PÚBLICOS SIN CONTROL

En esta clasificación están los lugares públicos y que por lo general están bajo la responsabilidad del estado, por ejemplo: parques con internet gratis, centrales de ómnibus con internet gratuito, etc.; pienso que conectarse a internet para acceder a información sensible a estas redes públicas es casi un suicidio, es casi pegarse un letrero en la frente que diga: “Please, rob me”. Bajo este escenario no hay responsables, nadie controla la seguridad de las comunicaciones y es que simplemente no hay presupuesto para controlar todo esto.

 

  • LUGARES PÚBLICOS QUE DEBEN SER CONTROLADOS 

Aquí la situación es distinta, aquí hablamos de sitios donde si hay responsables quienes deben preocuparse de la seguridad de las comunicaciones, por ejemplo:

  1. LOS HOTELES: En mi experiencia en Perú y en algunos otros países de América donde me he hospedado, ningún hotel vigila o brinda seguridad a sus redes públicas, es decir, aquella red (que por lo general esta separada de la red operativa del hotel) donde todos los huéspedes se conectan para revisar sus correos empresariales, información corporativa sensible y realizar transacciones bancarias. Esto resulta extremadamente crítico, se imaginan lo que pasaría si un hacker realiza el robo de credenciales de una tarjeta de crédito en algún hotel y esta información se hace pública? El hotel simplemente desaparecería del mercado, sería catalogado como un hotel inseguro, es decir, donde se realizan robos y su reputación se vería en ruinas.

  2. SITIOS DE REUNIÓN: No voy a colocar nombres para evitar problemas pero hago referencia a todas aquellas empresas que tienen un establecimiento de comida y/o reuniones de trabajo donde se le brinda al cliente una conexión de red, una conexión a internet mal llamada gratuita porque en realidad el cliente la está pagando al consumir algún producto. En estos sitios también se realizan transacciones bancarias, se leen correos importantes, etc; alguien protege estas redes de comunicación? Que pasaría si mañana algún empresario importante denuncia haber sido víctima del robo de su correo electrónico en alguno de estos establecimientos?

SESSION HIJACKING – DROIDSHEEP

Droidsheep es una aplicación para sistemas operativos Android que captura las cookies e identificadores de sesión mediante la técnica de hombre en el medio, luego las selecciona, procesa y te muestra un listado simple de las sesiones secuestradas, es muy similar a lo que alguna vez fue el famoso plugin de Firefox: FIRESHEEP.

DSC06566

Detalles de instalación:

  1. Rootear el dispositivo móvil con S.O Android. Para este video hemos utilizado un Galaxy Nexus
  2. Instalar ARPSPOOF en el dispositivo móvil con S.O Android. DESCARGAR AQUÍ
  3. Instalar Droidsheep en el dispositivo móvil con S.O Android. DESCARGAR AQUÍ
    Nota: La página oficial de Droidsheep fue obligado a retirar el software por ser considerado una herramienta para hackear pero el código fuente se encuentra en la página web. Pienso que la herramienta debería ser considerado un muestra de lo sencillo que es realizar ataques desde un dispositivo móvil …. bueno…. eso es definitivamente otro tema.

    droidsheep

  4. Opcional: Instalar Shark for ROOT (Wirehark para dispositivos móviles)

 

Popularity: 80% [?]

androidpirateComo cuando mi abuelita me traía nuevas canicas para jugar, como cuando orquestaba y armaba todo un campo de batalla en mi habitación y como cuando me sumergía en una historia imaginaria con los soldaditos de plástico que colocaba estratégicamente en la ventana y muebles de mi cuarto, así me encuentro, tocando y haciendo clicks a discreción sobre mi nuevo Google Nexus.

No es difícil imaginar que lo primero que haría es evaluar las herramientas que me servirían para realizar Ethical Hacking, así que decidí realizar un videotutorial sobre el “Análisis de vulnerabilidades” desde un celular con el sistema operativo Android. En el video podrán ver el uso de dos herramientas:

  • NETAUDIT TCP PORT.- Herramienta lo más parecido a NMAP (aunque aún muy lejos de parecérsele)
  • NESSSUS.- Herramienta para realizar y encontrar vulnerabilidades

Espero les guste el video y puedan realizar las mismas pruebas.

 

Popularity: 8% [?]