Мне любопытно узнать, возможно ли создать файл jpg, содержащий кейлоггер, который будет выполняться при открытии изображения.

Я твердо верю, что это невозможно, однако я все больше слышу об этом. Какие-нибудь мысли?

4 ответа4

6

Это возможно, когда в приложении есть дыра в безопасности, которую вы используете для открытия файла JPG (или любого другого файла), если только это не поддельное изображение JPEG.

Итак, есть несколько сценариев:

  • работает поддельный JPEG

    Non-опытный пользователь скачал файл и считает , что это изображение (так как иконка выглядит как изображение , и операционная система не покажет вам расширение), но это может быть любой исполняемый файл .exe .vbs .msi .cmd и т. д.). Так что, если ваша операционная система не предупреждает вас, когда вы запускаете поддельный файл изображения, изображение может быть показано с установленным кейлоггером. Поэтому всегда проверяйте расширение, прежде чем открывать подозрительные файлы.

  • открытие JPEG

    Любой медиа-файл (и другие) может содержать некоторый внедренный код, предназначенный для обмана конкретных приложений. Они могут иметь некоторые недостатки в разборе некоторых данных (например, в EXIF). Таким образом, если приложение содержит ошибки, введенные данные могут обмануть приложение для запуска произвольного кода.

    Например: эксплойт: уязвимость W32/JPG, эксплойт: уязвимость W32/JPG, эксплойт MS04-028

  • загрузка JPEG с сервера

    Вы можете вставить некоторый программный код в JPEG, поэтому после его анализа веб-приложением он может выполнить любой код на данном языке. Например, файл JPEG может содержать специальные теги (<?php ?>) и при анализе плохо закодированным приложением от веб-хостинговой компании (file_get_contents() , fopen() , readfile()) оно может стереть вашу учетную запись www.

    Пример JPEG: php-logo-virus.jpg

    который имеет этот код, встроенный в файл:

    ÿØÿàJFIF``ÿáfExifMM* éV@HQQQ<style>body{font-size: 0;} h1{font-size: 12px !important;}</style><h1><?php echo "<hr />THIS IMAGE COULD ERASE YOUR WWW ACCOUNT, it shows you the PHP info instead...<hr />"; phpinfo(); __halt_compiler(); ?></h1>

    Поэтому, как только вы откроете изображение выше, добавьте view-source: перед адресом, чтобы вы увидели внедренный PHP-скрипт. Обратите внимание, что приведенное выше изображение является только примером, и оно ничего не сделает.

    Источник: Внедрение кода - простой PHP-вирус, переносимый в формате JPEG

  • загрузка файла JPEG, который не является файлом JPEG

    Когда вы видите ссылку, такую как: http://www.example.com/foo.jpeg , вы думаете, что это изображение, но это не обязательно. Все зависит от его типа MIME, и, загрузив его, вы можете загрузить скрипт (например, Javascript), а в уязвимом / старом браузере установить кейлоггер. С другой стороны, ваш браузер не должен быть старым, чтобы достичь этого.

    Например, вы посещаете страницу, которая является веб-сайтом фальшивого банка или может быть реальным банком (на каком-то форуме, где кто-то загрузил фальшивый JPEG через XSS). Поэтому для реализации XSS Keylogger вам просто нужны вызовы document.onkeypress + AJAX. Смотрите: XSS Keylogger

    Также проверьте: XSS Filter Evasion Шпаргалка

  • загрузка JPEG, который является SVG

    Иногда, когда вы загружаете медиа-файл и веб-браузер распознает его как другое изображение, оно возвращается к формату, который был распознан. А что вы можете делать в файлах SVG, вы можете включить в него HTML и JavaScript (если ваш веб-браузер позволяет это), см. Создание таблицы в SVGеще одной).

3

Обычно это было бы невозможно. Файлы JPEG содержат только сжатые данные изображения; на самом деле они не содержат никаких частей, которые могли бы выполняться как программный код, и, конечно, не имели бы такого широкого доступа к системе.

Однако в программах есть ошибки. Более конкретно, некоторые из различных библиотек, используемых для распаковки данных JPEG, могут иметь ошибки, которые позволяют программе обманом запускать части данных в виде программного кода, часто используя переполнение буфера или аналогичную ошибку.


(Кроме того, некоторые другие форматы изображений плохо спроектированы и содержат исполняемый код по конструкции ... два наиболее известных примера - это WMF и PDF.)

2

Это маловероятно.

Более вероятно, что это исполняемый файл с именем, например: image1.jpg.exe . Если расширения скрыты, вы увидите Image1.jpg .

У программы есть значок изображения jpg, и, запустив программу, она извлекает внедренное изображение во временную папку и запускает его, чтобы имитировать открываемое изображение и не вызывать подозрений. Затем программа устанавливает кейлоггер.

Но это не изображение со встроенным кейлоггером. Это программа, изображающая из себя изображение со встроенным кейлоггером, пытающаяся обманом заставить человека открыть изображение, точно так же, как и шпионское ПО, заставляющее пользователя открывать его и устанавливать самостоятельно.

0

В общем, когда вы отображаете какой-то файл, вы читаете его и обрабатываете содержимое, чтобы оно могло отображаться правильно (например, считывать данные изображения и вычислять каждый пиксель). Поскольку файл изображения полностью статичен и содержащиеся в нем данные всегда похожи, крайне маловероятно, что данные, которые программа просмотра изображений ищет и обрабатывает (например, информация о цвете в определенных областях), могут быть выполнены как вредоносный код.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .