Presentador: Kevin McNami es Director del Laboratorio de Investigación de Seguridad de Bell Labs, que forma parte de Alcatel-Lucent. Su presentación se llama "Cómo hacer un teléfono espía", y si tiene alguna pregunta, guárdela hasta el final del discurso para que sepamos que nos queda tiempo suficiente.
Kevin McNami: Doy la bienvenida a todos, me alegra haber hablado aquí hoy. Voy a hablar sobre cómo hacer un buen teléfono espía, pero creo que el interés principal para usted será cómo puede tomar este módulo de teléfono espía SpyPhone y ponerlo en una aplicación de Android.

Mi presentación constará de 3 partes. La primera es una demostración de SpyPhone en acción, luego hablaremos un poco sobre el diseño especial del "teléfono espía". La tercera parte de la conversación estará dedicada a cómo puede inyectar el servicio SpyPhone en la aplicación, y al final me agradarán los resultados y responderé las preguntas.
La siguiente diapositiva muestra cómo la gente solía percibir el "teléfono espía". Básicamente, creían que ese teléfono le permite espiar a otras personas.

Un teléfono espía moderno se ve diferente; es un teléfono inteligente normal que ejecuta el sistema operativo Android. Android es una plataforma muy flexible con la que es fácil trabajar, es muy abierta y te permite hacer muchas cosas. Entonces, así es como se ve un SpyPhone moderno. Creo que se puede hacer lo mismo con teléfonos con iOS, pero centré mis esfuerzos en Android.

Anteriormente, para organizar la vigilancia al aire libre, necesitaría una variedad de equipos, que van desde grabadoras para grabar conversaciones telefónicas hasta grabar y terminar con automóviles con equipos para vigilancia encubierta. Hoy todo lo que necesitas es un teléfono Android. Utiliza un teléfono con un software especial instalado y puede rastrear a la persona propietaria de este teléfono. Puede controlar sus llamadas telefónicas, puede controlar su ubicación, incluso puede enviar mensajes desde el teléfono de esta persona, ver una lista de contactos, etc.

Esta es una forma muy poderosa de dispositivo de vigilancia cibernética. Si el teléfono de alguien está infectado con esta aplicación de software espía y esta persona lo lleva a la oficina, puede seguir a esa persona en el trabajo, ver reuniones de negocios, etc. La gestión y el control del dispositivo espía se realiza a través de Internet. El módulo espía no requiere ningún equipo adicional especial, todo se encuentra dentro del teléfono. Cuando tiene algo para transmitir cosas interesantes, se contacta con usted a través del sitio web de comando y control y transmite información. Más tarde te mostraré una demostración de cómo funciona esto.
Ahora considere las contramedidas. En la antigüedad, el llamado "cono de silencio" se usaba para evitar las escuchas. Si alguien te estaba espiando, siempre podías entrar en el "cono de silencio" y comunicarte con tu interlocutor con total libertad.

El "cono de silencio" de hoy se ve un poco diferente. La compañía para la que trabajo ha desarrollado una tecnología que se puede colocar en la red y que detecta automáticamente el tráfico como comando y control, que es mediado por un teléfono Android.

Es por eso que creamos el módulo SpyPhone, que usamos como demostración cuando visitamos a nuestros clientes, que son principalmente proveedores de servicios de comunicación móvil e Internet móvil. Les mostramos un "teléfono espía" para mostrar que hay un gran problema de seguridad en la red móvil. Esta amenaza aún está en su infancia, pero podría causar un gran daño en el futuro. Utilizamos este módulo para educar a nuestros clientes sobre los peligros, por lo que es natural que la segunda parte de la demostración sea la presentación de nuestro producto, que puede resistir estos peligros.
El teléfono inteligente es un dispositivo muy poderoso. Proporciona acceso a su ubicación, se conecta a Internet desde casi cualquier lugar, tiene un micrófono, una cámara, se conecta a redes locales a través de Wi-Fi, y todo esto lo convierte en una plataforma de espionaje ideal.
Diría que un teléfono inteligente es una herramienta de espionaje cibernético ideal que se puede utilizar para rastrear la ubicación de la víctima, descargar información personal, interceptar y enviar mensajes, grabar conversaciones y tomar fotos sin el conocimiento del propietario. En el contexto de BYOD y APT, es la plataforma ideal para lanzar ataques internos en redes corporativas o gubernamentales.
Creo que hablé lo suficiente sobre esto, así que pasemos a la demostración. A la izquierda, verá una captura de pantalla de la pantalla del teléfono, que pronto se convertirá en spyware, este es el teléfono que estoy usando actualmente. A la derecha, verá la consola de comando y control, que será utilizada por la persona que rastrea este teléfono.

Entonces, tomamos malware, el módulo SpyPhone, y lo implementamos en una copia del muy popular juego Angry Birds. Luego le enviamos a un chico un correo electrónico diciendo que podía descargar este juego genial y jugarlo. También podemos colocar este juego infectado en sitios de terceros, desde donde el usuario puede descargarlo. Ahora iré a mi navegador en mi teléfono para ver la carta recibida.
Entonces, cuando este tipo recibe la carta, hace clic en el enlace y entra en la tienda real de aplicaciones para "Android" en la página con nuestro juego. Decidimos llamarlo Very Angry Birds, porque contiene el módulo SpyPhone.

Entonces, el usuario descarga este juego. En su teléfono Android, cuando instala la aplicación, le proporciona una lista de todos los permisos que necesita para funcionar.

Dice que la aplicación necesita acceso a su ubicación, información personal, comunicaciones de red, almacenamiento de datos, servicios pagos, llamadas telefónicas. Dado que el usuario desea instalar la aplicación, generalmente no presta atención a todos estos permisos, que aparecen constantemente al instalar programas, y simplemente hace clic en el botón "Instalar". Ahora la pantalla muestra cómo va el proceso de instalación de la aplicación. A continuación, lanzamos la aplicación instalada. Ahora, a la izquierda, verá el juego en ejecución, y a la derecha, la información del sitio web de comando y control de que el teléfono inteligente está bajo control, y puede escuchar los sonidos que acompañan al juego.

Silenciaré el sonido porque me molesta. Entonces, tenga en cuenta que el juego se juega como de costumbre, no hay nada extraordinario que pueda atraer la atención del usuario. No hay evidencia de que algo extraño le esté sucediendo al teléfono.
El usuario juega, esto es muy bueno, pero incluso cuando deja de jugar y cierra el juego, el módulo espía continuará funcionando en segundo plano. Incluso si reinicia el teléfono, el servicio SpyPhone se reiniciará, ahora está constantemente presente en este teléfono inteligente. Entonces, este teléfono está infectado con ciber espía y ahora se muestra aquí en la consola del sitio web de comando y control. Si hago clic en esta línea, el sitio me dará información almacenada en este dispositivo. Podemos obtener un mapa con la ubicación de este dispositivo: esto es Las Vegas.

Permítanme enfatizar que aquí la conexión entre el teléfono y la computadora no se realiza directamente, sino a través de Internet utilizando un servidor web ubicado en Ottawa, donde trabajo. La única razón por la que conecté este teléfono con un cable a mi computadora es la necesidad de tomar capturas de pantalla. La consola muestra que tenemos otros teléfonos funcionando al mismo tiempo. Aquí está uno de ellos ubicado en China, por lo que puede crear una red internacional de "teléfonos espía" y monitorearlos todo el tiempo mientras están en línea.
Entonces, volvamos a nuestro teléfono en Las Vegas. Verá que aquí está la dirección de correo electrónico de la cuenta del propietario del teléfono, número de teléfono, estándar de comunicación CDMA, tipo de red, IMEI, país del operador de telefonía móvil, su nombre, estado de la tarjeta SIM, coordenadas de ubicación y contactos del propietario del teléfono. Toda esta información se carga en el servidor de comando y control, y podemos rastrear al propietario de este teléfono las 24 horas del día, los 7 días de la semana y usar toda la información que proporciona el teléfono, incluida la descarga de la lista de contactos de esta persona en particular. Esto nos dará una lista de otros objetivos potenciales si usamos algún tipo de ciberespionaje industrial, cuando queremos saber con quién está hablando el propietario del teléfono y con quién está haciendo negocios. Podríamos usar esta lista de contactos para dirigirnos a personas específicas.
Uno puede imaginar que un atacante distribuye este juego a todas las tiendas de aplicaciones de Android, y después de que la gente lo descarga, te enfocas en algún empleado de una compañía en particular, en su lista de contactos, etc.
Otra cosa que podemos hacer es actualizar el spyware instalado y enviar mensajes al teléfono infectado. Puede usarlo para otros fines, por ejemplo, solo para asustar a las personas con tales mensajes. Podemos acceder a mensajes SMS y correos electrónicos, determinar la ubicación del teléfono. Todas estas operaciones están indicadas en la parte superior de la consola para administrar el teléfono capturado; están resaltadas en azul. Otra cosa que se puede hacer es encender la cámara del teléfono, intentaré hacerlo ahora mismo. Tomo el teléfono en mis manos y hago clic en la función "Peep" en la consola de control, tomará algún tiempo, ya que necesita tomar una foto y enviarla al sitio web de comando y control. Como puede ver, al principio aparece mi foto, tomada con la cámara frontal, detrás hay una foto de esta habitación, tomada con la cámara trasera. Por lo tanto, puedo fotografiar de forma remota en un teléfono infectado y recibir estas fotos.
Si te das cuenta, el juego todavía se está ejecutando en la pantalla, por lo que la persona ni siquiera notará que la foto fue tomada. Esto se realiza en segundo plano sin el conocimiento del usuario. Podemos usar la misma tecnología para grabar videos. Lo último que quiero demostrar es la función de escucha. Entonces, digo por teléfono: "Esta es una prueba, uno, dos tres, esta es una prueba, uno, dos, tres". Luego hago clic en el botón "Reproducir audio", la conexión tarda un poco y ahora escuchas la repetición de mis palabras.

