MobileApp-Pentest-Cheatsheet

La hoja de trucos Mobile App Pentest se creó para proporcionar una recopilación concisa de información de alto valor sobre temas específicos de pruebas de penetración de aplicaciones móviles.

Prueba de penetración de aplicaciones móviles Cheat Sheet

La hoja de trucos Mobile App Pentest se creó para proporcionar una recopilación concisa de información de alto valor sobre temas específicos de pruebas de penetración de aplicaciones móviles.

Distribuciones de prueba de seguridad de aplicaciones móviles

  • Appie : un paquete de software portátil para Android Pentesting y una excelente alternativa a las máquinas virtuales existentes.
  • Android Tamer - Android Tamer es una plataforma virtual / en vivo para profesionales de seguridad de Android.
  • AppUse - AppUse es una máquina virtual (VM) desarrollada por AppSec Labs.
  • Androl4b - Una máquina virtual para evaluar aplicaciones de Android, ingeniería inversa y análisis de malware
  • Mobisec - Pruebas de seguridad móvil en entorno vivo.
  • Santoku : Santoku es un sistema operativo y puede ejecutarse fuera de una máquina virtual como un sistema operativo independiente.
  • Vezir Project - Entorno de análisis de malware y análisis de aplicaciones móviles.

Marcos de seguridad móviles todo en uno

  • Mobile Security Framework - MobSF - Mobile Security Framework es un marco de prueba de lápiz automatizado inteligente y todo en uno de código abierto (Android / iOS) capaz de realizar análisis estáticos y dinámicos.
  • python manage.py runserver 127.0.0.1:1337
  • Needle - Needle es un marco modular de código abierto para agilizar el proceso de realización de evaluaciones de seguridad de aplicaciones iOS, incluido el análisis binario, el análisis de código estático, la manipulación del tiempo de ejecución mediante el enlace de Cycript y Frida, etc.

Prueba de penetración de aplicaciones de Android

Ingeniería inversa y análisis estático

  • APKInspector - APKinspector es una poderosa herramienta GUI para que los analistas analicen las aplicaciones de Android.
  • APKTool : una herramienta para la ingeniería inversa de aplicaciones de Android binarias, de terceros, cerradas. Puede decodificar recursos de forma casi original y reconstruirlos después de hacer algunas modificaciones.
  • Desmontar el archivo apk de Android
    • apktool d "apk file"
  • Reconstrucción de recursos decodificados de nuevo a APK / JAR binarios con firma de certificado
    • apktool b "modified folder"
    • keytool -genkey -v -keystore keys/test.keystore -alias Test -keyalg RSA -keysize 1024 -sigalg SHA1withRSA -validity 10000
    • jarsigner -keystore keys/test.keystore dist/test.apk -sigalg SHA1withRSA -digestalg SHA1 Test
  • Sign - Sign.jar firma automáticamente una apk con el certificado de prueba de Android.
  • Jadx - Dex to Java decompiler: Línea de comandos y herramientas GUI para producir código fuente Java a partir de archivos Android Dex y Apk.
  • Oat2dex : una herramienta para convertir archivos .oat en archivos .dex.
  • Deoptimizar las clases de arranque (la salida estará en las carpetas "odex" y "dex")
    • java -jar oat2dex.jar boot "boot.oat file"
  • Desoptimizar la aplicación
    • java -jar oat2dex.jar "app.odex" "boot-class-folder output from above"
  • Obtener odex de avena
    • java -jar oat2dex.jar odex "oat file"
  • Obtenga odex smali (con código de operación optimizado) de oat / odex
    • java -jar oat2dex.jar smali "oat/odex file"
  • FindBugs + FindSecurityBugs - FindSecurityBugs es una extensión para FindBugs que incluye reglas de seguridad para aplicaciones Java.
  • Qark : esta herramienta está diseñada para buscar varias vulnerabilidades de la aplicación de Android relacionadas con la seguridad, ya sea en el código fuente o en APKs empaquetados.
  • SUPER - SUPER es una aplicación de línea de comandos que se puede usar en Windows, MacOS X y Linux, que analiza los archivos .apk en busca de vulnerabilidades. Lo hace descomprimiendo los archivos APK y aplicando una serie de reglas para detectar esas vulnerabilidades.
  • AndroBugs - AndroBugs Framework es un eficiente escáner de vulnerabilidades de Android que ayuda a los desarrolladores o piratas informáticos a encontrar posibles vulnerabilidades de seguridad en las aplicaciones de Android. No es necesario instalar en Windows.
  • Simplificar : una herramienta para desobstruir el paquete de Android en Classes.dex que se puede usar Dex2jar y JD-GUI para extraer el contenido del archivo dex.
  • simplify.jar -i "input smali files or folder" -o "output dex file"
  • ClassNameDeobfuscator - Script simple para analizar a través de los archivos .smali producidos por apktool y extraer las líneas de anotación .source.
  • Extractor de copia de seguridad de Android : utilidad para extraer y volver a empaquetar las copias de seguridad de Android creadas con copia de seguridad adb (ICS +). Basado en gran parte en BackupManagerService.java de AOSP.

