是否可以将键盘记录器嵌入到 jpg 图像中?

是否可以将键盘记录器嵌入到 jpg 图像中?

我很好奇,想知道是否有可能制作一个包含键盘记录器的 jpg 文件,该键盘记录器会在打开图像时执行。

我坚信这样的事情是不可能发生的,但是我听到越来越多的传言。有什么看法吗?

答案1

当您用来打开 JPG 文件(或任何其他文件)的应用程序存在安全漏洞时,这种情况就有可能发生,除非它是假的 JPEG 图像。

因此,有以下几种情况:

  • 运行假 JPEG

    缺乏经验的用户下载了文件并认为它是图像(因为图标看起来像图像,而操作系统不会显示扩展名),但它可能是任何可执行文件(.exe.vbs.msi.cmd.bat等)。因此,如果您的操作系统在您运行假图像文件时没有警告您,则该图像可能会在安装了键盘记录程序的情况下显示。因此,在打开可疑文件之前,请务必检查您的扩展名。

  • 打开 JPEG

    任何媒体文件(和其他文件)都可能携带一些旨在欺骗特定应用程序的注入代码。它们在解析某些数据(例如 EXIF)时可能存在一些缺陷。因此,如果应用程序存在错误,注入的数据可能会诱使应用程序运行一些任意代码。

    例如:漏洞利用:W32/JPG 漏洞,漏洞利用:W32/JPG 漏洞,MS04-028 漏洞利用

  • 从服务器加载 JPEG

    您可以将一些编程代码注入 JPEG,这样一旦它被 Web 应用程序解析,它就可以执行给定语言中的任何代码。例如,JPEG 文件可以包含特殊标签(<?php?>),当被来自 Web 托管公司的编码不良的应用程序解析时(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 脚本。请注意,上图只是示例,它不会执行任何操作。

    来源:代码注入——JPEG 图像中携带的简单 PHP 病毒

  • 加载非 JPEG 文件

    当您看到以下链接时,例如:http://www.example.com/foo.jpeg,您会认为这是一张图片,但其实并非如此。这完全取决于其 MIME 类型,通过加载它,您实际上可以加载脚本(例如 Javascript),并且在易受攻击/较旧的浏览器上,可以安装键盘记录器。另一方面,您的浏览器不必太旧才能实现这一点。

    例如,你访问的页面是假银行网站,也可能是真正的银行(在某个论坛上有人上传了假的 JPEG跨站脚本)。因此,要实现 XSS Keylogger,您只需要document.onkeypress+ AJAX 调用。请参阅:XSS 键盘记录器

    另请检查:XSS 过滤规避备忘录

  • 加载 JPEG,即 SVG

    有时,当您加载媒体文件并且网络浏览器将其识别为不同的图像时,它会恢复到被识别的格式。您可以在 SVG 文件中执行的操作是,您可以将 html 和 JavaScript 包含在其中(如果您的网络浏览器允许),请参阅:在 SVG 中创建表格(和另一个)。

答案2

通常情况下这是不可能的。JPEG 文件仅包含压缩的图像数据;它们实际上不包含任何可作为程序代码运行的部分,当然也不包含任何可以给予系统如此广泛访问权限的内容。

然而,程序有缺陷。更具体地说,一些用于解压缩 JPEG 数据的各种库可能存在漏洞,允许程序被诱骗将部分数据作为程序代码运行,通常使用缓冲区溢出或类似的错误。


(此外,一些其他图像格式设计不佳在设计上包含可运行的代码……两个比较著名的例子是沃姆福和 PDF。

答案3

这不太可能。

更可能的是,这是一个可执行文件,其名称如下:image1.jpg.exe。如果扩展名被隐藏,您将看到Image1.jpg

该程序的图标是 jpg 图像,启动程序后,它会将嵌入的图像提取到临时文件夹并启动它,以模拟正在打开的图像,而不会引起怀疑。然后,程序会安装键盘记录器。

但这不是嵌入键盘记录器的图像。它是一个伪装成嵌入键盘记录器的图像的程序,试图诱骗人们打开图像,就像间谍软件诱骗用户打开并自行安装一样。

答案4

一般来说,当您显示某种文件时,您会读取它并处理内容,以便正确显示(例如,读取图像数据并计算每个像素)。由于图像文件完全是静态的,并且其中包含的数据始终相似,因此图像查看器查找和处理的数据(如某些区域的颜色信息)极不可能作为恶意代码执行。

相关内容