Entonces, grabé la conversación a través del micrófono del teléfono y la cargué en el sitio web de comando y control, así que todo es genial. Entonces, fue una demostración de lo que la tecnología SpyPhone puede hacer.
Ahora hablemos un poco sobre cómo desarrollamos el diseño y la tecnología de nuestro software y por qué tomamos tales decisiones de diseño. Volveré a las diapositivas anteriores.

Primero, queríamos combinar nuestro malware con las funciones originales del teléfono y crear un programa de software espía de tipo troyano con acceso remoto que funcionaría con un teléfono Android. Tomamos como base una aplicación de demostración llamada "Diccionario de búsqueda" y la modificamos para poder insertar un módulo de spyware, y la implementamos como una aplicación normal para Android.
Es decir, nos adherimos al diseño de programas originales de Android utilizando Java. Necesitábamos que contuviera todos los componentes necesarios dentro de sí mismo, para funcionar en segundo plano, incluso si la aplicación se detuvo, comenzó cuando el teléfono se cargó. Nuestra segunda tarea fue proporcionar una fácil integración de SpyPhone en las aplicaciones oficiales. Esto funcionó y nuestro malware no interfirió con el funcionamiento de otras aplicaciones instaladas en el teléfono. Como comando y control del servidor de comando y control, elegimos el servidor web NodJS con transferencia de datos a través de HTTP. Para los comandos de control de nuestro programa, utilizamos la interfaz JS, y los comandos en sí se veían así:
actualización: envía información al servidor,
tostadas: muestra un mensaje en la pantalla,
apagado - detener SpyPhone,
sms: envía un mensaje SMS a un contacto,
ubicación: envíe información de ubicación del teléfono al servidor,
peep: toma una foto y envíala al servidor,
escuchar: grabar sonido y enviarlo al servidor.
Todo esto fue bastante fácil de programar, ya que los creadores de Android proporcionaron a su sistema un conjunto completo bastante poderoso de herramientas de desarrollo de SDK. Este kit proporciona una interfaz para todo lo que quieras. Nunca desarrollamos programas de Android, pero gracias a este SDK, ni siquiera tuvimos que aprender nada y lo desarrollamos en unas pocas semanas.
La siguiente diapositiva muestra el diseño inicial del diccionario de búsqueda, en base al cual creamos SpyPhone usando los códigos Java que puede ver aquí. Agregamos una parte llamada droidwhisper a esta aplicación.

Esta es la parte que íbamos a cortar y pegar en una aplicación adecuada más adelante. No teníamos experiencia en la creación de exploits especiales que explotaran las vulnerabilidades de las aplicaciones, por lo que importamos la API estándar que proporciona Android:
Informacion de usuario
- importar android.accounts.Account;
- Importar android.accounts.AccountManager.
Teléfono y SMS
–Importar android.telephony.SmsManager;
–Importar android.telephony.TelephonyManager.
Ubicación
–Importar android.location.Location;
–Importar android.location.LocationListener;
–Importar android.location.LocationManager;
Grabación de archivos multimedia (audio y video)
- Importar android.media.MediaRecording.
Cámara
–Importar android.hardware.Camera;
–Importar android.hardware.Camera.PictureCallback;
–Importar android.hardware.Camera.PreviewCallback;
–Importar android.hardware.Camera.Size;
–Importar android.media.AudioManager;
–Importar android.view.SurfaceHolder;
–Importar android.view.SurfaceView.
El internet
–Importar org.apache.http.HttpResponse;
–Importar org.apache.http.NameValuePair;
–Importar org.apache.http.client.ClientProtocolException;
–Importar org.apache.http.client.HttpClient.
Alguien dijo que grabar videos y tomar fotos cuando el teléfono está en el bolsillo del usuario no es muy bueno. Por lo tanto, si desea tomar una buena foto, envíe el mensaje de texto al propietario, porque tenemos su número de teléfono. Recibe un mensaje, sostiene el teléfono frente a él para leerlo, y en este momento toma una foto con la cámara frontal. Si solo lo llamas, él lleva el teléfono a su oído, y en ese momento puedes tomar una foto con la cámara trasera.

Hacer que la cámara funcione es un poco más complicado, por lo que utilizamos un conjunto completo de clases, por ejemplo, AudioManager, SurfaceHolder y similares. Tuvimos que prever apagar temporalmente el sonido del clic cuando se toma una foto, para no llamar la atención del usuario si esta función se activa en la configuración de su cámara. Además, preveíamos que las fotos o videos espías tomados se mostraran en la galería del teléfono como miniaturas de 1 píxel para que el usuario no pudiera verlas. Así que tuvimos que usar algunos trucos para garantizar el funcionamiento discreto de nuestro módulo espía. Como ya he notado, casi todo lo relacionado con la comunicación con el servidor de comando y control está contenido en el teléfono. También utilizamos algunas de las debilidades de seguridad de Android.
Como sabes, estas aplicaciones deben estar firmadas para poder instalarlas en el teléfono, pero esto no es un problema, ya que puedes usar cualquier certificado antiguo para firmar, porque lo principal es que la aplicación tiene un certificado en general, sin importar cuál. Más adelante hablaré más sobre esto.
Entonces, esta fue una breve descripción del diseño que utilizamos al crear la aplicación. Ahora le contaré sobre el proceso de implementación, es decir, cómo tomamos nuestro módulo malicioso y lo insertamos en la aplicación.
Lo primero que hicimos fue elegir el juego Angry Birds. Lo elegimos no porque sea un juego muy bueno, sino por su popularidad. Nuestro módulo SpyPhone se puede ingresar en absolutamente cualquier aplicación. En primer lugar, necesitamos una copia del archivo .apk original. Este es un archivo que contiene todos los componentes de la aplicación. Dentro del archivo de la aplicación está el código Java, o más bien, no del todo Java: este es el código para la máquina virtual Dalvik. Este código se puede reemplazar con otro contenido, esto se denomina vulnerabilidad de "clave maestra". Entonces, debemos abrir este archivo .apk y desarmarlo, es decir, tener una lista de todos los componentes que se desarmarán.
Entonces, antes que nada, extraemos todos los componentes de la aplicación Angry Birds 2000.

Luego, en el directorio smali, insertamos nuestro directorio example / android / droidwhisper, y es en la carpeta final droidwhisper donde se ubican los archivos modificados de la aplicación de diccionario de búsqueda que contiene nuestro módulo espía.

Descargamos el juego Angry Birds del Google Play Market e hicimos una copia del mismo. Lo siguiente que nos preocupa son las claves de firma. Verá todos estos archivos en nuestro directorio llamado inyectar.
En el proceso de desmontaje, utilizamos el programa Apk_tools, una herramienta para administrar archivos .apk. Ahora, usando la línea de comando, muestro cómo comenzamos a desmontar Angry Birds.

A continuación, procedimos directamente al desmontaje de la aplicación. Creamos el catálogo de Angry Birds, donde insertamos todos los componentes de la aplicación. Como se trata de una demostración, debe esperar un poco hasta que finalice el proceso de desmontaje. Entonces, ve una gran cantidad de directorios, la carpeta de activos se encuentra primero, hay cosas como sonidos, luego hay carpetas de recursos, bibliotecas lib, pero la clave para nosotros es el directorio pequeño, que contiene el código y el formato del lenguaje ensamblador.
23:00 min
Conferencia NEGRO SOMBRERO. Cómo hacer un teléfono espía. Parte 2Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes?
Apóyenos haciendo un pedido o recomendándolo a sus amigos, un
descuento del 30% para los usuarios de Habr en un análogo único de servidores de nivel de entrada que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de $ 20 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps hasta enero de forma gratuita al pagar por un período de seis meses, puede ordenar
aquí .
Dell R730xd 2 veces más barato? ¡Solo tenemos
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV desde $ 249 en los Países Bajos y los Estados Unidos! Lea sobre
Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?