Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # bugdroid - Asistente de auditoría de código de aplicativos Android
- # Daniel Medianero - dmedianero@buguroo.com
- #
- # Resumen:
- # Dado un fichero apk el script lo decompila a JAVA y busca el uso de funciones
- # que pueden conllevar vulnerabilidades (contenidas en el array funciones_sospechosas)
- #
- # Requerimientos:
- # apktool - http://code.google.com/p/android-apktool
- # dex2jar - http://code.google.com/p/dex2jar
- # jad - http://www.varaneckas.com/jad
- #
- # Variables Globales
- dir_dalvik="/tmp/bugdroid1"
- dir_decom="/tmp/bugdroid2"
- dir_java="$2/src"
- # Son de ejemplo, definir las que interesen en cada caso
- funciones_sospechosas=("openFileOutput" "openFileInput" "Socket" "Webview")
- function help {
- echo "#
- # bugdroid - Asistente de auditoría de código de aplicativos Android
- # Daniel Medianero - dmedianero@buguroo.com
- #
- # Requerimientos:
- # apktool - http://code.google.com/p/android-apktool
- # dex2jar - http://code.google.com/p/dex2jar
- # jad - http://www.varaneckas.com/jad
- #
- # uso: bugdroid.sh fichero.apk directorio_destino_Datos
- "
- }
- function main {
- # Pasar de apk a Dalvik en el directorio decompiled
- echo "============================================="
- echo "Ejecutando apktool:"
- echo "============================================="
- apktool d $1 $dir_dalvik
- echo "============================================="
- # saca los permismos del manifest del directorio decompiled
- mkdir $2
- help >> $2/output.txt
- echo "=============================================" >> $2/output.txt
- echo "Informe del Aplicativo $1" >> $2/output.txt
- echo "=============================================" >> $2/output.txt
- echo "Permisos requeridos por la app" >> $2/output.txt
- cat $dir_dalvik/AndroidManifest.xml | grep "uses-permission" | awk -F\" '{print $2}' | awk -F\. '{print $3}' >> $2/output.txt
- echo "=============================================" >> $2/output.txt
- cat $2/output.txt
- # Pasa de apk a jar
- echo "Ejecutando dex2jar:"
- echo "============================================="
- dex2jar.sh $1
- unzip "*dex2jar.jar" -d $dir_decom 2> /dev/null
- echo "============================================="
- # Pasa las sources contenidas en com a un directorio src, ya todo en JAVA
- echo "Ejecutando jad:"
- echo "============================================="
- jad -o -r -sjava -d$dir_java $dir_decom/**/*.class
- echo "============================================="
- # Detección por grep de funciones o métodos susceptibles de ser vulnerables
- echo "Detectando funciones sospechosas:"
- echo "============================================="
- for seq in $(seq 0 $(expr ${#funciones_sospechosas[@]} - 1))
- do
- echo "Patrón de búsqueda: ${funciones_sospechosas[$seq]}"
- echo "Patrón de búsqueda: ${funciones_sospechosas[$seq]}" >> $2/output.txt
- find $dir_java -name "*.java" -exec grep -niHT ${funciones_sospechosas[$seq]} {} \; >> $2/output.txt
- echo "=============================================" >> $2/output.txt
- done
- echo "============================================="
- # Borrado de ficheros temporales
- rm -rf $dir_dalvik *dex2jar.jar $dir_decom
- }
- # Main del script
- if [ $# -ne 2 ];then
- help
- else
- main $1 $2
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement