iOS UIPasteboard

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Lo scambio di dati all'interno e tra le applicazioni sui dispositivi iOS è facilitato dal meccanismo UIPasteboard, che è diviso in due categorie principali:

  • Pasteboard generale a livello di sistema: Questo viene utilizzato per condividere dati con qualsiasi applicazione ed è progettato per persistere i dati attraverso riavvii del dispositivo e disinstallazioni dell'app, una funzionalità disponibile da iOS 10.

  • Pasteboard personalizzato / con nome: Questi sono specifici per la condivisione di dati all'interno di un'app o con un'altra app che condivide lo stesso ID di team e non sono progettati per persistere oltre la durata del processo dell'applicazione che li crea, seguendo le modifiche introdotte in iOS 10.

Le considerazioni sulla sicurezza giocano un ruolo significativo nell'utilizzo dei pasteboard. Ad esempio:

  • Non esiste un meccanismo per gli utenti per gestire le autorizzazioni dell'app per accedere al pasteboard.

  • Per mitigare il rischio di monitoraggio non autorizzato in background del pasteboard, l'accesso è limitato quando l'applicazione è in primo piano (da iOS 9).

  • L'uso dei pasteboard con nome persistenti è sconsigliato a favore dei contenitori condivisi a causa di preoccupazioni sulla privacy.

  • La funzionalità Universal Clipboard introdotta con iOS 10, che consente di condividere contenuti tra dispositivi tramite il pasteboard generale, può essere gestita dai sviluppatori per impostare la scadenza dei dati e disabilitare il trasferimento automatico dei contenuti.

Assicurarsi che le informazioni sensibili non vengano memorizzate per errore sul pasteboard generale è cruciale. Inoltre, le applicazioni dovrebbero essere progettate per prevenire l'abuso dei dati del pasteboard generale per azioni non intenzionali e si incoraggia gli sviluppatori ad implementare misure per impedire la copia di informazioni sensibili negli appunti.

Analisi Statica

Per l'analisi statica, cerca nel codice sorgente o binario:

  • generalPasteboard per identificare l'uso del pasteboard generale a livello di sistema.

  • pasteboardWithName:create: e pasteboardWithUniqueName per la creazione di pasteboard personalizzati. Verifica se è abilitata la persistenza, anche se è deprecata.

Analisi Dinamica

L'analisi dinamica coinvolge l'hooking o il tracciamento di metodi specifici:

  • Monitora generalPasteboard per l'uso a livello di sistema.

  • Traccia pasteboardWithName:create: e pasteboardWithUniqueName per le implementazioni personalizzate.

  • Osserva le chiamate di metodo deprecate setPersistent: per controllare le impostazioni di persistenza.

Dettagli chiave da monitorare includono:

  • Nomi del pasteboard e contenuti (ad esempio, controllare stringhe, URL, immagini).

  • Numero di elementi e tipi di dati presenti, sfruttando controlli standard e personalizzati sui tipi di dati.

  • Opzioni di scadenza e solo locale ispezionando il metodo setItems:options:.

Un esempio di utilizzo di uno strumento di monitoraggio è il monitor del pasteboard di objection, che interroga il generalPasteboard ogni 5 secondi per i cambiamenti e restituisce i nuovi dati.

Ecco un semplice esempio di script JavaScript, ispirato all'approccio di objection, per leggere e registrare i cambiamenti dal pasteboard ogni 5 secondi:

const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
var items = "";
var count = Pasteboard.changeCount().toString();

setInterval(function () {
const currentCount = Pasteboard.changeCount().toString();
const currentItems = Pasteboard.items().toString();

if (currentCount === count) { return; }

items = currentItems;
count = currentCount;

console.log('[* Pasteboard changed] count: ' + count +
' hasStrings: ' + Pasteboard.hasStrings().toString() +
' hasURLs: ' + Pasteboard.hasURLs().toString() +
' hasImages: ' + Pasteboard.hasImages().toString());
console.log(items);

}, 1000 * 5);

Riferimenti

Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated