it-swarm-vi.com

Làm cách nào để tiêm mã thực thi, mã độc vào PDF, JPEG, MP3, v.v.?

  1. Tôi muốn biết nếu nói chung có thể tiêm mã thực thi vào các tệp như PDF hoặc JPEG, v.v., hoặc phải có một số lỗ hổng bảo mật trong ứng dụng?

  2. Và nếu vậy, làm thế nào một người sẽ làm điều đó?

Tôi thường nghe nói rằng mọi người bị nhiễm bằng cách mở các tệp PDF có chứa mã độc, đó là lý do tôi hỏi.

47
JohnnyFromBF

Phải có một số lỗ hổng bảo mật trong ứng dụng.

Hãy suy nghĩ giống như bất kỳ tệp .txt rất đơn giản và phổ biến nào: nếu bạn mở nó bằng trình xem hex hoặc với trình soạn thảo văn bản được thiết kế tốt, nó sẽ chỉ hiển thị nội dung tệp và ok.

Sau đó, suy nghĩ về việc xử lý tệp, bằng cách nào đó, thay vì chỉ hiển thị nội dung. Ví dụ, đọc tệp và diễn giải các giá trị của nó. Nếu nó không được thực hiện chính xác, điều này có thể dẫn đến việc thực thi các byte bên trong tệp.

Ví dụ: nếu bạn đã thiết kế ứng dụng của mình để tải toàn bộ tệp và hiển thị nó, nhưng bằng cách nào đó bạn có một biến trong chương trình chỉ chứa 256 byte. Điều này có thể khiến bạn đọc (và ghi vào bộ nhớ) nhiều byte hơn ứng dụng của bạn mong đợi. Và, hãy tưởng tượng, bên trong ứng dụng của bạn sẽ có bất kỳ lệnh nào nhảy đến vị trí NNNN trong bộ nhớ và thực thi những gì ở đó, nhưng vì vị trí bộ nhớ đó được ghi bằng dữ liệu mà chương trình của bạn không mong đợi, sau đó bạn sẽ thực thi một số mã không nên ở đó và được tải từ tệp của bạn ...

Đó là một cuộc tấn công tràn bộ đệm .

Điều tương tự cũng có thể xảy ra với pdf, jpg, mp3, v.v., nếu ứng dụng không tải dữ liệu chính xác.

Một khả năng khác: vì bất kỳ lý do nào khác, ứng dụng (hoặc một số DLL nó tải để đọc dữ liệu của bạn) thực thi một phần dữ liệu, thay vì đọc nó. Nếu bạn biết lệnh nào sẽ là lệnh (hoặc dữ liệu) sẽ kích hoạt hành vi này, bạn đặt các lệnh đó bên trong tệp dữ liệu (như tệp pdf) để ứng dụng thực thi hành vi đó.

Virus PDF : đọc trang web này: http://lwn.net/2001/0809/a/Adobe-pdf-vul.php để biết một chút về một loại vi-rút lây lan bằng cách sử dụng các tệp PDF.

32
woliveirajr

Có hai cách để một đoạn mã được thực thi: cố ý và vô ý.

Việc thực thi có chủ ý là khi một ứng dụng được đọc bởi một ứng dụng và ứng dụng thực hiện một cái gì đó dựa trên bất cứ điều gì mà tệp nói. Đọc tệp được gọi là phân tích tệp.

Việc thực thi không chủ ý là khi trình phân tích cú pháp đọc thứ gì đó không nên và thay vì phá vỡ, nó tiếp tục thực thi. Việc thực thi không chủ ý này là một lỗ hổng bởi vì nếu tôi có thể khiến trình phân tích cú pháp thực thi một cái gì đó, tôi có thể có thể khiến nó thực thi một cái gì đó độc hại.

Để trả lời câu hỏi của bạn:

  1. Là nó thường có thể? Tất cả phụ thuộc vào định dạng tệp và ứng dụng đọc nó. Một số tệp được thiết kế để cho phép các công cụ thực thi, một số thì không. Một số ứng dụng cho phép mã thực thi, một số khác thì không. Nếu ứng dụng không hỗ trợ nó, phải có lỗ hổng để thực thi.

  2. Tất cả phụ thuộc vào định dạng tệp, nhưng đó là thường bằng cách tìm ra lỗ hổng trong logic trình phân tích tệp.

16
Steve

Vấn đề chính với các tài liệu Word, Word, v.v. là các tiêu chuẩn hiện tại cho phép các macro và mã thực thi. (Theo tôi đây là một lỗ hổng chết người, nhưng sau đó tôi thích email chỉ được nhắn tin ...)

Đó là giai đoạn thực thi macro thường là mục tiêu để tấn công, vì nó cung cấp một cách để chạy mã. Kẻ tấn công chỉ cần tìm ra cách vượt qua các điều khiển hiện tại, có thể là tràn bộ đệm hoặc cơ chế tấn công khác.

8
Rory Alsop

Tôi không đồng ý với câu trả lời "Phải có một số lỗ hổng bảo mật trong ứng dụng"

Nói chung là không chính xác. Hầu hết các vi phạm phát sinh từ việc truy cập các tệp (không chỉ cung cấp/có chúng) và ám chỉ mọi người tin rằng họ truy cập một cái gì đó khác với những gì họ thực sự là, ví dụ, một hình ảnh lớn hơn trong khi đó là mã thực thi hoặc liên kết với một (được biết và tin cậy ) mô tả trang web trong khi nó liên kết với một trang khác, với ý định độc hại, v.v.

Tôi muốn giới thiệu để đọc: