馃煚
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
  • General
  • Manual
  • Objection

驴Te fue 煤til?

  1. iOS
  2. An谩lisis din谩mico
  3. Almacenamiento de datos

NSUserDefaults

General

NSUserDefaults es uno de los m茅todos m谩s comunes para guardar las preferencias y propiedades del usuario. Almacena los datos en formato de archivo Property List (PList) en la carpeta de preferencias de la aplicaci贸n m贸vil.

Manual

Directorio de almacenamiento.

/var/mobile/Containers/Data/Application/<app-ID>/Library/Preferences/

Conversi贸n de formato de archivo.

# Linux
## conversi贸n a formato XML
plistutil -i <app-package-name>.plist -o nsuserdefaults.xml

# MacOS / iOS
## conversi贸n a formato XML
plutil -convert xml1 <app-package-name>.plist && cat <app-package-name>.plist > nsuserdefaults.xml
## conversi贸n a formato JSON
plutil -convert json <app-package-name>.plist && cat <app-package-name>.json > nsuserdefaults.json && rm <app-package-name>.json

Exportar archivo NSUserDefaults desde el dispositivo.

scp <user>@<device-ip-address>:/var/mobile/Containers/Data/Application/<app-ID>/Library/Preferences/<app-package-name>.plist <destination-directory>

B煤squeda de informaci贸n dentro del archivo NSUserDefaults.

# Expresiones regulares
grep -Eorin "<regex>" nsuserdefaults.xml
# B煤squeda por palabras claves
grep -Eorin "<word-1>|<word-2>|<word-3>" nsuserdefaults.xml
# B煤squeda por nombres de "key"
grep -Ei "<key-1>|<key-2>|<key-3>" -A 1 nsuserdefaults.xml

Objection

Visualizar NSUserDefaults de una aplicaci贸n.

ios nsuserdefaults get

Exportar NSUserDefaults de una aplicaci贸n.

objection --gadget <app-package-name> run "ios nsuserdefaults get" > nsuserdefaults.txt
objection --gadget <process-ID> run "ios nsuserdefaults get" > nsuserdefaults.txt

Filtrar datos del NSUserDefaults de una aplicaci贸n.

objection --gadget <app-package-name> run "ios nsuserdefaults get" | grep -Ei "<word-1>|<word-2>|<word-3>"
objection --gadget <process-ID> run "ios nsuserdefaults get" | grep -Ei "<word-1>|<word-2>|<word-3>"
AnteriorArchivos Property List (PList)SiguienteCache.db

脷ltima actualizaci贸n hace 1 a帽o

驴Te fue 煤til?