it-swarm-eu.dev

Wie füge ich ausführbaren, bösartigen Code in PDF, JPEG, MP3 usw. ein?

  1. Ich wollte wissen, ob es generell möglich ist, ausführbaren Code in Dateien wie PDFs oder JPEGs usw. einzufügen, oder muss die Anwendung eine Sicherheitslücke aufweisen?

  2. Und wenn ja, wie würde man das machen?

Ich höre oft, dass Menschen durch das Öffnen von PDFs mit bösartigem Code infiziert werden. Deshalb frage ich.

47
JohnnyFromBF

Die Anwendung muss eine Sicherheitslücke aufweisen.

Denken Sie wie jede sehr einfache und übliche TXT-Datei: Wenn Sie sie mit einem Hex-Viewer oder einem gut gestalteten Textpad-Editor öffnen, sollte nur der Dateiinhalt angezeigt werden, und in Ordnung.

Denken Sie dann daran, die Datei irgendwie zu verarbeiten, anstatt nur den Inhalt anzuzeigen. Lesen Sie beispielsweise die Datei und interpretieren Sie ihre Werte. Wenn dies nicht korrekt durchgeführt wird, kann dies zur Ausführung der in der Datei enthaltenen Bytes führen.

Beispiel: Wenn Sie Ihre App so konzipiert haben, dass die gesamte Datei geladen und angezeigt wird, Sie jedoch eine Variable in Ihrem Programm haben, die nur 256 Byte enthält. Dies könnte dazu führen, dass Sie mehr Bytes lesen (und in den Speicher schreiben) als von Ihrer App erwartet. Und stellen Sie sich vor, in Ihrer App würde es einen Befehl geben, zur Position NNNN im Speicher zu springen und auszuführen, was dort ist, aber da diese Speicherposition mit Daten geschrieben wurde, die Ihr Programm nicht erwartet hatte, dann führen Sie einen Code aus, der nicht vorhanden sein sollte und aus Ihrer Datei geladen wurde ...

Das war ein Pufferüberlauf Angriff.

Das gleiche könnte mit PDF, JPG, MP3 usw. passieren, wenn die App die Daten nicht richtig lädt.

Eine andere Möglichkeit: Aus einem anderen Grund führt die App (oder eine DLL, die zum Lesen Ihrer Daten geladen wird) einen Teil der Daten aus, anstatt sie zu lesen. Wenn Sie wissen, was der Befehl wäre (oder die Daten), die dieses Verhalten auslösen würden, fügen Sie diese Befehle in die Datendatei (wie die PDF-Datei) ein, damit die App sie ausführt.

PDF-Virus : Lesen Sie diese Site: http://lwn.net/2001/0809/a/Adobe-pdf-vul.php um etwas über einen Virus zu erfahren, der sich mit PDF Dateien) verbreitet hat.

32
woliveirajr

Es gibt zwei Möglichkeiten, wie ein Code ausgeführt werden kann: absichtlich und unbeabsichtigt.

Absichtliche Ausführung ist, wenn eine Datei von einer Anwendung gelesen wird und die Anwendung etwas basierend auf den Angaben in der Datei ausführt. Das Lesen der Datei wird als Parsen der Datei bezeichnet.

Unbeabsichtigte Ausführung ist, wenn der Parser etwas liest, das er nicht lesen sollte, und anstatt zu brechen, wird die Ausführung fortgesetzt. Diese unbeabsichtigte Ausführung ist eine Sicherheitsanfälligkeit, denn wenn ich den Parser dazu bringen kann, etwas auszuführen, kann ich ihn wahrscheinlich dazu bringen, etwas Bösartiges auszuführen.

So beantworten Sie Ihre Fragen:

  1. Ist das generell möglich? Es hängt alles vom Dateiformat und der Anwendung ab, die es liest. Einige Dateien sind so konzipiert, dass sie ausführbare Dateien zulassen, andere nicht. Einige Anwendungen ermöglichen die Ausführung des Codes, andere nicht. Wenn die Anwendung dies nicht unterstützt, muss eine Sicherheitsanfälligkeit vorhanden sein, die ausgeführt werden kann.

  2. Es hängt alles vom Dateiformat ab, aber es ist normalerweise, indem ein Fehler in der Datei-Parser-Logik gefunden wird.

16
Steve

Das Hauptproblem bei PDFs, Word-Dokumenten usw. besteht darin, dass die aktuellen Standards Makros und ausführbaren Code zulassen. (Meiner Meinung nach ist dies ein schwerwiegender Fehler, aber dann möchte ich, dass E-Mails nur Text sind ...)

Diese Makroausführungsphase ist normalerweise das Ziel für Angriffe, da sie eine Möglichkeit zum Ausführen von Code bietet. Der Angreifer muss nur herausfinden, wie er an den vorhandenen Steuerelementen vorbeikommt, bei denen es sich möglicherweise um einen Pufferüberlauf oder einen anderen Angriffsmechanismus handelt.

8
Rory Alsop

Ich bin mit der Antwort nicht einverstanden "Es muss eine Sicherheitslücke in der Anwendung geben"

Es ist im Allgemeinen falsch. Die meisten Verstöße entstehen durch den Zugriff auf Dateien (nicht nur durch das Bereitstellen/Haben) und die Anspielung auf die Annahme, dass sie auf etwas anderes zugreifen als das, was sie wirklich sind, z. B. ein größeres Image, während es sich um ausführbaren Code handelt, oder eine Verknüpfung mit einem (bekannten und vertrauenswürdigen) ) Site-Beschreibung, während sie auf eine andere verlinkt, mit böswilligen Absichten usw.

Ich würde empfehlen zu lesen: