
Kit de herramientas de pruebas de penetración y auditoría para aplicaciones Android.
Una herramienta Java que ayuda a realizar pentesting en aplicaciones Android de manera más rápida, fácil y eficiente. AndroTickler ofrece muchas funciones de recopilación de información, análisis estáticos y dinámicos que cubren la mayoría de los aspectos del pentesting de aplicaciones Android. También ofrece varias características que los pentesters necesitan durante sus pruebas. AndroTickler también se integra con Frida para proporcionar trazado y manipulación de métodos. Anteriormente se publicó bajo el nombre de Tickler.
AndroTickler requiere un host Linux y un dispositivo Android rooteado conectado a su puerto USB. La herramienta no instala nada en el dispositivo Android, solo crea un directorio Tickler en /sdcard. AndroTickler depende de Android SDK para ejecutar comandos en el dispositivo y copiar los datos de la aplicación al directorio TicklerWorkspace en el host para su posterior análisis. TicklerWorkspace es el directorio de trabajo de AndroTickler y cada aplicación tiene un subdirectorio separado en TicklerWorkspace que puede contener lo siguiente (dependiendo de las acciones del usuario):
El directorio libs y el archivo de configuración Tickler.conf existen en el mismo directorio que el archivo jar. El archivo de configuración establece la ubicación del directorio TicklerDir en el host y Tickler en /sdcard del dispositivo Android. Si el archivo de configuración no existe o estos 2 directorios no están configurados, se usarán valores predeterminados (Tickler_workspace en el directorio actual y /sdcard/Tickler respectivamente). El directorio Tickler_lib contiene algunas librerías Java y herramientas externas utilizadas por AndroTickler, como apktool y dex2jar.
AndroTickler depende en gran medida de las siguientes herramientas, por lo que deben existir en su máquina antes de usarlo:
Otras herramientas son necesarias para algunas funciones, pero AndroTickler aún puede ejecutarse sin ellas:
Compilar la herramienta desde el código
gradle build
Mover AndroTickler.jar al mismo directorio que el directorio Tickler_lib y el archivo Tickler.conf (creado automáticamente en build/libs)
Hacer ejecutable dex2jar (libs/notJars//dex2jar-2.1/d2j-dex2jar.sh y libs/notJars//dex2jar-2.1/d2j_invoke.sh)
Conecte su dispositivo Android con la aplicación a probar instalada
Nota: Si la compilación del código fuente falla, puede descargar la última versión compilada desde la pestaña releases
La versión actual hace lo siguiente:
java -jar AndroTickler.jar -h
Listar aplicaciones instaladas en el dispositivo:
java -jar AndroTickler.jar -pkgs
Busca una aplicación (paquete) instalada en el dispositivo cuyo nombre de paquete contenga searchKey
java -jar AndroTickler.jar -findPkg <searchKey>
java -jar AndroTickler.jar -pkg <package> [other options]
Cualquier comando con la opción -pkg (ya sea usado con alguna de las siguientes opciones o no), realiza las siguientes acciones si no se han hecho antes:
java -jar AndroTickler.jar -pkg <package> -info
Devuelve la siguiente información:
java -jar AndroTickler.jar -pkg <package> -squeeze [short | <codeLocation> ]
Obtiene lo siguiente del código Java descompilado de la aplicación:
Como era de esperar, su salida suele ser enorme, por lo que se recomienda redirigir la salida del comando a un archivo
short Extrae solo el código descompilado que pertenece al desarrollador. Por ejemplo, si una aplicación tiene un nombre de paquete com.notEnaf.myapp, entonces squeeze short extrae solo el código en el directorio com/notEnaf.
Extrae el código solo en el directorio codeLocation. Útil para limitar la búsqueda o extraer el código fuente si está disponible.
java -jar AndroTickler.jar -pkg <package> -l [-exp] [-v]
Lista todos los componentes de la aplicación
-exp Muestra solo los componentes exportados
-v Proporciona información más detallada 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 defecto, todos los comandos -db actualizan el directorio de almacenamiento de datos de la aplicación en el host antes de ejecutar la verificación.
sin atributo O e Comprueba si las bases de datos de la aplicación están encriptadas. Es la acción predeterminada si no se da ninguna opción después de la bandera -db. l Lista todas las bases de datos de la aplicación. Es posible que las bases de datos encriptadas no se detecten. d Toma un volcado sqlite de cualquier base de datos no encriptada. nu sin actualizar: ejecuta cualquiera de las opciones anteriores sin actualizar el directorio de datos de la aplicación en el host.
java -jar AndroTickler.jar -pkg <package> -diff [d|detailed]
Copia el directorio de almacenamiento de datos de la aplicación (a DataDirOld) y luego pide al usuario que realice la acción que desee y presione Enter cuando haya terminado. Luego copia nuevamente el directorio de almacenamiento de datos (a DataDir) y ejecuta diff entre ellos para mostrar qué archivos se agregaron, eliminaron o modificaron.
d|detailed Hace lo mismo que el comando -diff normal, también muestra exactamente qué cambió en archivos de texto y bases de datos no encriptadas.