Análisis dinámico y de tiempo de ejecución

  • Cydia Substrate : Cydia Substrate para Android permite a los desarrolladores realizar cambios en el software existente con extensiones de sustrato que se inyectan en la memoria del proceso de destino.
  • Marco Xposed: el marco Xposed le permite modificar el aspecto y el comportamiento del sistema o la aplicación en el tiempo de ejecución, sin modificar ningún paquete de aplicaciones de Android (APK) o volver a parpadear.
  • logcat-color : una alternativa colorida y altamente configurable al comando adb logcat del SDK de Android.
  • Inspeckage : Inspeckage es una herramienta desarrollada para ofrecer un análisis dinámico de las aplicaciones de Android. Al aplicar enlaces a las funciones de la API de Android, Inspeckage lo ayudará a comprender qué hace una aplicación de Android en tiempo de ejecución.
  • Frida : el kit de herramientas funciona con un modelo cliente-servidor y le permite incorporar procesos en ejecución no solo en Android, sino también en iOS, Windows y Mac.
  • Diff-GUI : un marco web para comenzar a instrumentar con los módulos disponibles, engancharse a JavaScript nativo, inyectar JavaScript utilizando Frida.
  • AndBug : AndBug es un depurador dirigido a la máquina virtual Dalvik de la plataforma Android destinada a ingenieros y desarrolladores de reversa.
  • Cydia Substrate: Introspy-Android : herramienta de Blackbox para ayudar a comprender qué está haciendo una aplicación de Android en tiempo de ejecución y ayudar a identificar posibles problemas de seguridad.
  • Drozer : Drozer le permite buscar vulnerabilidades de seguridad en aplicaciones y dispositivos al asumir el rol de una aplicación e interactuar con la máquina virtual de Dalvik, los puntos finales de IPC de otras aplicaciones y el sistema operativo subyacente.
  • Comenzando una sesion
    • adb forward tcp:31415 tcp:31415
    • drozer console connect
  • Recuperar información del paquete
    • run app.package.list -f "app name"
    • run app.package.info -a "package name"
  • Identificando la superficie de ataque.
    • run app.package.attacksurface "package name"
  • Explotando actividades
    • run app.activity.info -a "package name" -u
    • run app.activity.start --component "package name" "component name"
  • Proveedor de contenido de explotación
    • run app.provider.info -a "package name"
    • run scanner.provider.finduris -a "package name"
    • run app.provider.query "uri"
    • run app.provider.update "uri" --selection "conditions" "selection arg" "column" "data"
    • run scanner.provider.sqltables -a "package name"
    • run scanner.provider.injection -a "package name"
    • run scanner.provider.traversal -a "package name"
  • Explotación de receptores de transmisión
    • run app.broadcast.info -a "package name"
    • run app.broadcast.send --component "package name" "component name" --extra "type" "key" "value"
    • run app.broadcast.sniff --action "action"
  • Servicio de explotacion
    • run app.service.info -a "package name"
    • run app.service.start --action "action" --component "package name" "component name"
    • run app.service.send "package name" "component name" --msg "what" "arg1" "arg2" --extra "type" "key" "value" --bundle-as-obj

Análisis de red y pruebas de servidor

  • Tcpdump - Una utilidad de captura de paquete de línea de comando.
  • Wireshark - Un analizador de paquetes de código abierto.
  • Capturas de paquetes en vivo en tiempo real
    • adb shell "tcpdump -s 0 -w - | nc -l -p 4444"
    • adb forward tcp:4444 tcp:4444
    • nc localhost 4444 | sudo wireshark -k -S -i –
  • Canape - Una herramienta de prueba de red para protocolos arbitrarios.
  • Mallory : una herramienta Man in The Middle (MiTM) que se usa para monitorear y manipular el tráfico en dispositivos móviles y aplicaciones.
  • Burp Suite - Burp Suite es una plataforma integrada para realizar pruebas de seguridad de aplicaciones.
  • Proxydroid - Aplicación Proxy Global para el sistema Android.

Omisión de detección de raíz y fijación de SSL

Bibliotecas de seguridad

  • PublicKey Pinning : la fijación en Android se puede realizar a través de un X509TrustManager personalizado. X509TrustManager debe realizar las comprobaciones habituales de X509 además de realizar la configuración de anclaje.
  • Fijación de Android : un proyecto de biblioteca independiente para la fijación de certificados en Android.
  • Java AES Crypto : una simple clase de Android para cifrar y descifrar cadenas, con el objetivo de evitar los errores clásicos que la mayoría de las clases sufren.
  • Proguard : ProGuard es un reductor, optimizador, ofuscador y preverificador de archivos de clase Java. Detecta y elimina clases, campos, métodos y atributos no utilizados.
  • Cifrado SQL : SQLCipher es una extensión de código abierto para SQLite que proporciona un cifrado AES transparente de 256 bits de archivos de base de datos.
  • Preferencias seguras : envoltorio de preferencias compartidas de Android que cifra las claves y los valores de las preferencias compartidas.
  • Intentos de confianza : biblioteca para interacciones de confianza flexibles entre aplicaciones de Android.

Pruebas de penetración de aplicaciones iOS

Acceso al sistema de archivos en iDevice

  • FileZilla : admite FTP, SFTP y FTPS (FTP sobre SSL / TLS).
  • Cyberduck - Libre navegador FTP, SFTP, WebDAV, S3, Azure y OpenStack para Mac y Windows.
  • itunnel : se utiliza para reenviar SSH a través de USB.
  • iFunbox : la herramienta de administración de archivos y aplicaciones para iPhone, iPad y iPod Touch.

Ingeniería inversa y análisis estático

  • otool : el comando otool muestra partes específicas de archivos de objetos o bibliotecas.
  • Clutch : descifró la aplicación y volcó el ID de paquete en un archivo binario o .ipa.
  • [Dumpdecrypted] ( https://github.com/stefanesser/dumpdecrypted ): vuelca los archivos mach-o descifrados de las aplicaciones cifradas de iPhone desde la memoria al disco. Esta herramienta es necesaria para que los investigadores de seguridad puedan mirar bajo el capó del cifrado.
    • iPod:~ root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Applications/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Scan.app/Scan
  • class-dump - Una utilidad de línea de comandos para examinar la información de tiempo de ejecución de Objective-C almacenada en archivos Mach-O.
  • [Weak Classdump] ( https://github.com/limneos/weak_classdump ): una secuencia de comandos de Cycript que genera un archivo de encabezado para la clase pasada a la función. Más útil cuando no puede classdump o dumpdecrypted, cuando los binarios están encriptados, etc.
    • iPod:~ root# cycript -p Skype weak_classdump.cy; cycript -p Skype
    • #cy weak_classdump_bundle([NSBundle mainBundle],"/tmp/Skype")
  • IDA Pro : IDA es un desensamblador y depurador multiprocesador alojado en Windows, Linux o Mac OS X que ofrece tantas funciones que es difícil describirlas todas.
  • HopperApp - Hopper es una herramienta de ingeniería inversa para OS X y Linux, que te permite desensamblar, descompilar y depurar tus ejecutables Intel Mac, Linux, Windows e iOS de 32 / 64bits.
  • Radare2 : Radare2 es un marco de ingeniería inversa similar a Unix y herramientas de línea de comando.
  • iRET : el kit de herramientas de ingeniería inversa de iOS es un kit de herramientas diseñado para automatizar muchas de las tareas comunes asociadas con las pruebas de penetración de iOS.

Análisis dinámico y de tiempo de ejecución

  • cycript : Cycript permite a los desarrolladores explorar y modificar aplicaciones en ejecución en iOS o Mac OS X utilizando una sintaxis de JavaScript y Objective-C ++ a través de una consola interactiva que presenta resaltado de sintaxis y finalización de pestañas.
    • Mostrar controlador de vista actualmente visible
      • cy# UIApp.keyWindow.rootViewController.visibleViewController
    • Mostrar controlador de vista en la parte superior de la pila de navegación
      • cy# UIApp.keyWindow.rootViewController.topViewController
    • Obtener una matriz de objetos existentes de una determinada clase
      • cy# choose(UIViewController)
    • Método de lista en tiempo de ejecución
      • cy# classname.messages o
    cy # function printMethods (className, isa) {var count = new new Type ("I"); var classObj = (isa! = undefined)? objc_getClass (className) -> isa: objc_getClass (className); los métodos var = class_copyMethodList (classObj, count); var methodsArray = []; para (var i = 0; i <* count; i ++) {var method = métodos [i]; methodsArray.push ({selector: method_getName (method), implementación: method_getImplementation (method)}); } libre (métodos); Métodos de retorno Array; }
      * `cy# printMethods("classname")`
  * Prints out all the instance variables
    * `cy# a=#0x15d0db80`
    * `cy# *a` or
    * ```cy# function tryPrintIvars(a){ var x={}; for(i in *a){ try{ x[i] = (*a)[i]; } catch(e){} } return x; }```
    * `cy# a=#0x15d0db80`
    * `cy# tryPrintIvars(a)`
  * Manipulating through property
    * `cy# [a pinCode]`
    * `cy# [a setPinCode: @"1234"]` or `cy# a.setPinCode= @"1234"`
  * Method Swizzling
    * `cy# [a isValidPin]`
    * `cy# classname.prototype.isValidPin = function(){return 1;}`
  • iNalyzer - AppSec Labs iNalyzer es un marco para manipular aplicaciones de iOS, manipular parámetros y métodos.
  • idb - idb es una herramienta para simplificar algunas tareas comunes para la investigación y el análisis de iOS.
  • snoop-it : una herramienta para ayudar a las evaluaciones de seguridad y el análisis dinámico de las aplicaciones iOS.
  • Introspy-iOS : herramienta de Blackbox para ayudar a comprender lo que hace una aplicación iOS en tiempo de ejecución y ayudar a identificar posibles problemas de seguridad.
  • gdb : una herramienta para realizar análisis de tiempo de ejecución de aplicaciones de IOS.
  • keychaindumper : una herramienta para verificar qué elementos de llavero están disponibles para un atacante una vez que se ha liberado el jail de un dispositivo iOS.
  • BinaryCookieReader : una herramienta para volcar todas las cookies del archivo binario Cookies.binarycookies.

Análisis de red y pruebas de servidor

  • Canape - Una herramienta de prueba de red para protocolos arbitrarios.
  • Mallory : una herramienta Man in The Middle (MiTM) que se usa para monitorear y manipular el tráfico en dispositivos móviles y aplicaciones.
  • Burp Suite - Burp Suite es una plataforma integrada para realizar pruebas de seguridad de aplicaciones.
  • Charles Proxy : proxy HTTP / monitor HTTP / proxy inverso que permite a un desarrollador ver todo el tráfico HTTP y SSL / HTTPS entre su máquina e Internet.

Omisión de detección de raíz y fijación de SSL

  • SSL Kill Switch 2 : herramienta de Blackbox para deshabilitar la validación de certificados SSL, incluida la identificación de certificados, en las aplicaciones iOS y OS X.
  • TrustMe de iOS : deshabilite los controles de confianza de los certificados en dispositivos iOS.
  • Xcon - Una herramienta para eludir la detección de Jailbreak.
  • [tsProtector] ( http://cydia.saurik.com/package/kr.typostudio.tsprotector8/ ) - Otra herramienta para omitir la detección de Jailbreak.

Bibliotecas de seguridad

  • PublicKey Pinning : la fijación de iOS se realiza a través de un NSURLConnectionDelegate. El delegado debe implementar connection: canAuthenticateAgainstProtectionSpace: and connection: didReceiveAuthenticationChallenge :. Dentro de la conexión: didReceiveAuthenticationChallenge :, el delegado debe llamar a SecTrustEvaluate para realizar las comprobaciones habituales de X509.
  • [OWASP iMAS] ( https://project-imas.github.com/ ) - iMAS es un proyecto de investigación colaborativa de MITRE Corporation que se centra en los controles de seguridad de código abierto de iOS.

Contribución

Sus contribuciones y sugerencias son bienvenidas.

Licencia

Licencia Creative Commons
Este trabajo está licenciado bajo una licencia internacional Creative Commons Attribution 4.0

Comentarios