🟠
Mobile Application Penetration Testing
  • Inicio
  • General
    • Metodologías y estándares
    • Recursos de aprendizaje
  • Android
    • Aplicaciones vulnerables
    • Emuladores
    • Root
    • Android Debug Bridge (adb)
    • Drozer
    • Obtención de app (APK)
    • Análisis estático
      • AndroidManifest.xml
      • Network security config
      • Directorios y archivos
      • Patrones y palabras claves en el código
      • Reversing
        • Aplicaciones nativas
          • Java / Kotlin
        • Aplicaciones híbridas
          • Flutter
          • React Native
          • Xamarin
        • Código nativo / bibliotecas compartidas
      • Ofuscación / Desofuscación
      • Automatizado
    • Análisis dinámico
      • Activities
      • Deep links
      • Content providers
      • Services
      • Anti-root
      • Captura de tráfico de red
        • Burp Suite
        • SSL Pinning
      • Almacenamiento de datos
        • SD card
        • SharedPreferences
        • Bases de datos
      • Logs
      • WebViews
      • Hooking
        • Frida
        • Objection
      • Memory dump
      • Automatizado
    • Firma de app
    • Herramientas
  • iOS
    • Aplicaciones vulnerables
    • Emuladores
    • Jailbreak
    • SSH (Secure SHell)
    • Transferencia de archivos
    • Análisis estático
      • Archivo IPA
      • Info.plist
      • Automatizado
    • Análisis dinámico
      • Anti-jailbreak
      • Biometría
      • Captura de tráfico de red
        • Burp Suite
        • SSL Pinning
      • Almacenamiento de datos
        • Archivos Property List (PList)
        • NSUserDefaults
        • Cache.db
        • Keychain
        • Screenshots
      • Frida
      • Logs
      • Hooking
    • Herramientas
  • Herramientas transversales
    • Frida
    • Frida Gadget
    • Objection
  • Checklist
    • Android application penetration testing
    • iOS application penetration testing
Con tecnología de GitBook
En esta página
  • Generación de llave
  • keytool
  • Firmado de app
  • jarsigner
  • apksigner
  • Optimización de APK
  • zipalign
  • Proceso de firmado de app

¿Te fue útil?

  1. Android

Firma de app

Generación de llave

keytool

keytool -keystore /tmp/app.keystore -genkey -keyalg RSA -keysize 2048 -dname "CN=app-cn, OU=app-ou, O=app-o, L=app-l, ST=app-st, C=app-c" -validity 180 -alias app-keystore

Firmado de app

jarsigner

jarsigner -keystore /tmp/app.keystore app-compiled.apk app-keystore

apksigner

# Creación de archivo con contraseña
echo "<password>" > password.txt

# Firmado de app
apksigner sign --ks /tmp/app.keystore --ks-pass file:password.txt --v1-signing-enabled true --v2-signing-enabled true app-compiled.apk

Optimización de APK

zipalign

Importante: se debe usar zipalign en uno de los dos puntos específicos del proceso de compilación de apps, según la herramienta de firma de apps que se utilice.

  • Si usas apksigner, zipalign solo debe realizarse antes de que se firme el archivo APK. Si firmas tu APK con un apksigner y realizas más cambios en el APK, tu firma se invalida.

  • Si usas jarsigner, zipalign solo debe realizarse después de que firme el archivo APK.

zipalign -p -f -v 4 app-compiled.apk app-aligned.apk
  • -p =alineación de páginas de memoria para archivos de objetos compartidos.

  • -f = Sobrescribe archivo de output (app-aligned.apk).

  • -v = modo verboso.

  • 4 = 4 bytes para sistemas de 32 y 64 bits.

Confirmación de alineación de app-aligned.apk.

zipalign -c -v 4 app-aligned.apk

Proceso de firmado de app

echo -e "password\npassword" > password.txt
cat password.txt | keytool -keystore /tmp/app.keystore -genkey -keyalg RSA -keysize 2048 -dname "CN=app-cn, OU=app-ou, O=app-o, L=app-l, ST=app-st, C=app-c" -validity 180 -alias app-keystore
zipalign -p -f -v 4 app-compiled.apk app-aligned.apk
echo password | apksigner sign --ks /tmp/app.keystore --out app-signed.apk app-aligned.apk
adb uninstall $(aapt dump badging app-compiled.apk | grep package | awk -F"'" '{print $2}')
adb install app-signed.apk
AnteriorAutomatizadoSiguienteHerramientas

Última actualización hace 13 días

¿Te fue útil?

https://github.com/MrW0l05zyn/pentesting/blob/master/mobile/sign_and_install_apk.sh