Kann ein Keylogger in ein JPG-Bild eingebettet werden?

16684
Obsrv_

Ich bin neugierig, 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?

0
security.stackexchange.com duplicate: [Wie man ausführbare Dateien, schädlichen Code in PDF, JPEG, MP3 usw. einfügt ??((http://security.stackexchange.com/q/8113) DavidPostill vor 9 Jahren 5

4 Antworten auf die Frage

6
kenorb

Dies ist möglich, wenn die Anwendung eine Sicherheitslücke enthält, die Sie zum Öffnen der JPG-Datei (oder einer anderen Datei) verwenden, es sei denn, es handelt sich um ein gefälschtes JPEG-Bild.

Es gibt also wenige Szenarien:

  • gefälschte JPEG-Dateien

    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 beim Ausführen einer gefälschten Image-Datei nicht warnt, kann das Image mit installiertem Keylogger angezeigt werden. Überprüfen Sie daher immer Ihre Erweiterung, bevor Sie verdächtige Dateien öffnen.

  • JPEG öffnen

    Jede Mediendatei (und andere) kann eingespeisten Code enthalten, der für bestimmte Anwendungen entwickelt wurde. Sie könnten beim Analysieren einiger Daten (z. B. in EXIF) einige Fehler aufweisen. Wenn also die Anwendung fehlerhaft ist, könnten die injizierten Daten die Anwendung dazu verleiten, beliebigen Code auszuführen.

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

  • Laden von JPEG vom Server

    Sie können Programmcode in das JPEG-Format einfügen. Sobald der Code von einer Webanwendung analysiert wird, kann er beliebigen Code in der angegebenen Sprache ausführen. 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

    welche diesen Code in die Datei eingebettet hat:

    ÿØÿàJFIF``ÿáfExifMM* éV@HQQQ<style>body h1</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 obige Bild ö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 tut.

    Quelle: Code-Injection - ein einfacher PHP-Virus in einem JPEG-Bild

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

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

    Beispielsweise besuchen Sie die Seite, die eine gefälschte Bank-Website ist, oder kann eine echte Bank sein (in einem Forum, in dem jemand gefälschte JPEG- Dateien über XSS hochgeladen hat ). 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 ist SVG

    Wenn Sie eine Mediendatei und einen Webbrowser laden, wird das Bild manchmal als anderes Bild erkannt, und es wird auf das erkannte Format zurückgegriffen. Und was Sie in SVG-Dateien tun können, können Sie HTML und JavaScript hinzufügen (sofern Ihr Webbrowser dies zulässt ). Weitere Informationen finden Sie unter Erstellen einer Tabelle in SVG (und einer anderen ).

Schön bedeckt und beschafft. Sicher ein gutes Argument für das Sandboxing des Browsers. Frank Thomas vor 8 Jahren 1
3
grawity

Normalerweise wäre das nicht möglich. JPEG-Dateien enthalten nur komprimierte Bilddaten. Sie enthalten eigentlich keine Teile, die als Programmcode ausgeführt werden würden, und sicherlich nicht etwas, das einen solchen Zugriff auf das System ermöglicht.

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 erlauben, Teile der Daten als Programmcode auszuführen, wobei häufig ein Pufferüberlauf oder ein ähnlicher Fehler verwendet wird.


(Einige andere Bildformate sind schlecht entwickelt und enthalten von Entwurf aus lauffähigen Code ... zwei der bekannteren Beispiele sind WMF und PDF.)

Hmm. [Code-Injection - ein einfacher PHP-Virus in einem JPEG-Bild] (http://php.webtutor.pl/de/2011/05/13/php-code-injection-a-simple-virus-written-in-php -und getragen-in-a-jpeg-image /) - ein echter Exploit, eingebettet in ein Bild ... DavidPostill vor 9 Jahren 0
2
LPChip

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. Wenn Sie das Programm starten, extrahiert es ein eingebettetes Bild in den temporären Ordner und startet es, um das geöffnete Bild zu simulieren und keinen Verdacht zu wecken. 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, der versucht, die Person dazu zu bringen, das Image zu öffnen. Auf dieselbe Weise wird Spyware gemacht, um den Benutzer zu überreden, es zu öffnen und sich selbst zu installieren.

Hmm. [Code-Injection - ein einfacher PHP-Virus in einem JPEG-Bild] (http://php.webtutor.pl/de/2011/05/13/php-code-injection-a-simple-virus-written-in-php -und getragen-in-a-jpeg-image /) - ein echter Exploit, eingebettet in ein Bild ... DavidPostill vor 9 Jahren 1
Sag niemals "Dies ist nicht möglich", wenn es um Computer geht;) DavidPostill vor 9 Jahren 0
@ DavidPostill: guter Punkt. Es würde Exploits erfordern und daher in den meisten Programmen nicht wirklich funktionieren, aber das macht es eher unwahrscheinlich als unmöglich. Post bearbeitet :) LPChip vor 9 Jahren 0
0
Jannis

Wenn Sie eine Art Datei anzeigen, lesen Sie sie im Allgemeinen und verarbeiten den Inhalt, damit er korrekt angezeigt werden kann (z. B. lesen Sie die Bilddaten und berechnen Sie jedes Pixel). Da eine Bilddatei vollkommen statisch ist und die darin enthaltenen Daten immer gleich sind, ist es äußerst unwahrscheinlich, dass die Daten, nach denen der Bildbetrachter sucht und verarbeitet (wie Farbinformationen in bestimmten Bereichen), als schädlicher Code ausgeführt werden können.

Hmm. [Code-Injection - ein einfacher PHP-Virus in einem JPEG-Bild] (http://php.webtutor.pl/de/2011/05/13/php-code-injection-a-simple-virus-written-in-php -und getragen-in-a-jpeg-image /) - ein echter Exploit, eingebettet in ein Bild ... DavidPostill vor 9 Jahren 0