Можно ли вставить кейлоггер в изображение JPG?
Мне любопытно узнать, возможно ли создать файл jpg, содержащий кейлоггер, который будет выполняться при открытии изображения.
Я твердо верю, что это невозможно, однако я все больше слышу об этом. Какие-нибудь мысли?
4 ответа
Это возможно, когда в приложении есть дыра в безопасности, которую вы используете для открытия файла JPG (или любого другого файла), если это не поддельное изображение JPEG.
Итак, есть несколько сценариев:
работает поддельный JPEG
Неопытный пользователь скачал файл и считает, что это изображение (потому что значок выглядит как изображение, а ОС не показывает ваше расширение), но это может быть любой исполняемый файл (
.exe
,.vbs
,.msi
,.cmd
,.bat
, так далее.). Так что, если ваша операционная система не предупреждает вас, когда вы запускаете поддельный файл изображения, изображение может быть показано с установленным кейлоггером. Поэтому всегда проверяйте расширение, прежде чем открывать подозрительные файлы.открытие 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 (и еще одной).
Обычно это было бы невозможно. Файлы JPEG содержат только сжатые данные изображения; на самом деле они не содержат каких-либо частей, которые могли бы выполняться как программный код, и, конечно, не имели бы такого широкого доступа к системе.
Однако в программах есть ошибки. Более конкретно, некоторые из различных библиотек, используемых для распаковки данных JPEG, могут иметь ошибки, которые позволяют программе обманом запускать части данных в виде программного кода, часто используя переполнение буфера или аналогичную ошибку.
(Кроме того, некоторые другие форматы изображений плохо спроектированы и содержат исполняемый код по замыслу... два наиболее известных примера - это WMF и PDF.)
Это маловероятно.
Скорее всего, это исполняемый файл с таким именем: image1.jpg.exe
, Если расширения скрыты, вы увидите Image1.jpg
,
Программа имеет значок изображения jpg, и, запустив программу, она извлекает внедренное изображение во временную папку и запускает его, чтобы имитировать открываемое изображение и не вызывать подозрений. Затем программа устанавливает кейлоггер.
Но это не изображение со встроенным кейлоггером. Это программа, изображающая из себя изображение со встроенным кейлоггером, пытающаяся обманом заставить человека открыть изображение, точно так же, как создается шпионское ПО, чтобы заставить пользователя открыть его и установить самостоятельно.
В общем, когда вы отображаете какой-то файл, вы читаете его и обрабатываете содержимое, чтобы оно могло отображаться правильно (например, считывать данные изображения и вычислять каждый пиксель). Поскольку файл изображения полностью статичен, а содержащиеся в нем данные всегда похожи, крайне маловероятно, что данные, которые программа просмотра изображений ищет и обрабатывает (например, информация о цвете в определенных областях), могут быть выполнены как вредоносный код.