Aula 1 - Hackeando Aplicativos: Montando um Ambiente Completo de Android Pentest
11.31k views4395 WordsCopy TextShare
Solyd Offensive Security
Aprenda a encontrar falhas em uma aplicação Android com nosso workshop gratuito. São três aulas em q...
Video Transcript:
fala pessoal eu sou luí bma da Sol Offensive Security e seja muito bem-vindo ao nosso workshop totalmente gratuito de Pain Test em aplicações Android se você estiver assistindo esse vídeo pelo YouTube Eu recomendo que você faça matrícula pela plataforma de ensino da Solid nesse workshop por lá você vai ter acesso a todas as aulas já organizadas as informações adicionais como o link de download do app que a gente vai utilizar nosso laboratório de desse workshop e ao final do curso você vai ter acesso ao certificado de conclusão do workshop e só para te lembrar segue a Solid lá no Instagram porque a gente posta bastante conteúdo legal da área de server de segurança e hacking bom nesse workshop a gente vai passar de forma totalmente prática por todas as etapas de um Pain Test no aplicativo Android e nessa aula a gente vai montar um ambiente completo de Pain test Android e para iniciar Vamos criar juntos um dispositivo Android emulado totalmente virtual no nosso computador e para isso vamos utilizar uma ferramenta de emulação de dispositivos Android um virtualizador chamado genymotion Então vamos lá instalar o genymotion o gen mote é um emulador de dispositivos Android que é utilizado por desenvolvedores né é utilizado por profissionais de segurança Pain testers que desejam emular um dispositivo no seu computador então como genen motion você não precisa de um dispositivo físico né então no caso de um Pain tester e né num cenário de Pain Test em aplicativos Android você não precisa de um Android físico roteado para conseguir fazer os testes ali com maior Liberdade porque você pode simplesmente emular esse Android ali esse dispositivo no seu computador e utilizar esse Android emulado como se fosse um né dispositivo Android um smartphone físico existem vários outros emuladores o próprio Android Studio pode ser utilizado também mas gimo ele é muito simples de utilizar muito fácil de fazer a instalação a configuração e por exemplo né utilizar ali ferr como adb para acessar diretamente o terminal ali do seu dispositivo enfim o genim facilita muito esse processo Então a gente vai utilizar o gen motion aqui para montar o nosso ambiente emulado de ptest aplicativos Android e bom a instalação é bem simples aqui no site do J motion Você vai em products e vai escolher J motion desktop clicando em download você tem algumas opções aqui para Windows Mac e Linux Então você vai fazer o download de acordo com o sistema operacional que você utiliza no meu caso eu tô utilizando o macos e um ponto interessante de mencionar é que o gen motion ele funciona em cima do Virtual Box que é uma ferramenta para virtualização de sistemas operacionais para virtualização de máquinas né então você precisa instalar o Virtual Box para ir sim conseguir utilizar o genymotion que vai emular o Android que é basicamente um Linux né modificado Mas enfim no meu caso aqui eu vou utilizar e a opção de macos mas se você estiver utilizando o Windows você vai instalar com Windows mais o Virtual Box né ou você pode instalar o Virtual Box diretamente do site do Virtual Box também e só baixar aqui o gen motion E no caso do Linux só fazer o download e também fazer a instalação no meu caso vou fazer o download do dmg como eu estou no macos ele vai finalizar o download vou clicar aqui para fazer a instalação e ele me pede para no no caso do MacBook aqui do macos ele me pede para arrastar os ícones aqui das aplicações pra pasta de applications no meu caso já tá instalado então ele vai me perguntar se eu quero substituir vou substituir e beleza o gen motion está instalado no caso do Windows o processo é o mesmo né Você vai clicar ali no instalador e vai apertar em next next next vai completar a instalação e você vai ter a aplicação ali do Gen Beleza então após a instalação você vai iniciar o app do Gen motion no caso aqui vou pelo Finder executar o gen motion vou abrir e beleza está aqui o gen motion Ele tá dizendo que ele precisa né de uma licença Só que no caso aqui eu vou dizer que eu vou utilizar o gen motion para uso pessoal então ele diz aqui que a gente não vai ter nenhum suporte técnico nenhum suporte da equipe do Gen motion e beleza dá um agree e a gente consegue utilizar a aplicação gratuitamente só dá um understand next beleza e perfeito temos aqui a aplicação do Gen motion já funcionando e o mais interessante é que pra gente criar um novo dispositivo vocês podem até ver que já existe um dispositivo aqui é o meu dispositivo que eu utilizo para testar algumas aplicações Mas vamos criar um do zero e é bem simples o processo Você vai clicar nesse símbolo de mais aqui nessa Cruz para adicionar o virtual device e você pode selecionar alguns templates de dispositivos até referente a dispositivos do mercado então Google Nexus Motorola Moto X Samsung Galaxy aí tem S4 S5 enfim vão ter aqui diversos dispositivos né para você utilizar e testar suas aplicações no caso eu vou fazer a instalação com Custom phone vou nomear ele como workshop Android pentester e aqui eu posso selecionar a versão do meu Android então em alguns casos por exemplo no app que você vai testar você precisa de uma versão específica Ou se você quiser utilizar uma versão mais antiga para testar vulnerabilidades nesse sentido também você pode eu vou deixar padrão 1 root access né ele permite que eu selecione esse acesso root somente na versão paga né mas no caso aqui eu não preciso vou dar um next quantidade de processadores Eu normalmente deixo o padrão aqui também a memória né se você quiser aumentar para ter uma fluidez melhor ali dentro do dispositivo né dentro da virtualização do do ambiente emulado mas normalmente o padrão funciona muito bem dando next ele vai perguntar mais algumas questões de display né resolução da tela normalmente deixo no padrão dou next next também e Install e ele já vai começar a instalar esse meu dispositivo tá então ele vai pegar a imagem desse dispositivo vai fazer o download vai instalar e vai montar todo o ambiente funcionando de acordo com as configurações que eu defini aqui no gen motion beleza finalizou a instalação agora eu só preciso clicar cá nesse símbolo de Play e ele vai iniciar o meu dispositivo emulado dentro do meu computador esperar um tempinho ele já vai abrir para mim a telinha E olha só meu dispositivo tá aqui totalmente funcional Olha só posso abrir aqui o webview e acessar solid. com. br aí o site da Solid e beleza né eu posso utilizar esse dispositivo aqui como eu utilizaria um dispositivo real aqui no gen motion Você tem uma opção que se chama Open apps que vai basicamente instalar para você o Play Store né então vai ser a lojinha ali do Google que você vai utilizar para baixar aplicativos então eu vou clicar aqui no GS G motion para instalar o app store então no caso de você fazer um Pain test num aplicativo que está na né no cenário mais blackbox ali você não vai ter o apk daquele aplicativo para instalar no seu dispositivo e testar você vai ter que baixar da loja E aí de fato iniciar os testes você pode clicar aqui no de Open apps instalar ele vai pedir para reiniciar o device eu vou clicar aqui para Restart não ele vai iniciar novamente o dispositivo e agora indo aqui nos aplicativos eu tenho a Play Store e aqui obviamente eu teria que acessar a minha conta do Google para ter acesso à lista de aplicativos e fazer o download dos aplicativos ali que eu vou testar ou de qualquer aplicativo que eu utilizaria no pin test agora que temos nosso emulador já instalado e configurado vamos instalar o Android debug Bridge ou adb o adb é uma ferramenta que permite a comunicação com dispositivos Android seja ele emulado ou o dispositivo físico através de uma configuração via USB no modo debug no caso do nosso ambiente emulado a gente já tem um dispositivo virtual mas por padrão no modo desenvolvedor tem toda a parte de debug ativada instalando o adb a gente vai conseguir interagir diretamente com esse dispositivo virtual a partir da nossa máquina e através desses comandos a gente vai conseguir transferir arquivos instalar aplicativos através do APK utilizando o adb a gente vai conseguir principalmente pegar uma Shell dentro daquele dispositivo Android que a gente tá utilizando para testar os aplicativos analisar logs em tempo real acessar arquivos daquele sistema daquele dispositivo como por exemplo os arquivos dos aplicativos arquivos de configuração em alguns casos até modificar os arquivos e isso é essencial para identificar e explorar algumas vulnerabilidades em aplicativos Android Então vamos instalar o adb e a partir do adb instalar o aplicativo que a gente vai utilizar para identificar e explorar vulnerabilidades aqui nesse workshop o Solid Bank um aplicativo que simula um banco digital e a gente vai de fato identificar e explorar diversas vulnerabilidades como a gente faria num aplicativo Real Então vamos instalar agora o adb o Android debug Bridge o adb é uma ferramenta de linha de comando que vai permitir com que a gente se comunique diretamente com o dispositivo Android seja ele emulado ou físico no caso do Físico né o smartphone real a gente teria que configurar ali dentro do smartphone e toda questão de acesso de desenvolvedor né conectar via USB esse dispositivo no computador configurar esse modo debugging dentro do dispositivo E aí sim através do adb a gente conseguiria executar algumas ações no dispositivo no caso de um ambiente emulado como a gente tá fazendo com gen motion automaticamente né Eh o dispositivo ele já vem pré-configurado para eh facilitar essa comunicação com adb Então somente instalando essa ferramenta a gente já vai conseguir efetuar diversas ações aqui da nossa máquina dentro do dispositivo Então a gente vai conseguir instalar PK a gente vai conseguir fazer download e upload de arquivos né transferência de arquivos entre a minha máquina e o dispositivo emulado a gente vai conseguir utilizar ferramentas de debugging né ferramentas de log ali analisar em tempo de execução né os logs de execução ali de um aplicativo e principalmente a gente vai conseguir executar comandos no sistema operacional daquele dispositivo comandos Unix né comandos ali como se fosse um Linux Porque de fato a base de um Android é um Linux Então a gente vai conseguir pegar uma Shell dentro do Android e por exemplo consultar ali os arquivos de uma aplicação como que uma aplicação guarda as informações Será que ela guarda uma informação sensível que nos permitiria ter acesso a um banco de dados ter acesso às informações de um usuário enfim né Isso faz parte do Pain Test e o adb vai nos ajudar justamente nisso então vamos lá eu tô aqui no site de developer do android.
com aqui em Tools eu vou clicar em Android SDK platform Tools que é onde fica o adb né existem diversas outras ferramentas dentro desse pacote mas nesse caso aqui que a gente precisa é o adb clicando aqui em notas da versão de ferramentas da plataforma SDK ele já vai me dar as opções de download então no caso do Windows só seguir o download padrão no Windows Linux mesma coisa no meu caso é o Mac eu vou clicar aqui que concordo e vocês podem ver que foi feito um download de um zip né então o baix o binário dessas ferramentas inclusive se eu baixar aqui do Windows eu vou baixar os executáveis clicar aqui olha só então vou ter aqui o adbx adbx que eu utilizaria para executar o adb no Windows no meu caso seria o platform Tools então eu vou abrir o meu terminal aqui aqui na pasta onde eu fiz download downloads CD platform Tools e daqui eu posso executar o adb normalmente daqui se eu utilizar o comando adb devices ele já vai listar para mim que existe um dispositivo escutando na porta 6555 que é justamente o dispositivo né que eu estou emulando no gen motion Então beleza agora com adb instalado a gente já consegue se comunicar diretamente com o dispositivo então por exemplo eu já posso utilizar algumas opções aqui utilizando comando adb né ou no caso se você estiver num no Windows você vai abrir o CMD e executar o adb Pex né e ele vai né via linha de comando e ele vai e te passar nesse mesmo output aqui você vai conseguir utilizar né os mesmos comandos os mesmos parâmetros que eu tô utilizando aqui beleza e utilizando o comando sozinho ele vai te passar uma lista de todos os parâmetros né todos os argumentos que você pode passar então você pode utilizar por exemplo o adb install o adb push para fazer né o upload de um de um arquivo né ou de um APK para dentro do dispositivo ou então um adb p para fazer o download de um arquivo do dispositivo né então vamos fazer um teste eu vou criar um arquivo aqui toach t. txt criei esse arquivo e eu vou fazer o upload ou seja vou utilizar o push desse Arquivo test. txt ele vai me pedir aqui qual que é o destino desse arquivo eu vou enviar ele para SD Card e aqui no meu dispositivo vindo nos arquivos aqui em a D um h aqui embaixo eu tenho o meu arquivo test.
txt inclusive sou enviar um conteúdo para ele Hello Rad então e fazer o push novamente a abrindo aqui com HTML viewer eu tenho o texto ali desse arquivo então eu consigo fazer o download upload de arquivos utilizando o adb Eu posso também forçar uma instalação de um APK no meu dispositivo emulado ou no caso se eu estivesse utilizando o dispositivo físico configurado ali com eh USB enfim toda a parte de configuração para utilizar um dispositivo em comunicação com o seu computador você também poderia utilizar esses mesmos comandos né no adb devices aqui o dispositivo apareceria aqui nessa lista né tendo um dispositivo Só você consegue executar os comandos mas tendo muitos dispositivos aqui você consegue utilizar o adb connect para se conectar em cada device né então passando o host e a porta inclusive você consegue até né Eh expor essa porta aqui para fazer uma conexão remota né do dispositivo através né Eh é da internet é possível também um outro comando que a gente pode utilizar aqui no adb é o adb Shell que é onde a gente consegue pegar uma Shell um terminal dentro do dispositivo então aqui dentro eu posso dar um LS né listar os arquivos ali do meu dispositivo emulado no caso do dispositivo real de fato você vai executar comandos ali no sistema operacional do seu dispositivo posso vir aqui em sdcard por exemplo e deletar esse teste. txt então no caso esse arquivo não existe mais aqui no meu dispositivo né eu posso né aqui no caso eu tô dentro eh dos arquivos Onde eu consigo acessar pelo dispositivo dando CD ponto ponto aqui indo para direto para Rot né do meu sistema eu consigo acessar outras pastas então acessando aqui por exemplo data eu consigo eh ver né os arquivos que as aplicações utilizam né então por exemplo NFC consigo ver informações aqui de mídia de backup posso entrar aqui em data novamente e eu consigo ver as informações de cada aplicativo então por exemplo aplicativos e que fazem parte já da estrutura do Android webview né aplicativos ali da Google né Toda a parte ali dos aplicativos do genymotion também e inclusive os aplicativos que eu instalar se eu instalar um aplicativo aqui ele vai aparecer como uma pasta aqui dentro de data data e eu consigo acessar esses arquivos então por exemplo esse amaz File Manager é um arquivo instalado né que já vem por padrão aqui no genen motion Se eu entrar nessa pasta ma File Manager eu vou conseguir ver as informações desse app dentro do meu dispositivo então por exemplo se o o aplicativo foi construído de forma insegura guardando informações sem criptografia ou então guardando informações sensíveis ali do Servidor da aplicação no seu e enfim no seu interior dentro ali dos arquivos que ficam dentro do do Android você consegue acessar tudo isso então por exemplo em shared preference que né já é né algo que que a gente entra quando a gente tá fazendo testes de intrusão em aplicativos Android é procurar por informações sensíveis dentro desses arquivos então shared preference é um arquivo que qualquer aplicativo do Android consegue acessar n então aqui dentro dando um catch nesse XML a gente consegue ter acesso a informações desse App no caso aqui do File Manager não tem nada de interessante mas pode ser que num aplicativo que você esteja testando né você vai encontrar alguma coisa ali ou dentro de databases você consegue ter acesso aqui ao banco de dados daquele aplicativo local dentro daquele dispositivo tá então toda a parte de informações em cash também você tem acesso a isso aqui e né dependendo do aplicativo você vai ter outras pastas dentro aqui desse caminho também beleza Beleza então agora vamos de fato instalar o nosso laboratório nosso aplicativo que a gente vai invadir durante esse workshop né E esse aplicativo é o Solid Bank eu vou utilizar o adb para instalar aqui no meu genymotion mas eu poderia por exemplo pegar o apk e arrastar aqui pro adb né pro pro adb não pro gen motion pra telinha do meu smartphone emulado e ele já iria fazer a instalação automaticamente enfim n eu vou utilizar o adb install vou passar o caminho pro meu APK no caso tá aqui em downloads downloads Solid Bank APK e olha só ele tá dizendo que o Google Play né o Google Play Protect tá é dizendo que o aplicativo foi bloqueado no caso aqui eu vou clicar para instalar de qualquer forma já que eu conheço a origem desse aplicativo ele vai instalar e aqui embaixo já apareceu para mim o app se eu clicar para iniciar tá iniciando Solid Bank e olha só o que aconteceu Ele identificou que eu tô rodando esse App num ambiente emulado num ambiente rooteado e ele não permitiu com que eu conseguisse eh prosseguir com a inicialização do app existe uma proteção nesse aplicativo que não me deixa seguir com isso né e consequentemente Eu não conseguiria testar esse App no meu ambiente emulado ou então não conseguiria testar esse App no meu smartphone no meu Android físico rooteado então o que que a gente vai fazer para burlar isso entender como que o app tá fazendo esse bloqueio como que ele tá identificando que a gente tá num ambiente roteado no ambiente ulado a gente pode tentar entender como que o App funciona como que ele faz essa verificação e o próprio adb oferece uma ferramenta muito interessante pra gente que é o log Cat utilizando o adb log Cat a gente vai conseguir Opa adb espaço logcat a gente vai conseguir ver todos os logs em tempo de execução em tempo real do nosso dispositivo então se eu clicar aqui em Solid Bank para abrir ele vai mostrar vários logs aqui na tela e eu consigo filtrar esses logs Olha só então vou dar um Ctrl C para fechar o log catch vou tentar encontrar aqui algum log referente ao aplicativo do Solid Bank então por exemplo Splash screen Posso copiar esse ID aqui e executar o adb log catch dando um grip aquele ID então só vou ver aqui os logs referente ao processo de execução do Solid Bank que abriu rapidinho e fechou mas com os logs eu consigo entender um pouquinho mais do que o que tá acontecendo de fato ali por trás dos panos uma outra coisa que a gente pode fazer é verificar se esse App tá fazendo alguma consulta algum host tá fazendo alguma requisição a um backend né um servidor só que para isso a gente precisa configurar um proxy ou seja uma outra ferramenta que vai atuar interceptando as requisições que o meu dispositivo faz para qualquer lugar paraa internet o aplicativo é basicamente uma interface é o front end ou client e esse client se comunica com o backend o servidor ali por trás do aplicativo através de protocolo http então boa parte do Pain Test em aplicativos mobile é muito parecido com ptest em aplicações web ou Pain Test em API então pra gente testar a segurança de um aplicativo identificar e explorar vulnerabilidades no aplicativo a gente precisa entender como que funciona essa comunicação com backend e de fato testar esse backend E para isso a gente precisa configurar um proxy local que vai nos permitir interceptar todo o tráfego http que se passa daquele dispositivo emulado que a gente tá utilizando para teste e consequentemente interceptar a comunicação do aplicativo com o servidor de backend então para isso a gente vai instalar o Bup suite que é a ferramenta que a gente a gente utiliza como proxy para interceptar as requisições e manipular essas requisições eu vou clicar aqui em download bu suite community Edition só colocar o e-mail aqui para fazer o download no meu caso vou fazer o download para o meu sistema que é o macos Apple Silicon você pode fazer instalação de acordo com o seu sistema operacional clicando em download ele vai baixar o burp swit Beleza agora só fazer a instalação no caso do Windows só seguir o processo de instalação normal next next next no meu caso aqui só vou mover para applications e vou abrir o burp burp Suit community Edition ele já vai iniciar vou dar um accept next start burp e beleza iniciamos o burp suwit e agora a gente precisa configurar o nosso dispositivo emulado que com que o tráfego né Desse dispositivo passe pelo Bup Ou seja a gente vai configurar um proxy na conexão desse dispositivo por padrão burp suite já abre uma porta 8080 Então a gente vai configurar esse caminho dentro do nosso dispositivo como proxy então abrindo aqui o dispositivo Android eu vou nas configurações de internet wi-fi vou modificar a conexão vou adicionar um proxy manual por padrão aqui no caso de ambientes emulados no caso do J motion do local host é 10. 0.
3. 10. apk para receber né para interceptar essas requisições vou salvar então agora Se eu tentar acessar aqui por exemplo o site do banco cn.