Archivos en la Categoría 'android'

Robo de sesiones web con android

Con la salida de firesheep(famosa extension de firefox para robar sesiones) se destapo una forma friendly para robar sesiones web al vuelo desde una computadora con solo conectarse a una red inalambrica, aunque la extension no siempre funcionaba y dependia mucho encontrar la conbinacion de hardware y software que la hiciera funcionar y es por eso que aunque fue popular a la mayoria no le funcionaba(a mi si  me funciono, con una macbook con leopard y firefox). firesheep no podia guardar las sessiones que capturaba por lo que tocaba de auxiliarse de otras extensiones para guardar las sesiones para futuros analisis, yo utilizaba “session manager

Con la adopcion de Android por los desarrolladores y tomando de base la idea de firesheep han salido 2 opciones para robar sesiones web desde el mobil una de pago llamada faceniff la cual  ya se puede encontrar crackeada  la cual hace lo que promete robando sessiones de facebook, amazon, entre otras. con esta app me diverti mucho pues cada vez que voy a un starbucks o algun hotel(en mi pais hay wifi gratis en los hoteles) enciendo la app y grabo las sesiones de facebook que a veces no logro ver todas de tantas que se capturan.

Faceniff  permite guardar las sesiones que captura a diferencia de firesheep pero tiene el incoveniente que ya tiene predefinido los perfiles que captura(facebok, amazon, twitter, otros) descartando muchas paginas que tambien interesan por ejemplo CMS como joomla.

investigando en el market de android me tope con una verdadera joya para robar sesiones la cual es relativamente nueva y no habia leido sobre ella. la app se llama droidsheep y hace todo lo que andaba buscando:

  • corre desde un movil android
  • roba sesiones de web conocidas(facebook,twitter, amazon, flickr, etc)
  • roba sesiones genericas(de app hechas a la medida, de CMS como joomla,  etc, etc, etc..)
  • para maximizar la captura hace ataque Man in the Middle Attack por medio de ARP-Spoofing
  • graba las sessiones en disco para futuros analisis
  • es open souce .

si te gusta la seguridad y no te decides por que telefono o table comprarte, creo que con esta app es suficiente para que te decidas por un android.

lo que falta ahora es que tu lo pruebes y me cuentes como te funciona y que no te conectes sin utlizar una conexion https donde yo este ;-)

la app fue creada por un desarrollador aleman llamado Andreas Koch.

http://droidsheep.de/

https://market.android.com/details?id=de.trier.infsec.koch.droidsheep

Android como herramienta de hacking

he estado por unos años utilizando tecnologia apple debido a que queria uir del mundo microsoft, me compre una macbook con la que pude implementar satisfactoreamente ataques de crakeo wep, y robo de sessiones con firesheep, me compre un iphone y un ipad y disfrute mucho la personalizacion que puede hacer el jailbrake y en ambos pude ejecutar ataques de injeccion sql con sqlmap utilizando python pero no logre ni crackear redes inalambricas ni poner sniffer que funcionaran en IOS, asi que me decidi pasarme al otro lado con la esperanza de econtrar mas herramientas para divertirme en este fabuloso mundo de la seguridad.

me decidi por comprarme  un android samsung galaxy S2 el cual tiene un tremendo poder de procesamiento y una gran ram y debo decir que no he logrado ponerlo lento teniendo muchas apps iniciadas.

respecto a la usabilidad de android debo darle una nota de 7.5 comparando con una 9 que le doy a apple.

pero que se puede hacer con android comparandolo con un iphone:

  • he podido personalizarlo al rootearlo, en iphone tambien se puede.
  • bajar app piratas(hay pocas comparadas a iphone)
  • Compartir internet de forma facil. en iphone hay que utilizar los ultimos fireware o software de terceros.
  • instalar room con software preinstalado, en iphone se puede pero no con la personalizacion que se puede hacer en android
  • arp spoofing(hacerte pasar  todo el trafico de la red por tu telefono y luego reenviarlo hacia internet) solo ciertos telefonos pero en iphone no se puede.
  • session hijacking (robo de sessiones de facebook, amazon,flickr, joomla, genericos, etc…) solo en ciertos telefonos y en iphone no se puede.
  • la ejecucion de sqlmap con python aun no la he podido realizar pero veo que es posible(no me vendria mal una recomendación) en iphone si lo logre.
  • ejecutar sniffer de paquetes tipo wareshark con visor de paquetes  vs en iphone  es bastante basico.
  • cero problemas con redes inalambricas vs en iphone que con diferentes fireware no pude conectarme con wpa2 en ciertos AP.
  • software de escaneode IPs en red 3G en iphone solo encontre para wifi.
  • android tiene un verdadero multitask en iphone no me termina de convencer el multitasking.
  • video conferencia con gmail, en iphone no se puede.

en otro post les comento cuales app de hacking uso con mas detalles.

Android en mi HTC Kaiser

como ya he comentado en otros post poseo un htc kaiser el cual es un smartphone muy versatil y es por ello que hoy les traigo este post para explicar como ejecutar Android(Sistema operativo de Google) en el celular.

REQUERIMIENTOS

  • Un telefono htc kaiser
  • una  tarjeta de micro SD
  • bajar los siguientes archivos y guardarlos en una carpeta dentro de la tarjeta micro SD

http://linuxtogo.org/~lgorris/kaiser-bootkit/

[TXT] README.txt 30-Sep-2008 09:19 11K
[   ] android.bin 27-Jun-2008 12:38 20M
[   ] angstrom.bin 03-Jul-2008 02:52 15M
[TXT] default.txt 21-Aug-2008 19:47 359
[   ] haret.exe 23-Jun-2008 03:47 130K
[   ] zImage-2.6.25-pm 09-Aug-2008 17:51 1.2M
[   ] zImage.bin 21-Jul-2008 07:47 1.2M

PROCEDIMIENTO

el proceso para correr android es muy simple ya que se tiene que ejecutar el archivo harent.exe el cual esta en la micro SD

se abre la aplicación y ejecutamos el boton de Listen for network Connection acontinuación presionamos el boton Run

como parte final hice un video para ver en accion el Android:

Vale mencionar que se pueden recibir llamadas y navegar por internet y funciona google maps pero ya que es una version aun en desarrollo y adaptada para correr en el KAISER tiene sus fallos y algunas veces se reinicia el telefono.

para los que tengan miedo de ejecutarlo en sus telefonos este procedimiento no escribe nada en el ROM si no que lo ejecuta desde la Ram del dispositivo por lo que al reinicial el equipo vuelve a correr windows mobile.

mas información y futuras versiones en el foro de xda-developers

http://forum.xda-developers.com/showthread.php?t=396782

Primeras pruebas reales de Android Corriendo en un HTC Dream

conferencia I/O de San Francisco se pudo observar el sistema operativo para moviles de Google(Android) corriendo en el terminal HTC Dream, en el video se puede ver corriendo google street desde el movil y con ayuda del acelelometro interno puede girar en cualquier dirección.

todo apunta a que tendremos disponible a corto plazo ese fabuloso movil.

visto en:

http://es.engadget.com/2008/05/28/demostracion-del-htc-dream-con-android/

Desarrollando una aplicación con Android

para los desarrolladores que estan interesados en como se crean aplicaciones en android ocupando el sdk he econtrado un video en español muy ilustrativo que nos enseña de una manera facil como crear aplicaciones.

pueden ver mas información en la pagina en español sobre android

http://www.android-spa.com/

Porque Android ganara a la competencia.

Como sabemos Android es la nueva plataforma para telefonos mobiles creado por Google el cual acaba de lanzar su SDK para que desarrolladores comiencen a trabajar sobre la plataforma, pero sabemos que hay grandes competidores en el mercado (Nokia, Apple y Microsoft) y que no sera facil ganarles el mercado ya que estos tienen tiempo trabajando en sus respectivas plataformas moviles. El Review de android que les presento acontinuacion nos ayudara a aclarar las ventajas que tiene este sistema operativo contra su competencia actual y conocer el futuro que nos espera en la tecnologia movil.

vale aclarar que el review fue tomado del blog de ELIAX.

REVIEW A FONDO DE ANDROID
Primero, ya sabemos que Android es una plataforma para aplicaciones móviles, totalmente abierta tanto para los fabricantes de dispositivos móviles como para los desarrolladores de aplicaciones que funcionan en tales dispositivos.

