
StaCoAn è uno strumento cross-platform che aiuta sviluppatori, cacciatori di bug bounty e hacker etici nell'effettuare analisi statica del codice su applicazioni mobili.

StaCoAn è uno strumento cross‑platform che aiuta sviluppatori, bug‑bounty hunters e hacker etici nell'esecuzione di analisi statica del codice su applicazioni mobili*.
Questo strumento cerca righe interessanti nel codice che possono contenere:
Lo strumento è stato creato con un forte focus sull'usabilità e sulla guida grafica nell'interfaccia utente.
Per gli impazienti, scarica il pacchetto dalla pagina delle release.
*: notare che al momento sono supportati solo file apk, ma i file ipa seguiranno molto presto.
Un report di esempio può essere trovato qui.
L'idea è che trascini il file della tua applicazione mobile (un file .apk o .ipa) sull'applicazione StaCoAn e questa genererà per te un report visivo e portabile. Puoi modificare le impostazioni e le wordlist per ottenere un'esperienza personalizzata.
I report contengono un comodo visualizzatore ad albero, in modo da poter navigare facilmente nell'applicazione decompilata.

La Loot Function ti permette di 'saccheggiare' (~segnalibro) i risultati che hanno valore per te; nella pagina del loot ottieni una panoramica della tua incursione.
Il report finale può essere esportato in un file zip e condiviso con altre persone.
L'applicazione utilizza wordlist per trovare righe interessanti nel codice. Le wordlist hanno il seguente formato:
API_KEY|||80||| This contains an API key reference
(https|http):\/\/.*api.*|||60||| This regex matches any URL containing 'api'
Nota che queste wordlist supportano voci con regex.
Nel file exclusion_list.txt puoi definire esclusioni (se per qualche motivo hai troppi risultati):
(https|http):\/\/.*api.*|||"res","layout"||| Come sopra, nota che "res","layout" corrisponde al percorso
(https|http):\/\/.*api.*|||||| Per escludere ovunque
Verrà elaborato qualsiasi file sorgente. Questo include file '.java', '.js', '.html', '.xml',....
Anche i file di database vengono cercati per parole chiave. Il database dispone inoltre di un visualizzatore di tabelle.

I report sono realizzati per adattarsi a tutti gli schermi.


Questo strumento avrà difficoltà con codice offuscato. Se sei uno sviluppatore, prova a compilare senza offuscamento abilitato prima di eseguire questo strumento. Se sei sul lato offensivo, buona fortuna.
Se vuoi iniziare il prima possibile, vai alla pagina delle release e scarica l'eseguibile o l'archivio corrispondente al tuo sistema operativo.
Se hai scaricato il file zip della release, estrailo.
Su Windows puoi semplicemente fare doppio clic sull'eseguibile. Si aprirà in modalità server e potrai trascinare e rilasciare le tue applicazioni mobili nell'interfaccia web.

Su Mac e Linux puoi semplicemente eseguirlo dal terminale senza argomenti per la modalità server.
./stacoan
Trascina e rilascia questo file sull'eseguibile.
Oppure puoi specificare un file apk per eseguirlo senza la modalità server:
./stacoan -p test-apk.apk
Il report verrà inserito in una cartella con un nome corrispondente all'apk.
cd docker
docker build . -t stacoan
Assicurati che la tua applicazione si trovi in /yourappsfolder.
docker run -e JAVA_OPTS="-Xms2048m -Xmx2048m" -p 8888:8888 -p 7777:7777 -i -t stacoan
Trascina e rilascia la tua applicazione via: http://127.0.0.1:7777.
git clone https://github.com/vincentcox/StaCoAn/
cd StaCoAn/src
Assicurati di aver installato pip3:
sudo apt-get install python3-pip
Installa i pacchetti Python richiesti:
pip3 install -r requirements.txt
Esegui StaCoAn dalla riga di comando:
python3 stacoan.py -p yourApp.apk
Oppure se preferisci usare l'interfaccia drag and drop:
python3 stacoan.py
Assicurati di essere nella cartella src.
cd src
Installa PyInstaller:
pip3 install pyinstaller
PyInstaller non gestisce sottocartelle con codice, quindi dobbiamo mettere il codice in un'unica cartella.
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/* ./ || :;
Compila stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller non gestisce sottocartelle con codice, quindi dobbiamo mettere il codice in un'unica cartella.
# Nota i '' -> questo perché la sintassi di sed è diversa su 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/* ./ || :;
Compila stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller non gestisce sottocartelle con codice, quindi dobbiamo mettere il codice in un'unica cartella.
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/* ./ || :;
Compila stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean