it-swarm-id.com

Bagaimana cara menyuntikkan kode yang dapat dieksekusi dan berbahaya ke dalam PDF, JPEG, MP3, dll.?

  1. Saya ingin tahu apakah umumnya memungkinkan untuk menyuntikkan kode yang dapat dieksekusi ke file seperti PDF atau JPEG dll, atau haruskah ada semacam celah keamanan dalam aplikasi?

  2. Dan jika demikian, bagaimana kita melakukan itu?

Saya sering mendengar bahwa orang terinfeksi dengan membuka PDF yang berisi kode berbahaya, itulah sebabnya saya bertanya.

47
JohnnyFromBF

Harus ada lubang keamanan dalam aplikasi.

Pikirkan seperti file .txt yang sangat sederhana dan umum: jika Anda membukanya dengan hex viewer, atau dengan editor textpad yang dirancang dengan baik, itu hanya akan menampilkan konten file, dan ok.

Kemudian pikirkan tentang pemrosesan file, entah bagaimana, alih-alih hanya menunjukkan isinya. Misalnya, membaca file dan menafsirkan nilainya. Jika tidak dilakukan dengan benar, ini dapat menyebabkan eksekusi byte yang ada di dalam file.

Misalnya: jika Anda telah merancang aplikasi untuk memuat seluruh file dan menunjukkannya, tetapi entah bagaimana Anda memiliki variabel di dalam program Anda yang hanya menampung 256 byte. Ini bisa membuat Anda membaca (dan menulis ke memori) lebih banyak byte daripada yang diharapkan aplikasi Anda. Dan, bayangkan, di dalam aplikasi Anda akan ada perintah untuk lompat ke posisi NNNN dalam memori dan jalankan apa yang ada, tetapi karena posisi memori itu ditulis dengan data yang tidak diharapkan oleh program Anda, maka Anda akan menjalankan beberapa kode yang seharusnya tidak ada di sana, dan diambil dari file Anda ...

Itu adalah serangan buffer overflow .

Hal yang sama dapat terjadi dengan pdf, jpg, mp3, dll, jika aplikasi tidak memuat data dengan benar.

Kemungkinan lain: karena alasan lain, aplikasi (atau beberapa DLL itu dimuat untuk membaca data Anda) mengeksekusi beberapa bagian dari data, alih-alih membacanya. Jika Anda tahu apa yang akan menjadi perintah (atau data) yang akan memicu perilaku ini, Anda menempatkan perintah-perintah itu di dalam file data (seperti file pdf) sehingga aplikasi menjalankannya.

Virus PDF : baca situs ini: http://lwn.net/2001/0809/a/Adobe-pdf-vul.php untuk mengetahui sedikit tentang satu virus yang menyebar menggunakan file PDF.

32
woliveirajr

Ada dua cara untuk mengeksekusi kode: sengaja dan tidak sengaja.

Eksekusi yang disengaja adalah ketika file dibaca oleh aplikasi dan aplikasi melakukan sesuatu berdasarkan apa pun file tersebut katakan. Membaca file disebut parsing file.

Eksekusi yang tidak disengaja adalah ketika parser membaca sesuatu yang tidak seharusnya, dan bukannya melanggar, itu terus dieksekusi. Eksekusi yang tidak disengaja ini adalah kerentanan karena jika saya bisa membuat parser untuk mengeksekusi sesuatu, saya mungkin bisa mendapatkannya untuk mengeksekusi sesuatu yang berbahaya.

Untuk menjawab pertanyaan Anda:

  1. Apakah secara umum mungkin? Itu semua tergantung pada format file dan aplikasi yang membacanya. Beberapa file dirancang untuk memungkinkan hal-hal yang dapat dieksekusi, beberapa tidak. Beberapa aplikasi memungkinkan untuk mengeksekusi kode, yang lain tidak. Jika aplikasi tidak mendukungnya, harus ada kerentanan yang harus dieksekusi.

  2. Itu semua tergantung pada format file, tapi biasanya dengan menemukan cacat dalam logika parser file.

16
Steve

Masalah utama dengan pdf, dokumen Word dll adalah bahwa standar saat ini memungkinkan makro dan kode yang dapat dieksekusi. (Menurut saya ini adalah kesalahan fatal, tapi kemudian saya suka email hanya teks ...)

Tahap eksekusi makro itulah yang biasanya menjadi target serangan, karena menyediakan cara untuk menjalankan kode. Penyerang hanya perlu mencari cara untuk melewati kontrol yang ada, yang mungkin buffer overflow atau mekanisme serangan lainnya.

8
Rory Alsop

Saya tidak setuju dengan jawabannya "Pasti ada celah keamanan dalam aplikasi"

Ini umumnya salah. Sebagian besar pelanggaran muncul dari mengakses file (tidak hanya menyediakan/memiliki mereka) dan menyinggung orang untuk percaya bahwa mereka mengakses sesuatu yang berbeda dari apa mereka sebenarnya, misalnya, gambar yang lebih besar saat kode dieksekusi atau tautan dengan yang (dikenal dan dipercaya) ) deskripsi situs sementara tautannya ke yang lain, dengan maksud jahat, dll.

Saya akan merekomendasikan untuk membaca: