
StaCoAn é uma ferramenta multiplataforma que auxilia desenvolvedores, caçadores de bugbounty e hackers éticos a realizar análise estática de código em aplicativos móveis.

StaCoAn é uma ferramenta multiplataforma que auxilia desenvolvedores, caçadores de recompensas de bugs e hackers éticos a realizar análise estática de código em aplicativos móveis*.
Esta ferramenta irá procurar linhas interessantes no código que podem conter:
Esta ferramenta foi criada com grande foco em usabilidade e orientação gráfica na interface do usuário.
Para os impacientes, baixe o download na página de versões.
*: note que atualmente apenas arquivos apk são suportados, mas arquivos ipa serão adicionados em breve.
Um relatório de exemplo pode ser encontrado aqui.
O conceito é que você arrasta e solta seu arquivo de aplicativo móvel (um arquivo .apk ou .ipa) no aplicativo StaCoAn e ele gerará um relatório visual e portátil para você. Você pode ajustar as configurações e listas de palavras para obter uma experiência personalizada.
Os relatórios contêm um prático visualizador em árvore para que você possa navegar facilmente pelo seu aplicativo descompilado.

A Função Saque permite que você 'saque' (~marque) as descobertas que são valiosas para você e na página de saque você terá uma visão geral do seu 'ataque de saque'.
O relatório final pode ser exportado para um arquivo zip e compartilhado com outras pessoas.
O aplicativo usa listas de palavras para encontrar linhas interessantes no código. As listas de palavras estão no seguinte formato:
API_KEY|||80||| This contains an API key reference
(https|http):\/\/.*api.*|||60||| This regex matches any URL containing 'api'
Observe que essas listas de palavras suportam entradas regex.
No exclusion_list.txt você pode definir exclusões (se por algum motivo você tiver muitas descobertas):
(https|http):\/\/.*api.*|||"res","layout"||| Like previously, note that "res","layout" resembles the path
(https|http):\/\/.*api.*|||||| To exclude everywhere
Qualquer arquivo fonte será processado. Isso inclui arquivos '.java', '.js', '.html', '.xml',....
Arquivos de banco de dados também são pesquisados por palavras-chave. O banco de dados também possui um visualizador de tabelas.

Os relatórios são feitos para caber em todas as telas.


Esta ferramenta terá problemas com código ofuscado. Se você é desenvolvedor, tente compilar sem ofuscação ativada antes de executar esta ferramenta. Se você está no lado ofensivo, boa sorte, cara.
Se você quiser começar o mais rápido possível, vá para a página de versões e baixe o executável ou arquivo correspondente ao seu sistema operacional.
Se você baixou o arquivo zip da versão, extraia-o.
No Windows, você pode apenas clicar duas vezes no executável. Ele abrirá no modo servidor e você pode arrastar e soltar seus aplicativos móveis na interface web.

No Mac e Linux, você pode executá-lo no terminal sem argumentos para o modo servidor.
./stacoan
Arraste e solte este arquivo no executável.
Ou você pode especificar um arquivo apk para executá-lo sem o modo servidor:
./stacoan -p test-apk.apk
O relatório será colocado dentro de uma pasta com um nome correspondente ao apk.
cd docker
docker build . -t stacoan
Certifique-se de que seu aplicativo esteja no local /yourappsfolder.
docker run -e JAVA_OPTS="-Xms2048m -Xmx2048m" -p 8888:8888 -p 7777:7777 -i -t stacoan
Arraste e solte seu aplicativo via: http://127.0.0.1:7777.
git clone https://github.com/vincentcox/StaCoAn/
cd StaCoAn/src
Certifique-se de ter o pip3 instalado:
sudo apt-get install python3-pip
Instale os pacotes python necessários:
pip3 install -r requirements.txt
Execute o StaCoAn via linha de comando:
python3 stacoan.py -p yourApp.apk
Ou se preferir usar a interface de arrastar e soltar:
python3 stacoan.py
Certifique-se de estar na pasta src.
cd src
Instale o PyInstaller:
pip3 install pyinstaller
PyInstaller não consegue lidar com subpastas com código, portanto, precisamos colocar o código em uma única pasta.
sed -i 's/from helpers./from /g' helpers/*
sed -i 's/from helpers./from /g' stacoan.py
sed -i 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
Compile o stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller não consegue lidar com subpastas com código, portanto, precisamos colocar o código em uma única pasta.
# Note the ''-> this is because sed syntax is different on mac.
sed -i '' 's/from helpers./from /g' helpers/*
sed -i '' 's/from helpers./from /g' stacoan.py
sed -i '' 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
Compile o stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean