Hackeando Android: Ingeniería Social y una linda camiseta
Hace un tiempo atrás leí una novela cuyo título me gustó mucho, Nunca confíes en mí , menudo nombre para una obra literaria no les parece?? La obra narra de manera espléndida el calenturiento y tormentoso amor entre Amanda y Gabriel, dos amigos de colegio que se reencuentran después de largos años despertando sus mas bajas pasiones y viviendo historias sin dudad cotidianas pero que encienden el morbo de cualquier lector con ánimos de divertirse (mientras los protagonistas no seamos nosotros). El autor de esta obra es el peruano Renato Cisneros y que tuvo la magnífica idea de terminar la obra de la mejor manera que se puede terminar una (y que contraviniendo las buenas costumbres sociales voy a proceder a contar), traicionando la confianza de sus amigos Amanda y Gabriel – los protagonistas de la obra – y publicando la novela con los detalles del sórdido amor que habían vivido, colando como parte final del libro la frase que dio nombre a la obra: “Nunca confíes en mí”.
Recuerdo haber obsequiado este libro hace ya algún tiempo y es que no hay nada mas excitante que regalar un rompecabezas listo para ser armado por nuestra imaginación (y por nuestras vivencias), una buena novela literaria. Así que si alguna vez obsequié este libro, créanme fue el mejor regalo que pudieron haber recibido de mi (ya dejen de acusarme de tacaño por favor ).
¿Y qué tiene que ver todo esto con seguridad de información? pues en mi último viaje a la ciudad heroica de Tacna [ver AQUÍ] realice 02 Charlas y 02 Talleres sobre seguridad informática y decidí realizar un experimento con los participantes del evento, el experimento consistía en que los participantes me brinden muy generosamente toda la información de sus celulares obviamente de la manera mas sutil posible y sin que ellos pudieran advertir lo que en realidad estaba ocurriendo. Aquí les explico como pero primero la respectiva ficha técnica:
- Número de participantes: 20 personas aprox.
- Edad de los participantes: Entre 20 y 30 años
- Grado académico: Estudiantes y egresados de ingeniería de sistemas y computación
- Lugar: Tacna – Perú (Universidad Nacional Jorge Basadre)
- Nivel de seguridad informática: media (o quizás baja después del experimento)
- Impulso para ganar: una camiseta del Blog de Omar
¿Quieren ver el premio que el feliz hackeado ganador se llevo por entregarnos toda la información de su celular? Pues aquí se los dejo y espero poder regalar más en mi próxima charla.
Hackeando un Android
Volvamos a lo nuestro que es seguridad, entonces ¿cómo hackeamos un Android? de hecho la principal vulnerabilidad en los sistemas Android proviene de las aplicaciones que instalamos, debemos reconocer que pertenecemos (me incluyo) a una cultura totalmente Windoneana donde somos felices dando clicks en “Next, Next y Next” para instalar aplicaciones, pues aquí radica nuestra principal debilidad en instalar cualquier tipo de aplicación sin antes verificar los permisos y el origen de la misma. Aquí vamos explicar la manera más rápida y fácil de poder hacernos de información de un sistema operativo Android, vamos con los pasos:
- Ingeniería Social El truco para el éxito de este ataque consiste en ganar la confianza de la(s) otra(s) persona(s) para que se instalen la aplicación con toda la confianza del mundo, alguna de las ideas más utilizadas son las siguientes:
- Google Play: El truco de los atacantes es engañarte mostrándote aplicaciones milagrosas en el store de Google, hasta la fecha se han detectado muchas – muchísimas – aplicaciones maliciosas en Google Play y es que basta subir aplicaciones con permisos “READ_EXTERNAL_STORAGE” y eso es todo, aquí pueden ver claros ejemplo de los que les cuento:
* Aplicación maliciosa para hacer Dieta: [AQUÍ]
* La estafa de la linterna milagrosa en Android: [AQUÍ]
* 10 millones e aplicaciones maliciosas en Android: [AQUÍ]
Basta con buscar “WhatsApp” en GooglePlay para obtener varios cientos de resultados, cada aplicación relacionada a WhatsApp que se muestra realiza alguna “maravilla”, ¿ustedes creen que realmente hacen esas maravillas?
- Instalar aplicaciones de terceros: El engaño de los atacantes consiste en lograr convencerte que puedas instalar una aplicación que no se encuentra en Google Play por cualquier motivo, por ejemplo yo le pedí a las participantes de mi experimento que lo instalaran porque el que contestaba todas las preguntas correctamente se llevaba una camiseta del blog .
- “Me prestas tu celular”: Es muy común que te pidan prestado tu celular, no? ya saben….. sólo quiero ver tus fotos, quiero entrar a una página de Google o quizás quiero instalarte algo sin que te des cuenta. La instalación de un APK malicioso demora menos de 60 segundos, así que nunca presten su celular, jamás!!
- Instalando la Aplicación Una vez que hemos logrado ganar la confianza de nuestra víctima mediante alguna de las técnicas arriba descritas, tenemos que instalar la aplicación maliciosa. Aquí también tenemos algunas opciones para poder instalar la aplicación maliciosa, voy a colocar 02 ejemplos:
* ANDRORAT: Una RAT (Remote Administration Tool) es una herramienta que nos permite administrar remotamente un dispositivo y en este caso específico un celular con el sistema operativo Android, de hecho, ANDRORAT es un proyecto escrito hace 02 años, por el 2012 para ser más exacto y que contiene algunas librerías que no están actualizadas para las últimas versiones del sistema operativo. La mejor manera de instalar ANDRORAT es “bind-eandola”, es decir, ocultándola dentro de otra aplicación y que cuente con un funcionamiento básico.
Para nuestro experimento lo escondimos en una aplicación que se llama “Trivia El Palomo” que contenía un pequeño cuestionario sobre preguntas de seguridad, el que respondía correctamente se hacía acreedor a una camiseta del blog.
Enlaces de ayuda:
- AndroRat: El proyecto lo pueden encontrar [AQUÍ]
- Versión “Trivia El Palomo”: La versión de AndroRat que hemos utilizado tiene una trivia y se han reemplazado algunas referencias para eliminar errores que aparecían en las nuevas versiones de Android (sobre los errores pueden leer aquí: LINK-1 y LINK-2). Les dejo el código para que lo puedan compilar por ustedes mismos si es que así lo requieren. Los créditos de esta versión se los lleva mi amigo Billy Grados, le pueden escribir a: billy.grados@gmail.com. Esta versión la pueden encontrar [AQUÍ]. (Cuidado que algunos Antivirus los reconocen como virus)
* METASPLOIT: Todos ya conocen Metasploit, es seguramente la herramienta de hacking rápido más usado en la actualidad y no podía estar ajeno al hacking de Android. Lo que hace básicamente es generar un APK malicioso que ejecuta una sesión Meterpreter en el celular, es bastante sencillo el generarla.
- Extrayendo la información * ANDRORAT: En el caso de haber logrado el acceso al celular mediante Androrat, digamos que tenemos 02 opciones para poder obtener acceso:
Opción I: Haber configurado una dirección IP pública en la aplicación Android instalada: Si hicieron esto es porque desean tener acceso al celular desde cualquier lugar, entonces necesitan un servidor con una dirección accesible desde Internet. Esto lo pueden hacer a través de una configuración en sus routers caseros (NO-IP + NAT) o lo pueden hacer si es que alquilan un servidor VPS (Virtual Private Server) por unos meses, de hecho está se pueden conseguir por precios que no pasan los US$ 8 dólares mensuales.
Opción II: Configurar una dirección IP no pública, es decir, que pueda ser utilizada en una red LAN, por ejemplo: 192.168.X.X, 172.16.XX. Si deciden colocar una dirección IP no ruteable tocará esperar a que el atacante y la víctima se encuentren en la misma red LAN. ¿Ya se les ocurren situaciones donde esto podría servir? Por ejemplo, en el caso de un(a) esposo(a) celoso(a), en el caso de una señora madre de familia preocupada por lo que sus pubertos hijos o hijas calenturientas hacen por internet, etc.; se requiere como base que el atacante y la víctima estén en la misma red LAN en algún momento del día (o cuando se conecten a la red wireless de la casa).
Para nuestro experimento, hemos utilizado un servidor Ubuntu VPS que se encuentra en Internet con una dirección IP pública. Aquí las imágenes donde se muestra:
- La conexión realizada entre el AndroRat y el dispositivo Android
- Acceso a los mensajes SMS recibidos y enviados en el celular
- Acceso a las imágenes recibidos a través de WhatsApp (en general acceso a todos los archivos del SDCARD)
- Acceso a las bases de datos CRYPT7 que contienen las conversaciones de WhatsApp
* METASPLOIT: A diferencia del AndroRat, en el caso de utilizar Metasploit necesitamos que la aplicación instalada sea abierta, es decir, no sólo que sea instalada sino que este en uso para establecer la conexión. La conexión se realiza según la imagen inferior y la sesión Meterpreter ya es bastante conocida, podríamos descargar los archivos que necesitemos como las imágenes y la base de datos de conversación de WhatsApp.
- Bonus Track
A. Descifrando WhatsApp: Lo primero que hay que tener en cuenta es la fecha de realización de este post, Octubre de 2014, es importante mencionarlo porque los mecanismos de cifrado de WhatsApp cambian frecuentemente así que es muy posible que si leen este post en algunos meses el mecanismo mostrado ahora ya no sirva. Dicho esto, les comento que en la actualidad WhatsApp se necesita lo siguiente para descifrar WhatsApp:
* Obtener el archivo “KEY” el mismo que está en la siguiente ruta: /data/data/com.whatsapp/files/key – se requiere tener rooteado el celular para acceder a ese archivo. * Obtener los archivos “CRYPT7” que contienen las conversaciones cifradas de WhatsApp, estos archivos están en: /sdcard/whatsApp/Databases/
* Para descifrar los archivos “CRYPT7” utilizaremos la aplicación “WhatsApp-Viewer”, el proyecto lo pueden descargar de [AQUÍ]
Consideraciones Importantes:
- No se puede obtener el archivo “KEY” remotamente si es que el dispositivo no esta rooteado. No se puede y no insistan con esta pregunta. OJO: Sí se puede de manera local pero para nuestro caso que es hackear remotamente un Android no hay manera.
- El archivo “KEY” sólo puede ser obtenido en dispositivos Android 4.0 o versiones anteriores, esto ocurre porque extrañamente en estas versiones el archivo “KEY” tiene los permisos para poder ser descargados, en las nuevas versiones sólo tienen permisos de lectura y escritura para ROOT.
Finalmente…. ¿ Cómo evito que esto me pase?
- No instales aplicaciones “milagrosas” en tu celular, ni siquiera desde el GooglePlay
- No instales aplicaciones de un origen desconocido, es decir, aquellas que no estén en el GooglePlay
- ¿Tener un antivirus instalado en el celular ayuda? Sí ayuda pero no es la solución, por ejemplo, en los casos mostrados en este post el antivirus McAfee no ha reconocido la aplicación creada por MetaSploit como una aplicación maliciosa, el AndroRat si fue reconocido como aplicación maliciosa. En otro post escribiré como funcionan los antivirus en Android.
- Revisa los permisos aceptados al instalar aplicaciones en tu celular, olvídate del “Next, Next, Next” al estilo Windows.
- Finalmente, “nunca confíes en mi” cuando te diga que te instales una aplicación.
********************************************************************