Ist es möglich, einen Keylogger in ein JPG-Bild einzubetten?


0

Ich bin gespannt, ob es möglich ist, eine JPG-Datei zu erstellen, die einen Keylogger enthält, der ausgeführt wird, wenn das Bild geöffnet wird.

Ich glaube fest daran, dass so etwas nicht möglich ist, aber ich höre immer mehr Gerüchte darüber. Irgendwelche Gedanken?


Antworten:


6

Es ist möglich, dass die Anwendung, mit der Sie JPG-Dateien (oder andere Dateien) öffnen, eine Sicherheitslücke aufweist, es sei denn, es handelt sich um gefälschte JPEG-Bilder.

Es gibt also einige Szenarien:

  • laufendes gefälschtes JPEG

    Nicht-erfahrene Benutzer - Datei heruntergeladen und denkt , dass es das Bild ist (weil das Symbol wie ein Bild aussieht und OS nicht zeigen Sie Erweiterung), aber es könnte eine beliebige ausführbare Datei (sein .exe, .vbs, .msi, .cmd, .bat, etc.). Wenn Ihr Betriebssystem Sie also nicht warnt, wenn Sie eine gefälschte Image-Datei ausführen, wird das Image möglicherweise mit installiertem Keylogger angezeigt. Überprüfen Sie daher immer Ihre Erweiterung, bevor Sie verdächtige Dateien öffnen.

  • JPEG öffnen

    Jede Mediendatei (und andere) kann Code enthalten, mit dem bestimmte Anwendungen ausgetrickst werden. Sie könnten einige Fehler beim Parsen einiger Daten aufweisen (z. B. in EXIF). Wenn die Anwendung fehlerhaft ist, können die eingespeisten Daten die Anwendung dazu verleiten, beliebigen Code auszuführen.

    Beispiel: Exploit: W32 / JPG-Sicherheitsanfälligkeit, Exploit: W32 / JPG-Sicherheitsanfälligkeit, MS04-028-Exploit

  • Laden von JPEG vom Server

    Sie können Programmcode in JPEG einfügen, sodass nach der Analyse durch die Webanwendung jeder Code in der angegebenen Sprache ausgeführt werden kann. Zum Beispiel kann JPEG - Datei enthält spezielle Tags ( <?php, ?>) und wenn sie durch schlecht codierte Anwendung aus dem Web - Hosting - Unternehmen analysiert ( file_get_contents(), fopen(), readfile()), könnte es Ihr www - Konto zu löschen.

    Beispiel JPEG: php-logo-virus.jpg

    welcher diesen Code in die Datei eingebettet hat:

    ÿØÿà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>

    Wenn Sie also das Bild oben öffnen, fügen Sie es view-source:vor der Adresse hinzu, damit Sie das eingefügte PHP-Skript sehen. Beachten Sie, dass das obige Bild nur ein Beispiel ist und nichts bewirkt.

    Quelle: Code-Injection - ein einfacher PHP-Virus, der in einem JPEG-Bild enthalten ist

  • Laden einer JPEG-Datei, die keine JPEG-Datei ist

    Wenn Sie den Link wie: sehen http://www.example.com/foo.jpeg, denken Sie, es ist ein Bild, aber es muss nicht. Es hängt alles von seinem MIME-Typ ab. Wenn Sie ihn laden, können Sie das Skript (z. B. JavaScript) tatsächlich laden und in einem anfälligen / alten Browser einen Keylogger installieren. Andererseits muss Ihr Browser nicht alt sein, um dies zu erreichen.

    Zum Beispiel besuchen Sie die Seite, die eine gefälschte Bank-Website ist oder eine echte Bank sein kann (in einigen Foren hat jemand eine gefälschte JPEG- Datei über XSS hochgeladen ). Um XSS Keylogger zu implementieren, benötigen Sie lediglich document.onkeypress+ AJAX-Aufrufe. Siehe: XSS Keylogger

    Überprüfen Sie auch: XSS Filter Evasion Cheat Sheet

  • Laden von JPEG, das SVG ist

    Wenn Sie eine Mediendatei laden und der Webbrowser erkennt, dass es sich um ein anderes Bild handelt, wird manchmal auf das Format zurückgegriffen, das erkannt wurde. Und was Sie in SVG-Dateien tun können, können Sie HTML und JavaScript einbinden (wenn Ihr Webbrowser dies zulässt), siehe: Erstellen einer Tabelle in SVG (und einer anderen ).


1
Schön bedeckt und beschafft. Mit Sicherheit ein gutes Argument für das Sandboxen des Browsers.
Frank Thomas

3

Normalerweise wäre es nicht möglich. JPEG-Dateien enthalten nur komprimierte Bilddaten. Sie enthalten eigentlich keine Teile, die als Programmcode ausgeführt würden, und schon gar nicht etwas, das einen so breiten Zugriff auf das System ermöglichen würde.

Programme haben jedoch Fehler. Insbesondere können einige der verschiedenen Bibliotheken, die zum Dekomprimieren von JPEG-Daten verwendet werden, Fehler aufweisen, die es dem Programm ermöglichen, Teile der Daten als Programmcode auszuführen, häufig unter Verwendung eines Pufferüberlaufs oder eines ähnlichen Fehlers.


(Auch einige andere sind Bildformate schlecht konzipiert haben runnable Code enthalten , die durch Design ... zwei der besser bekannten Beispiele sind WMF und PDF.)


Hmm. Code-Injection - ein einfacher PHP-Virus, der in einem JPEG-Bild enthalten ist - ein echter Exploit, der in ein Bild eingebettet ist ...
DavidPostill

2

Das ist unwahrscheinlich.

Es ist wahrscheinlicher, dass dies eine ausführbare Datei , die als benannt ist so: image1.jpg.exe. Wenn Erweiterungen ausgeblendet sind, werden Sie sehen Image1.jpg.

Das Programm hat das Symbol eines JPG-Bildes und extrahiert beim Starten des Programms ein eingebettetes Bild in den temporären Ordner, um das geöffnete Bild zu simulieren und keinen Verdacht zu erregen. Das Programm installiert dann den Keylogger.

Dies ist jedoch kein Bild mit eingebettetem Keylogger. Es ist ein Programm, das vorgibt, ein Image mit einem eingebetteten Keylogger zu sein, und versucht, die Person zum Öffnen des Images zu verleiten, genauso wie Spyware, um den Benutzer dazu zu verleiten, das Image zu öffnen und sich selbst zu installieren.


1
Hmm. Code-Injection - ein einfacher PHP-Virus, der in einem JPEG-Bild enthalten ist - ein echter Exploit, der in ein Bild eingebettet ist ...
DavidPostill

Sag niemals "Das ist nicht möglich", wenn es um Computer geht;)
DavidPostill

@ DavidPostill: guter Punkt. es würde Exploits brauchen und daher in den meisten Programmen nicht wirklich funktionieren, aber das macht es eher unwahrscheinlich als unmöglich. Beitrag bearbeitet. :)
LPChip

0

Wenn Sie eine Art Datei anzeigen, lesen Sie diese im Allgemeinen und verarbeiten den Inhalt so, dass er korrekt angezeigt werden kann (z. B. lesen Sie die Bilddaten und berechnen Sie die einzelnen Pixel). Da eine Bilddatei vollständig statisch ist und die darin enthaltenen Daten immer ähnlich sind, ist es äußerst unwahrscheinlich, dass die vom Bildbetrachter gesuchten und verarbeiteten Daten (z. B. Farbinformationen in bestimmten Bereichen) als bösartiger Code ausgeführt werden können.


Hmm. Code-Injection - ein einfacher PHP-Virus, der in einem JPEG-Bild enthalten ist - ein echter Exploit, der in ein Bild eingebettet ist ...
DavidPostill
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.