El núcleo de Android es Linux, mas específicamente el kernel 2.6. A este nivel están implementado todos los drivers de los dispositivos primarios, como son cámara, puertos USB, teclado, etc. El fabricante de un dispositivo puede agregar sus propios drivers, como puede ser un driver para una pantalla sensible al tacto multi-toque al estilo iPhone.

Sobre este núcleo están las Librerías Nativas, que ofrecen funcionalidad básica al subsistema, como son SQLite (una base de datos integrada con soporte para SQL), OpenGL ES (gráficos avanzados en 3D), SSL (cifrado de datos), CODECs de medios (audio, video), etc.

Compartiendo toda esta infraestructura vemos la Máquina Virtual Dalvik, que es en donde ejecutan las aplicaciones que tu escribes. Esta máquina virtual toma archivos en formato .apk, que no es mas que un zip con todos los recursos de tu aplicación (ejecutables, archivos xml, imágenes, sonidos, etc).

Algo curioso es que los ejecutables no son clases de Java, sino que las clases de Java son post-procesadas a un formato llamado .dex (Dalvik Executable, asumo), que no es nada mas que una versión optimizada de los .class que estás impuesto a ver en el mundo Java.

Esta Máquina Virtual tiene acceso tanto a las Core Libraries (que son básicamente las librerías de funciones estándar de la plataforma Java, como son objetos Object, String, etc). En otras palabras, el equivalente a un JDK en Java.

Por otro lado, la Máquina Virtual tiene acceso a lo que llaman Application Framework (o un Marco de Trabajo para Aplicaciones), que contienen mucho módulos (escritos en Java) para el consumo de tu aplicación, como son un Telephony Manager (para hacer y gestionar llamadas telefónicas), un Content Manager (para compartir datos entre aplicaciones, como pueden ser la Agenda de Contactos), y APIs de Mensajería, entre otros).

El nivel superior a todos estos niveles, son tus aplicaciones que ejecutan sobre toda esta infraestructura. Nota que tus aplicaciones son 100% en el lenguaje Java, pero que Android te da acceso a todo el contenido de bajo nivel a través de APIs (que a propósito, son muy flexibles por lo que he visto hasta ahora).

Enfocándonos en las aplicaciones, estas por lo general se construyen en base a 4 “bloques de construcción” básicos (y no tienes que utilizar los 4, sino lo que aplique a tu aplicación). Estos son:

- Activity
- Intent Receiver
- Service
- Content Provider

Activity es básicamente la parte visual de una aplicación. Si escribes una calculadora para Android es posible que solo utilice este bloque, ya que no necesita hacer nada mas.

Intent Receiver es un modelo muy poderoso en Android. Un “Intent” (o una “Intención”) es como un evento de la aplicación bien genérico que dice “quiero hacer tal cosa”. Una Intención que puede ser generada por tu aplicación, por ejemplo, puede ser “quiero enviar un email”. Cuando tu aplicación genera esa Intención (muchas de las cuales están pre-definidas, como lo es esta), Android trata de encontrar la aplicación registrada mas apta para manejar esa intención, en cuyo caso sería la aplicación de Emails por defecto.

Service no es nada mas que el equivalente a un Servicio (en Windows) o un Daemon (en UNIX/Linux), que ejecuta “tras bastidores” sin interfaz gráfico, y posiblemente por largos períodos de tiempo, durante el cual puede generar eventos específicos a tu aplicación.

En cuanto a un Content Provider, no es nada mas que un servicio que le ofrece la capacidad a tus aplicaciones de comunicarse con otras de manera interna a Android. Para los técnicos, esto es parecido a inter-process communication, pero mas sofisticado, mas simple y mucho mas elegante.

Sobre el tema de la seguridad, hay muchísimos niveles. Primero está al bajo nivel, manejado por las facilidades estándar de Linux, que requiere permisos de acceso para archivos, usuarios, servicios, etc. Al alto nivel, está manejado en Java, que se encarga de la integridad del código, del sistema de acceso, y de aislar una aplicación de otra.

En niveles intermedios Android maneja también (con una combinación de los bajos y altos niveles) temas como Memoria Protegida, una aplicación por proceso, gestión de procesos (para que por ejemplo un proceso intensivo al CPU no capture todo el tiempo del dispositivo), así como un sistema basado en XML (que empacas con tu aplicación) que pide permisos explícitos para los servicios que deseas acceder en el dispositivo, y que el usuario debe ceder en el momento de instalar la aplicación por primera vez (esto no lo he visto funcionando ya que no tengo un dispositivo a mano, y en el emulador del cual hablaremos en un momento no noté esa funcionalidad).

En otras palabras, el tema de la seguridad aparenta estar extensamente cubierto, aunque cuan efectivo esto es solo lo veremos en la práctica.

Otra cosa a notar de Android es lo flexible que son los APIs, como un ejemplo está el Location Manager, un módulo que accedes desde Java en tus aplicaciones y que ofrece todo tipo de servicios basados en localización geográfica. Además incluye facilidades para generar eventos los cuales tu aplicación puede recibir para actuar, como puede ser que un dispositivo Android te alerte cuando estés cerca de una estación de combustible basado en el hecho de que estás manejando lejos fuera de casa.

Algo genial del Location Manager (y que demuestra su flexibilidad), es que te ofrece datos de localización de la mejor manera posible que se pueda. Primero trata de darte coordenadas GPS, pero si el dispositivo no soporta GPS (o simplemente no hay señal por alguna razón) este trata de aproximar utilizando antenas celulares por medio de triangulización. Y si eso tampoco está disponible entonces trata de ver si estás conectado a un red WiFi que provea su localización por medio de GPS.

Otra cosa que alentará a muchos es el hecho de que la plataforma es totalmente agnóstica a la tecnología de transmisión de datos (como debe ser), funcionando con dispositivos y redes 2G, 2.5G, EDGE/GPRS, 3G, etc. El fabricante puede elegir lo que desea soportar, y el usuario puede elegir el fabricante a quien comprarle dependiendo de lo que desee.

Una de las grandes sorpresas que me dí con Android es algo que hubiera deseado Apple implementara con el iPhone, y es que hay un servicio que se llama XMPP integrado en todos los dispositivos Android que permite que tu aplicación ejecutando en cualquier dispositivo Android se comunique con otras aplicaciones en cualquier otro dispositivo Android del mundo, formando de esta manera una red p2p (peer-to-peer, o el equivalente a un red “directa entre un usuario y otro”) sin necesidad de depender de servidores centralizados que funcionarían de intermediarios.

Obviamente el usuario tiene que aprobar (y querer hacer) esta comunicación, pues de lo contrario sería un caos (como ocurre en Windows con los BotNets). A bajo nivel este mecanismo de comunicación es extremadamente sencillo (lo que lo hace bien poderoso), pues todo lo que se envía con pares de nombre y valor (es decir, algo como “[nombre del blog][eliax.com]“), lo cual es útil bajo cualquier contexto, lo que permite de manera extremadamente fácil escribir programas de chateo, transferencia de archivos, juegos distribuidos, envío de coordenadas geográficas, etc.

Otro servicio bien útil es el Notification Manager, el cual no es nada mas que darle acceso programático a tus aplicaciones de los mensajes que surgen en cualquier momento en la pantalla, como lo hacen los programas de chateo cuando te avisan en tu PC que alguien nuevo acaba de entrar, o como lo hacen algunos programas de email que te alertan cuando llega un nuevo mensaje. Con este servicio tu aplicación puede generar mensajes de la misma manera que los generan las otras aplicaciones nativas en Android.

Este servicio es útil en combinación con otros, ya que por ejemplo, sin importar lo que estés haciendo en tu dispositivo (sea una llamada telefónica, navegando el Internet, etc), donde sea que estés puedes recibir una notificación de que una subasta tuya en eBay esté a punto de cerrar. Así mismo puedes ser notificado de que algún amigo tuyo que posee un Android está en la vecindad de donde te encuentras geográficamente, dándote la opción de llamar en el instante.

Otro servicio útil es el llamado Views (o “vistas”), que no es nada mas que muchas pantallas, elementos gráficos (como Widgets, Gadgets, etc), controles (como cajitas de texto, deslizadores, botones etc) que son útiles para la confección de interfaces visuales.

Noten que para empezar tienes opción a pantallas completas visuales, como son una pantalla especializada pata mostrar lista de cosas de las cuales puedes elegir (como puede ser una lista de contactos, lista de canciones, lista de compras, lista de medicamentos, etc), o puedes crear la tuya propia y poblarla de componentes mas pequeños y detallados.

Algo interesante es que estos componentes son definidos en XML, por lo que es relativamente fácil construir interfaces, y de seguro que surgirán todo tipo de herramientas visuales con el tiempo para crear tales archivos XML de manera totalmente visual.

Una cosa genial es que estos Views fueron creados de tal manera que funcionan con todo tipo de tamaños y formatos de pantalla (sea por ejemplo una pantalla cuadrada o una rectangular como la del iPhone), y que así mismo funcionan con todo tipo de dispositivos de entrada de datos, como son teclados, lápices digitales, palancas de juego, o toque del tacto. Eso significa que cuando una lista de cosas se despliega en la pantalla, dependiendo del dispositivo que tengas, puedes interactuar con esa lista por medio del teclado, o deslizándolas con un dedo, y en ambos casos funciona igual.

Tan genial como eso es el hecho de que por defecto Android te ofrece unos cuantos componentes avanzados que puedes insertar directamente dentro de tus Views. Uno de esos es el Map View, que es básicamente Google Maps pero totalmente bajo tu control y sumamente sencillo de utilizar. Otro es el Web View, que no es nada mas que el renderizador de páginas web que puedes insertar en tus aplicaciones, lo que significa que por ejemplo puedes poner un botón, que cuando el usuario presiona abre un cuadrito dentro de la pantalla que se conecta a Internet y muestra la ayuda de tu aplicación en formato HTML.

Hablando de HTML, el renderizador de páginas web no es nada mas ni nada menos que WebKit, que es exactamente el mismo que utiliza el navegador Safari en OS X tanto en Macs como el iPhone, lo que es una excelente noticia! No sabemos nada de soporte para Flash, pero por medio de un Intent Receiver me imagino que sería fácil que el fabricante de un dispositivo lo provea como una prestación diferenciadora de su producto. Así mismo a Adobe le convendría ofrecer un plugin para este Intent Receiver que todos puedan utilizar para tener acceso por medio de Flash a los millones de dispositivos Android que sin duda se venderán.

Noten ahora algo importante, cuando descargas el Kit de Desarrollo de Android, una cosa que viene con el paquete es un Emulador de Android, que es básicamente un celular virtual dentro de tu PC, en el cual puedes probar tus aplicaciones, hacer llamadas (simuladas obviamente), instalar, debugear, etc. Es tan completo el emulador que puedes utilizar su navegador de Internet para navegar de verdad el Internet, lo que te sirve como una manera desde ya para optimizar páginas web para dispositivos Android, lo que es algo bien genial!

Finalmente, muchos todavía se preguntarán, ¿y qué del iPhone? ¿Puede esto proveer la misma experiencia de usabilidad del iPhone? Y la respuesta es un resonante “si”. Aunque los primeros prototipos de Android aparentan celulares del tipo Palm Treo, lo cierto es que tanto en su exterior como en su interfaz gráfico no hay nada que impida que una empresa fabrique algo 100% idéntico o mejor que el iPhone.

Desde ya piensen del iPhone como algo que hace parte de lo que hace Android (o como los llamaremos algunos, el gPhone). Obviamente eso dependerá totalmente de los fabricantes, pero con empresas como Samsung a bordo de la Open Handset Alliance (OHA) no duden que eventualmente veremos dispositivos increíbles basados en Android.

Ahora, espero que este artículo le haya sido útil a unos cuantos, y además espero que algunos se animen a probar a Android, pues voy a predecir desde ahora que si todo lo que promete se cumple, será un éxito sensacional y habrá mucha demanda de ingenieros que sepan programar la plataforma.

visto en: http://eliax.com/index.php?/archives/4094-Plataforma-Google-Android-Introduccion-de-alto-nivel.html



Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 40 seguidores