Advertisement
Guest User

Asistente de auditoría de código de aplicativos Android

a guest
Aug 31st, 2011
654
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.15 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. #   bugdroid - Asistente de auditoría de código de aplicativos Android
  4. #   Daniel Medianero - dmedianero@buguroo.com
  5. #
  6. #   Resumen:
  7. #   Dado un fichero apk el script lo decompila a JAVA y busca el uso de funciones
  8. #   que pueden conllevar vulnerabilidades (contenidas en el array funciones_sospechosas)
  9. #
  10. #   Requerimientos:
  11. #   apktool - http://code.google.com/p/android-apktool
  12. #   dex2jar - http://code.google.com/p/dex2jar
  13. #   jad - http://www.varaneckas.com/jad
  14. #
  15.  
  16. # Variables Globales
  17. dir_dalvik="/tmp/bugdroid1"
  18. dir_decom="/tmp/bugdroid2"
  19. dir_java="$2/src"
  20. # Son de ejemplo, definir las que interesen en cada caso
  21. funciones_sospechosas=("openFileOutput" "openFileInput" "Socket" "Webview")
  22.  
  23. function help {
  24.  
  25. echo "#
  26. #   bugdroid - Asistente de auditoría de código de aplicativos Android
  27. #   Daniel Medianero - dmedianero@buguroo.com
  28. #
  29. #   Requerimientos:
  30. #   apktool - http://code.google.com/p/android-apktool
  31. #   dex2jar - http://code.google.com/p/dex2jar
  32. #   jad - http://www.varaneckas.com/jad
  33. #
  34. #   uso: bugdroid.sh fichero.apk directorio_destino_Datos
  35. "
  36. }
  37.  
  38. function main {
  39. # Pasar de apk a Dalvik en el directorio decompiled
  40. echo "============================================="
  41. echo "Ejecutando apktool:"
  42. echo "============================================="
  43. apktool d $1 $dir_dalvik
  44. echo "============================================="
  45.  
  46. # saca los permismos del manifest del directorio decompiled
  47. mkdir $2
  48. help >> $2/output.txt
  49. echo "=============================================" >> $2/output.txt
  50. echo "Informe del Aplicativo $1" >> $2/output.txt
  51. echo "=============================================" >> $2/output.txt
  52. echo "Permisos requeridos por la app" >> $2/output.txt
  53. cat $dir_dalvik/AndroidManifest.xml | grep "uses-permission" | awk -F\" '{print $2}' | awk -F\. '{print $3}' >> $2/output.txt
  54. echo "=============================================" >> $2/output.txt
  55. cat $2/output.txt
  56.  
  57. # Pasa de apk a jar
  58. echo "Ejecutando dex2jar:"
  59. echo "============================================="
  60. dex2jar.sh $1
  61. unzip "*dex2jar.jar" -d $dir_decom 2> /dev/null
  62. echo "============================================="
  63.  
  64. # Pasa las sources contenidas en com a un directorio src, ya todo en JAVA
  65. echo "Ejecutando jad:"
  66. echo "============================================="
  67. jad -o -r -sjava -d$dir_java $dir_decom/**/*.class
  68. echo "============================================="
  69.  
  70. # Detección por grep de funciones o métodos susceptibles de ser vulnerables
  71. echo "Detectando funciones sospechosas:"
  72. echo "============================================="
  73.   for seq in $(seq 0 $(expr ${#funciones_sospechosas[@]} - 1))
  74.   do
  75.     echo "Patrón de búsqueda: ${funciones_sospechosas[$seq]}"
  76.     echo "Patrón de búsqueda: ${funciones_sospechosas[$seq]}" >> $2/output.txt
  77.     find $dir_java -name "*.java" -exec grep -niHT ${funciones_sospechosas[$seq]} {} \; >> $2/output.txt
  78.     echo "=============================================" >> $2/output.txt
  79.   done
  80. echo "============================================="
  81.  
  82. # Borrado de ficheros temporales
  83. rm -rf $dir_dalvik *dex2jar.jar $dir_decom
  84.  
  85. }
  86.  
  87. # Main del script
  88. if [ $# -ne 2 ];then
  89.   help
  90. else
  91.   main $1 $2
  92. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement