
Kit de ferramentas de teste de penetração e auditoria para aplicativos Android.
Uma ferramenta Java que ajuda a realizar testes de penetração em aplicativos Android de forma mais rápida, fácil e eficiente. O AndroTickler oferece diversos recursos de coleta de informações, verificações estáticas e dinâmicas que cobrem a maioria dos aspectos dos testes de penetração em aplicativos Android. Também oferece vários recursos que os testadores de penetração precisam durante seus testes. O AndroTickler também se integra ao Frida para fornecer rastreamento e manipulação de métodos. Anteriormente foi publicado sob o nome de Tickler.
O AndroTickler requer um host Linux e um dispositivo Android rooteado conectado à sua porta USB. A ferramenta não instala nada no dispositivo Android, apenas cria um diretório Tickler no /sdcard. O AndroTickler depende do SDK do Android para executar comandos no dispositivo e copiar os dados do aplicativo para o diretório TicklerWorkspace no host para análise posterior. TicklerWorkspace é o diretório de trabalho do AndroTickler e cada aplicativo tem um subdiretório separado em TicklerWorkspace que pode conter o seguinte (dependendo das ações do usuário):
O diretório libs e o arquivo de configuração Tickler.conf existem no mesmo diretório do arquivo jar. O arquivo de configuração define a localização do diretório TicklerDir no host e Tickler no /sdcard do dispositivo Android. Se o arquivo de configuração não existir ou esses 2 diretórios não estiverem definidos, os valores padrão serão usados (Tickler_workspace no diretório atual e /sdcard/Tickler respectivamente). O diretório Tickler_lib contém algumas bibliotecas Java e ferramentas externas usadas pelo AndroTickler, como apktool e dex2jar.
O AndroTickler depende fortemente das seguintes ferramentas, portanto elas devem existir em sua máquina antes de usá-lo:
Outras ferramentas são necessárias para alguns recursos, mas o AndroTickler ainda pode funcionar sem elas:
Construir a ferramenta a partir do código
gradle build
Mover AndroTickler.jar para o mesmo diretório do diretório Tickler_lib e do arquivo Tickler.conf (criado automaticamente em build/libs)
Tornar dex2jar executável (libs/notJars//dex2jar-2.1/d2j-dex2jar.sh e libs/notJars//dex2jar-2.1/d2j_invoke.sh)
Conectar seu dispositivo Android com o aplicativo a ser testado instalado
Nota: Se a construção do código-fonte falhar, você pode baixar a versão compilada mais recente na aba releases
A versão atual faz o seguinte:
java -jar AndroTickler.jar -h
Lista aplicativos instalados no dispositivo:
java -jar AndroTickler.jar -pkgs
Pesquisa por um aplicativo (pacote) instalado no dispositivo, cujo nome do pacote contenha a chave de pesquisa
java -jar AndroTickler.jar -findPkg <searchKey>
java -jar AndroTickler.jar -pkg <package> [other options]
Qualquer comando com a opção -pkg (usado com qualquer uma das opções a seguir ou não) realiza as seguintes ações se não tiverem sido feitas antes:
java -jar AndroTickler.jar -pkg <package> -info
Retorna as seguintes informações:
java -jar AndroTickler.jar -pkg <package> -squeeze [short | <codeLocation> ]
Obtém o seguinte do código Java descompilado do aplicativo:
Como esperado, sua saída geralmente é enorme, então é recomendável redirecionar a saída do comando para um arquivo
short Faz o squeeze apenas do código descompilado que pertence ao desenvolvedor. Por exemplo, se um aplicativo tem um nome de pacote com.notEnaf.myapp, então squeeze short faz o squeeze apenas do código no diretório com/notEnaf.
Faz o squeeze do código apenas no diretório codeLocation. Útil para limitar sua pesquisa ou fazer o squeeze do código-fonte se disponível.
java -jar AndroTickler.jar -pkg <package> -l [-exp] [-v]
Lista todos os componentes do aplicativo
-exp Mostra apenas componentes exportados
-v Fornece informações mais detalhadas para cada componente:
java -jar AndroTickler.jar -pkg <package> -l [-act | -ser | -rec | -prov ] [-exp] [-v]
java -jar AndroTickler.jar -pkg <package> -db [|e|l|d] [nu]
Por padrão, todos os comandos -db atualizam o diretório de armazenamento de dados do aplicativo no host antes de executar a verificação.
nenhum atributo OU e Testa se os bancos de dados do aplicativo estão criptografados. É a ação padrão caso nenhuma opção seja fornecida após a flag -db. l Lista todos os bancos de dados do aplicativo. Bancos de dados criptografados podem não ser detectados. d Faz um dump sqlite de qualquer um dos bancos de dados não criptografados. nu noUpdate: executa qualquer uma das opções acima sem atualizar o diretório de dados do aplicativo no host.
java -jar AndroTickler.jar -pkg <package> -diff [d|detailed]
Copia o diretório de armazenamento de dados do aplicativo (para DataDirOld) e então pede ao usuário para realizar a ação desejada e pressionar Enter quando terminar. Em seguida, copia o diretório de armazenamento de dados novamente (para DataDir) e executa diff entre eles para mostrar quais arquivos foram adicionados, excluídos ou modificados.
d|detailed Faz o mesmo que o comando -diff normal, também mostra exatamente o que mudou em arquivos de texto e bancos de dados não criptografados.
java -jar AndroTickler.jar -pkg <package> -sc <key> [<customLocation>]
Pesquisa por key nos seguintes locais: