it-swarm-eu.dev

Come iniettare codice eseguibile e dannoso in PDF, JPEG, MP3, ecc.?

  1. Volevo sapere se è generalmente possibile iniettare codice eseguibile in file come PDF, JPEG, ecc., O deve esserci qualche tipo di falla nella sicurezza dell'applicazione?

  2. E se sì, come si farebbe?

Sento spesso che le persone vengono infettate aprendo PDF che contengono codice dannoso, ecco perché lo chiedo.

47
JohnnyFromBF

Ci deve essere un buco nella sicurezza nell'applicazione.

Pensa a qualsiasi file .txt molto semplice e comune: se lo apri con un visualizzatore esadecimale o con un editor di textpad ben progettato, dovrebbe visualizzare solo il contenuto del file e ok.

Quindi pensa a elaborare il file, in qualche modo, invece di mostrare semplicemente il contenuto. Ad esempio, leggendo il file e interpretando i suoi valori. Se non viene eseguito correttamente, ciò potrebbe comportare l'esecuzione dei byte all'interno del file.

Ad esempio: se hai progettato la tua app per caricare l'intero file e mostrarlo, ma in qualche modo hai una variabile all'interno del tuo programma che contiene solo 256 byte. Questo potrebbe farti leggere (e scrivere in memoria) più byte del previsto dalla tua app. E, immagina, all'interno della tua app ci sarebbe un comando per passa alla posizione NNNN in memoria ed esegui ciò che c'è, ma poiché quella posizione di memoria è stata scritta con dati che il tuo programma non si aspettava, quindi eseguirai del codice che non dovrebbe essere presente ed è stato caricato dal tuo file ...

Quello era un attacco buffer overflow .

Lo stesso potrebbe accadere con pdf, jpg, mp3, ecc. Se l'app non caricasse correttamente i dati.

Un'altra possibilità: per qualsiasi altro motivo, l'app (o qualche DLL che carica per leggere i tuoi dati) esegue una parte dei dati, invece di leggerli. Se sai quale sarebbe il comando (o i dati) che attiveranno questo comportamento, inserirai quei comandi nel file di dati (come il file pdf) in modo che l'app lo esegua.

Virus PDF : leggi questo sito: http://lwn.net/2001/0809/a/Adobe-pdf-vul.php per conoscere un po 'di un virus che si diffonde usando PDF.

32
woliveirajr

Esistono due modi per eseguire un pezzo di codice: intenzionalmente e non intenzionalmente.

L'esecuzione intenzionale è quando un file viene letto da un'applicazione e l'applicazione fa qualcosa in base a ciò che dice il file. La lettura del file viene chiamata analisi del file.

L'esecuzione involontaria avviene quando il parser legge qualcosa che non dovrebbe, e invece di rompersi, continua l'esecuzione. Questa esecuzione involontaria è una vulnerabilità perché se riesco a far eseguire al parser qualcosa, probabilmente riesco a farlo eseguire qualcosa di dannoso.

Per rispondere alle tue domande:

  1. È generalmente possibile? Tutto dipende dal formato del file e dall'applicazione che lo legge. Alcuni file sono progettati per consentire elementi eseguibili, altri no. Alcune applicazioni consentono l'esecuzione del codice, altre no. Se l'applicazione non la supporta, è necessario che sia presente una vulnerabilità da eseguire.

  2. Tutto dipende dal formato del file, ma è di solito trovando un difetto nella logica del parser di file.

16
Steve

Il problema chiave con pdf, documenti Word ecc. È che gli standard attuali consentono macro e codice eseguibile. (Secondo me questo è un difetto fatale, ma poi mi piace che le e-mail siano solo di testo ...)

È quella fase di esecuzione delle macro che di solito è l'obiettivo dell'attacco, in quanto fornisce un modo per eseguire il codice. L'attaccante deve solo capire come superare i controlli presenti, che possono essere buffer overflow o altri meccanismi di attacco.

8
Rory Alsop

Non sono d'accordo con la risposta "Deve esserci un buco nella sicurezza nell'applicazione"

È generalmente errato. La maggior parte delle violazioni deriva dall'accesso ai file (non solo dalla loro fornitura/disponibilità) e allude alle persone di credere che accedano a qualcosa di diverso da ciò che sono realmente, ad esempio un'immagine più grande mentre è un codice eseguibile o un collegamento con uno (noto e attendibile ) descrizione del sito mentre si collega a un altro, con intenzioni dannose, ecc.

Consiglierei di leggere: