Conferência CHAPÉU PRETO. Como fazer um telefone espião. Parte 1

Apresentador: Kevin McNami é diretor do laboratório de pesquisa de segurança da Bell Labs, que faz parte da Alcatel-Lucent. Sua apresentação é chamada "Como fazer um telefone espião" e, se você tiver alguma dúvida, salve-a até o final do discurso, para que saibamos que temos tempo suficiente para eles.

Kevin McNami: Congratulo - me com todos, estou feliz por estar falando aqui hoje. Vou falar sobre como fazer um bom telefone espião, mas acho que o principal interesse para você será como você pode pegar esse módulo de telefone espião SpyPhone e colocá-lo em um aplicativo Android.



Minha apresentação será composta por 3 partes. A primeira é uma demonstração do SpyPhone em ação, depois falaremos um pouco sobre o design especial do "telefone espião". A terceira parte da conversa será dedicada a como você pode injetar o serviço SpyPhone no aplicativo e, no final, vou gostar dos resultados e responder às perguntas.

O próximo slide mostra como as pessoas percebiam o "telefone espião". Basicamente, eles acreditavam que esse telefone permite espionar outras pessoas.



Um telefone espião moderno parece diferente; é um smartphone comum executando o sistema operacional Android. O Android é uma plataforma muito flexível, fácil de trabalhar, muito aberta e permite que você faça muitas coisas. Então, é assim que um SpyPhone moderno se parece. Acho que o mesmo pode ser feito com telefones com iOS, mas concentrei meus esforços no Android.



Anteriormente, para organizar a vigilância externa, você precisaria de uma variedade de equipamentos, desde gravadores a gravações de conversas telefônicas até fitas e terminando em carros com equipamentos para vigilância secreta. Hoje, tudo o que você precisa é de um telefone Android. Você usa esse telefone com um software especial instalado e pode rastrear a pessoa que possui esse telefone. Você pode controlar os telefonemas dele, a localização dele, até enviar mensagens do telefone dessa pessoa, visualizar uma lista de contatos etc.



Esta é uma forma muito poderosa de dispositivo de vigilância cibernética. Se o telefone de alguém estiver infectado com esse aplicativo spyware e ele o levar ao escritório, você poderá acompanhá-lo no trabalho, assistir a reuniões de negócios e assim por diante. O gerenciamento e o controle do dispositivo espião são realizados via Internet. O módulo espião não requer nenhum equipamento adicional especial, tudo está localizado dentro do telefone. Quando ele tem algo para transmitir coisas interessantes, ele entra em contato com você através do site de comando e controle e transmite informações. Mais tarde, mostrarei uma demonstração de como isso funciona.

Agora considere as contramedidas. Na antiguidade, o chamado “cone do silêncio” era usado para evitar a escuta. Se alguém estivesse espionando você, você sempre poderia entrar no “cone do silêncio” e se comunicar com seu interlocutor completamente livremente.



O "cone de silêncio" de hoje parece um pouco diferente. A empresa em que trabalho desenvolveu uma tecnologia que pode ser colocada na rede e que detecta automaticamente o tráfego como comando e controle, mediado por um telefone Android.



Por isso, criamos o módulo SpyPhone, que usamos como demonstração quando vamos a nossos clientes, que são principalmente fornecedores de serviços de comunicação móvel e Internet móvel. Mostramos a eles um "telefone espião" para mostrar que há um enorme problema de segurança na rede móvel. Essa ameaça ainda está em sua infância, mas pode causar grandes danos no futuro. Utilizamos este módulo para educar nossos clientes sobre os perigos; portanto, é natural que a segunda parte da demonstração seja a apresentação do nosso produto, que possa suportar esses perigos.

O smartphone é um dispositivo muito poderoso. Ele fornece acesso à sua localização, se conecta à Internet de quase qualquer lugar, possui um microfone, uma câmera, se conecta a redes locais via Wi-Fi, e tudo isso a torna uma plataforma ideal de espionagem.

Eu diria que um smartphone é uma ferramenta ideal de espionagem cibernética que pode ser usada para rastrear a localização da vítima, baixar informações pessoais, interceptar e enviar mensagens, gravar conversas e tirar fotos sem o conhecimento do proprietário. No contexto de BYOD e APT, é a plataforma ideal para o lançamento de ataques internos a redes corporativas ou governamentais.

Acho que já falei o suficiente sobre isso, então vamos à demonstração. À esquerda, você vê uma captura de tela na tela do telefone, que em breve se tornará spyware, este é o telefone que agora uso. À direita, você vê o console de comando e controle, que será usado pela pessoa que está rastreando este telefone.



Então, pegamos o malware, o módulo SpyPhone, e o implementamos em uma cópia do muito popular jogo Angry Birds. Em seguida, enviamos um e-mail a um cara dizendo que ele poderia baixar esse jogo legal e jogá-lo. Também podemos colocar esse jogo infectado em sites de terceiros, de onde o usuário pode baixá-lo. Agora irei ao meu navegador no meu telefone para visualizar a carta recebida.

Então, quando esse cara recebe a carta, ele clica no link e entra na loja real de aplicativos para "Android" na página do nosso jogo. Decidimos chamá-lo de Very Angry Birds, porque contém o módulo SpyPhone.



Então, o usuário baixa esse jogo. No seu telefone Android, quando você instala o aplicativo, ele fornece uma lista de todas as permissões necessárias para funcionar.



Ele diz que o aplicativo precisa acessar sua localização, informações pessoais, comunicações em rede, armazenamento de dados, serviços pagos, telefonemas. Como o usuário deseja instalar o aplicativo, ele geralmente não presta atenção a todas essas permissões, que aparecem constantemente na instalação de programas, e simplesmente clica no botão "Instalar". Agora a tela mostra como está indo o processo de instalação do aplicativo. Em seguida, lançamos o aplicativo instalado. Agora, à esquerda, você vê o jogo em execução e à direita - as informações do site de comando e controle em que o smartphone está sob controle e você pode ouvir os sons que acompanham o jogo.



Vou silenciar o som porque isso me incomoda. Portanto, observe que o jogo está jogando como de costume, não há nada de extraordinário que possa atrair a atenção do usuário. Não há evidências de que algo estranho esteja acontecendo ao telefone.

O usuário joga, isso é muito legal, mas mesmo quando ele para de jogar e fecha o jogo, o módulo espião continuará funcionando em segundo plano. Mesmo se você reiniciar o telefone, o serviço SpyPhone será reiniciado, agora ele está constantemente presente neste smartphone. Portanto, este telefone está infectado com cyber espião e agora é exibido aqui no console do site de comando e controle. Se eu clicar nesta linha, o site fornecerá as informações armazenadas neste dispositivo. Podemos obter um mapa com a localização deste dispositivo - este é Las Vegas.



Quero enfatizar que aqui a conexão entre o telefone e o computador não é realizada diretamente, mas através da Internet, usando um servidor da Web localizado em Ottawa, onde trabalho. O único motivo pelo qual conectei este telefone com um cabo ao meu computador é a necessidade de capturar capturas de tela. O console mostra que temos outros telefones funcionando ao mesmo tempo. Aqui está um deles localizado na China, para que você possa criar uma rede internacional de "telefones espiões" e monitorá-los o tempo todo enquanto estiverem online.

Então, de volta ao nosso telefone em Las Vegas. Você pode ver que aqui está o endereço de e-mail da conta do proprietário do telefone, número de telefone, padrão de comunicação CDMA, tipo de rede, IMEI, país da operadora móvel, nome, status do cartão SIM, coordenadas de localização e contatos do proprietário do telefone. Todas essas informações são carregadas no servidor de comando e controle, e podemos rastrear o proprietário deste telefone 24 horas por dia, 7 dias por semana e usar todas as informações fornecidas pelo telefone, incluindo o download da lista de contatos dessa pessoa em particular. Isso nos dará uma lista de outros objetivos em potencial se usarmos algum tipo de espionagem cibernética industrial, quando quisermos descobrir com quem o proprietário do telefone está conversando e com quem está negociando. Poderíamos usar essa lista de contatos para segmentar pessoas específicas.

Pode-se imaginar que um invasor distribui esse jogo para todas as lojas de aplicativos Android e, depois que as pessoas fazem o download, você se concentra em algum funcionário de uma empresa em particular, na lista de contatos dele, etc.

Outra coisa que podemos fazer é atualizar o spyware instalado e enviar mensagens para o telefone infectado. Você pode usá-lo para outros fins, por exemplo, apenas para assustar as pessoas com essas mensagens. Podemos acessar mensagens SMS e e-mail, determinar a localização do telefone. Todas essas operações são indicadas na parte superior do console para gerenciar o telefone capturado, destacadas em azul. Outra coisa que pode ser feita é ligar a câmera do telefone, vou tentar fazê-lo agora. Pego o telefone em minhas mãos e clico na função "Peep" no console de controle, isso levará algum tempo, pois você precisa tirar uma foto e enviá-la ao site de comando e controle. Como você pode ver, a princípio minha foto aparece, tirada com a câmera frontal, seguida por uma foto desta sala, tirada com a câmera traseira. Assim, posso fotografar remotamente em um telefone infectado e receber essas fotos.

Se você perceber, o jogo ainda está rodando na tela, para que a pessoa nem perceba que a foto foi tirada. Isso é feito em segundo plano sem o conhecimento do usuário. Podemos usar a mesma tecnologia para gravar vídeos. A última coisa que quero demonstrar é a função de escuta. Então, eu digo ao telefone: "Este é um teste, um, dois três, este é um teste, um, dois, três". Depois clico no botão "Play Audio", a conexão demora um pouco e agora você ouve a repetição das minhas palavras.



Então, gravei a conversa pelo microfone do telefone e enviei-a no site de comando e controle, para que tudo fique bem legal. Então, foi uma demonstração do que a tecnologia SpyPhone pode fazer.

Agora vamos falar um pouco sobre como desenvolvemos o design e a tecnologia do nosso software e por que tomamos essas decisões de design. Voltarei aos slides anteriores.



Primeiro, queríamos combinar nosso malware com os recursos originais do telefone e criar um programa spyware do tipo Trojan com acesso remoto que funcionasse com um telefone Android. Tomamos como base um aplicativo de demonstração chamado “Dicionário pesquisável” e o modificamos para que um módulo de spyware pudesse ser inserido nele e o implementamos como um aplicativo regular para Android.

Ou seja, aderimos ao design de programas Android originais usando Java. Precisávamos que ele contivesse todos os componentes necessários dentro de si, para trabalhar em segundo plano, mesmo que o aplicativo estivesse parado, ele era iniciado quando o telefone era carregado. Nossa segunda tarefa foi fornecer fácil integração do SpyPhone aos aplicativos oficiais. Isso funcionou e nosso malware não interferiu na operação de outros aplicativos instalados no telefone. Como servidor de comando e controle, escolhemos o servidor da web NodJS com transferência de dados via HTTP. Para os comandos de controle do nosso programa, usamos a interface JS, e os próprios comandos eram assim:

atualização - envie informações para o servidor,
brinde - exibe uma mensagem na tela,
shutdown - pare o SpyPhone,
sms - envie uma mensagem SMS para um contato,
local - envie informações de localização do telefone para o servidor,
peep - tire uma foto e envie-a para o servidor,
ouvir - gravar som e enviar para o servidor.

Tudo isso foi muito fácil de programar, pois os criadores do Android forneceram ao sistema um conjunto completo bastante poderoso de ferramentas de desenvolvimento do SDK. Este kit fornece uma interface para tudo o que você deseja. Nunca desenvolvemos programas Android, mas, graças a esse SDK, nem precisávamos aprender nada e desenvolvemos isso em poucas semanas.

O próximo slide mostra o design inicial do dicionário Pesquisável, com base no qual criamos o SpyPhone usando os códigos Java que você vê aqui. Adicionamos uma parte chamada droidwhisper a este aplicativo.



Esta é a parte que iremos recortar e colar em uma aplicação adequada mais tarde. Como não tínhamos experiência na criação de explorações especiais que explorariam vulnerabilidades de aplicativos, importamos a API padrão que o Android fornece:

Informações do Usuário
- importar android.accounts.Account;
- importar android.accounts.AccountManager.
Telefone e SMS
–Import android.telephony.SmsManager;
–Importe android.telephony.TelephonyManager.
Localização
–Import android.location.Location;
–Import android.location.LocationListener;
–Import android.location.LocationManager;
Gravando arquivos de mídia (áudio e vídeo)
- import android.media.MediaRecording.
Camera
–Import android.hardware.Camera;
–Importe android.hardware.Camera.PictureCallback;
–Import android.hardware.Camera.PreviewCallback;
–Import android.hardware.Camera.Size;
–Import android.media.AudioManager;
–Import android.view.SurfaceHolder;
–Importe android.view.SurfaceView.
A internet
–Import org.apache.http.HttpResponse;
–Import org.apache.http.NameValuePair;
–Importe org.apache.http.client.ClientProtocolException;
–Importe org.apache.http.client.HttpClient.

Alguém disse que gravar vídeos e tirar fotos quando o telefone está no bolso do usuário não é muito bom. Portanto, se você deseja tirar uma boa foto, envia a mensagem de texto ao proprietário, porque temos o número de telefone dele. Ele recebe uma mensagem, segura o telefone de frente para lê-lo e, nesse momento, você tira uma foto com a câmera frontal. Se você ligar para ele, ele leva o telefone ao ouvido e, nesse momento, você pode tirar uma foto com a câmera traseira.



Fazer a câmera funcionar é um pouco mais complicado, por isso usamos um conjunto inteiro de classes, por exemplo, AudioManager, SurfaceHolder e similares. Precisávamos desativar temporariamente o som do clique quando uma foto é tirada, para não atrair a atenção do usuário se essa função for ativada nas configurações de sua câmera. Além disso, prevíamos que as fotos ou vídeos de espionagem tirados fossem exibidos na galeria do telefone como miniaturas de 1 pixel, para que o usuário não pudesse vê-las. Então tivemos que usar alguns truques para garantir a operação discreta do nosso módulo espião. Como já notei, quase tudo para fornecer comunicação com o servidor de comando e controle está contido no próprio telefone. Também usamos algumas das fraquezas de segurança do Android.

Como você sabe, esses aplicativos devem ser assinados para serem instalados no telefone, mas isso não é um problema, pois você pode usar qualquer certificado antigo para assinar, porque o principal é que o aplicativo tenha um certificado, independentemente de qual. Mais tarde vou falar mais sobre isso.

Portanto, essa foi uma breve descrição do design que usamos ao criar o aplicativo. Agora vou falar sobre o processo de implementação, ou seja, como pegamos nosso módulo malicioso e o inserimos no aplicativo.

A primeira coisa que fizemos foi escolher o jogo Angry Birds. Nós o escolhemos não porque é um jogo muito bom, mas por causa de sua popularidade. Nosso módulo SpyPhone pode ser inserido em absolutamente qualquer aplicativo. Primeiro de tudo, precisamos de uma cópia do arquivo .apk original. Este é um arquivo que contém todos os componentes do aplicativo. Dentro do arquivo do aplicativo está o código Java, ou melhor, não é exatamente o Java - esse é o código da máquina virtual Dalvik. Esse código pode ser substituído por outro conteúdo, isso é chamado de vulnerabilidade de "chave mestra". Portanto, devemos abrir esse arquivo .apk e desmontá-lo, ou seja, ter uma lista de todos os componentes a serem desmontados.
Portanto, antes de tudo, extraímos todos os componentes do aplicativo Angry Birds 2000.



Em seguida, no diretório smali, inserimos o diretório example / android / droidwhisper, e é na pasta droidwhisper final que estão localizados os arquivos do aplicativo de dicionário pesquisável modificado que contêm nosso módulo espião.



Fizemos o download do jogo Angry Birds no Google Play Market e fizemos uma cópia dele. A próxima coisa que nos preocupa são as chaves de assinatura. Você vê todos esses arquivos em nosso diretório chamado injetar.

No processo de desmontagem, usamos o programa Apk_tools, uma ferramenta para gerenciar arquivos .apk. Agora, usando a linha de comando, mostro como começamos a desmontar o Angry Birds.



Em seguida, procedemos diretamente à desmontagem do aplicativo. Criamos o catálogo do Angry Birds, onde inserimos todos os componentes do aplicativo. Como se trata de uma demonstração, é necessário aguardar um pouco até que o processo de desmontagem termine. Então, você vê uma infinidade de diretórios, a pasta assets está localizada primeiro, contém coisas como sons, existem pastas de recursos, bibliotecas lib, mas a chave para nós é o diretório smali, que contém o código e o formato da linguagem assembly.

23:00 min

Conferência CHAPÉU PRETO. Como fazer um telefone espião. Parte 2



Obrigado por ficar conosco. Você gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando a seus amigos, um desconto de 30% para os usuários da Habr em um análogo exclusivo de servidores básicos que inventamos para você: Toda a verdade sobre o VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps da US $ 20 ou como dividir o servidor? (as opções estão disponíveis com RAID1 e RAID10, até 24 núcleos e até 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD de 1Gbps até janeiro de graça quando pagar por um período de seis meses, você pode fazer o pedido aqui .

Dell R730xd 2 vezes mais barato? Somente nós temos 2 TVs Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 a partir de US $ 249 na Holanda e nos EUA! Leia sobre Como criar um prédio de infraestrutura. classe usando servidores Dell R730xd E5-2650 v4 custando 9.000 euros por um centavo?

Source: https://habr.com/ru/post/pt434052/


All Articles