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

44
  1. Volevo sapere se è generalmente possibile iniettare codice eseguibile in file come PDF o JPEG ecc. o deve esserci un qualche tipo di buco di sicurezza nell'applicazione?

  2. E se sì, come si farebbe?

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

    
posta JohnnyFromBF 13.10.2011 - 20:59
fonte

4 risposte

31

Ci deve essere un po 'di sicurezza nell'applicazione.

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

Quindi pensa di elaborare il file, in qualche modo, invece di mostrare solo il contenuto. Ad esempio, leggendo il file e interpretando i suoi valori. Se non viene eseguito correttamente, ciò potrebbe comportare l'esecuzione dei byte che si trovano 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 di quanto la tua app si aspettasse. E, immagina, all'interno della tua app ci sarebbe un qualsiasi comando per passare alla posizione NNNN in memoria ed eseguire ciò che è , ma dal momento che quella posizione di memoria è stata scritta con dati che il tuo programma non si aspettava, allora tu eseguirò del codice che non dovrebbe essere lì, ed è stato caricato dal tuo file ...

Questo è stato un buffer overflow attacco.

Lo stesso potrebbe accadere con pdf, jpg, mp3, ecc., se l'app non ha caricato correttamente i dati.

Un'altra possibilità: per qualsiasi altra ragione, l'app (o qualche DLL che carica per leggere i tuoi dati) esegue parte dei dati, invece di leggerli. Se sai quale sarebbe il comando (oi dati) che scatenerebbe questo comportamento, metti questi comandi all'interno del file di dati (come il file pdf) in modo che l'app lo esegua.

virus PDF : leggi questo sito: link per sapere un po 'su un virus che si diffuse usando i file PDF.

    
risposta data 13.10.2011 - 21:33
fonte
16

Ci sono 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 interromperlo, continua ad essere eseguito. Questa esecuzione involontaria è una vulnerabilità perché se riesco a far sì che il parser esegua qualcosa, posso probabilmente farlo eseguire qualcosa di malevolo.

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 cose eseguibili, altri no. Alcune applicazioni consentono l'esecuzione del codice, altre no. Se l'applicazione non lo supporta, deve essere presente una vulnerabilità da eseguire.

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

risposta data 13.10.2011 - 21:32
fonte
8

Il problema principale con i documenti PDF, 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 testo ...)

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

    
risposta data 13.10.2011 - 22:36
fonte
3

Non sono d'accordo con la risposta " Ci deve essere un buco di sicurezza nell'applicazione "

Generalmente non è corretto. La maggior parte delle violazioni nasce dall'accesso ai file (non solo fornendo / avendoli) e alludendo le persone a credere che accedono a qualcosa di diverso da ciò che sono realmente, per esempio un'immagine più grande mentre è un codice eseguibile o un collegamento con uno (noto e fidato) ) descrizione del sito mentre si collega a un altro, con intenzioni malevole, ecc.

Consiglierei di leggere:

risposta data 02.11.2011 - 08:45
fonte

Leggi altre domande sui tag