Wo hat sich die Schlange versteckt?
Wo hat sich die Schlange versteckt?
Hintergrund

Ein kleiner Hack zwischendurch: Dateien als andere Dateien ausgeben

Dominik Bärlocher
Zürich, am 07.08.2017
Ist ein PDF wirklich ein PDF? Ja, sagt dein Computer. Nein, sagen wir. Denn wir können mit einfachen Mitteln einem User vorgaukeln, dass er Dateityp A vor sich hat, aber in Wirklichkeit Dateityp B sieht.

Hacker setzen nicht nur auf sich selbst. Oft ist es ein Nutzer im Zielsystem, der den Kriminellen Tür und Tor öffnet. Denn warum sollte ein Hacker auch eine Firewall durchbrechen, wenn er sie umgehen kann? Noch besser, warum sollte ein Hacker sich Mühe machen, wenn ein Nutzer einfach Glaubens gemacht werden kann, dass er nur ein harmloses Bild öffnet?

Stellen wir eine Attacke nach, die auf die Unbedarftheit des Opfers abzielt.

Die Vorbereitung

Bevor wir uns dem Script widmen, müssen wir eine Einstellung in Windows vornehmen, sofern du das nicht schon getan hast. Im zweiten Schritt brauchen wir Dateinamenerweiterungen. Das sind die Buchstaben nach dem Punkt in jedem Dateinamen. Ein Bild aus dem Internet ist meist ein .jpg, ein Word-Dokument ist ein .docx, ein Video ist ein .mp4 und so weiter. Da Microsoft aber irgendwann gedacht hat, dass das unbedarfte Nutzer nur unnötig verwirrt, haben sie die Dateinamenerweiterungen standardmässig ausgeblendet.

Wir aber brauchen die, sicher nur in einem Ordner.

  1. Öffne «Eigene Dateien»
  2. Erstelle den Ordner «hacktheplanet». Das wird unser Projektordner für den kleinen Hack
  3. Klicke oben auf Ansicht
  4. Aktiviere die Dateinamenerweiterungen
keine Informationen über dieses Bild verfügbar
Im Menü «Ansicht» findest du die Dateinamenerweiterungen

Voilà, das war’s fürs erste. Gehen wir programmieren.

Die Payload

Jede Attacke eine Hackers dieser Art besteht aus zwei Teilen.

  1. Die Verpackung: Das, was der User sieht. Etwas, dem er vertraut und das sauber aussieht. Das ist oft nur mässig überzeugend
  2. Die Payload: Der Schadcode

Ich erkläre euch in diesem Artikel, wie ihr einen ganz simplen Angriff nachstellen könnt. Euer Computer wird ein JPG anzeigen, aber in Wirklichkeit haben wir ein kleines Programm, das einfach nur digitec.ch öffnet. Dazu nutzen wir der Einfachheit halber Batch Script, also eine bat-Datei. Nicht, weil Hacker diese besonders gern verwenden, sondern einfach weil jeder Windows-Computer mit ihnen einfach umgehen kann.

  1. Öffne notepad.exe oder den Texteditor deiner Wahl. Ich arbeite mit Brackets
  2. Schreibe diese Zeile in die Datei
    start "" https://digitec.ch
  3. Speichere die Datei als digitecjpg.bat in deinem hackthe_planet-Ordner

Der Code macht nichts anderes, als deinen Standardbrowser zu öffnen und die Website digitecs aufzurufen. Also nichts Wahnsinniges. Wenn du in der freien Wildbahn oder in deinem E-Mail-Eingang auf bat-Dateien triffst, sei vorsichtig, denn eine URL öffnen ist längst nicht alles, was sie können.

Im Kontext dieser einen bat-Datei aber können wir der Datei vertrauen, da wir sie ja selbst programmiert haben.

Der RTL Override Exploit

Die Technik, die wir heute nutzen, heisst Right-to-Left Override, RTL Override, oder RTLO. Im Wesentlichen weisen wir den Computer an, mitten im Dateinamen die Leserichtung zu wechseln. Dazu brauchen wir ein Sonderzeichen, das die Richtung des Textes ändert. Das ist der RTLO. Der RTLO existiert, da es Sprachen wie arabisch oder hebräisch gibt. Diese werden von rechts nach links geschrieben und gelesen, nicht wie unser Alphabet von links nach rechts.

Am einfachsten geht das mit einem Feature, das von Windows mitgeliefert wird: Der Character Map. Das ist eine Auflistung aller Zeichen, die du mit dem Computer schreiben kannst.

  1. Drücke auf Start
  2. Tippe Character Map
  3. Drücke Enter, wenn nur noch eine Option da steht
keine Informationen über dieses Bild verfügbar
Die Character Map zeigt alle Zeichen an, die dein Computer schreiben kann

Zu Beginn ist das ganz einfach. Am Ende soll unsere Datei – aktuell heisst sie digitecjpg.bat – so heissen: digitectab.jpg. Du siehst also schon, wo wir den Text drehen werden. Das Format eines Dateinamens mit RTLO geht so: $filename + RTLO + $echteDateiEndungRueckwarts + $falscheDateiendung

In unserem Fall sieht das so aus:

  • $filename = digitec
  • RTLO
  • $echteDateiEndungRueckwaerts = tab
  • $falscheDateiendung = jpg

Also setzen wir den Dateinamen wie folgt zusammen.

  1. Ins Feld unten an der Character Map tippst du digitec ein
  2. Such aus der Liste der Zeichen den Right To Left Override. Er ist etwas unten bei den ganzen Leerzeichen
     
keine Informationen über dieses Bild verfügbar
  1. Gib nun die Zeichenfolge gpj.bat ein
     
keine Informationen über dieses Bild verfügbar
  1. Klick auf Copy

Der Dateiname sieht aktuell noch etwas seltsam und verkehrt aus. Das liegt daran, dass der RTLO zwar da ist, aber nicht richtig angezeigt wird. Warum das so ist, kann ich dir auch nicht sagen.

Der Abschluss

Aktuell ist der neue Dateiname, den wir in der Character Map zusammengesetzt haben, in der Zwischenablage. Daher: Zurück in den hacktheplanet-Ordner. Dort liegt die Datei digitec_jpg.bat bereit.

  1. Klick rechts auf digitec_jpg.bat
  2. Wähle Eigenschaften
  3. Den Dateinamen ins entsprechende Feld einfügen
     
keine Informationen über dieses Bild verfügbar
  1. OK klicken

Voilà, die Datei sieht nun aus, als ob sie digitec_tab.jpg heisst. Wenn du sie öffnest, dann aktivierst du das obige Script und digitec öffnet sich. Kurz: So können Hacker dir Glauben machen, dass du ein Bild öffnest, aber in Wahrheit führst du Schadcode aus.

«Ja aber», höre ich dich sagen, «das sieht ja sofort jeder, dass das kein jpg ist. Der Dateiname ist nur minimal unkenntlich gemacht!»

Stimmt. In unserem Fall ist es alles offensichtlich, aber das ist auch Sinn der Übung. So kannst du von A bis Z nachvollziehen, was geschehen ist. Aber stell dir vor, die Datei hat einen zufälligen Namen wie «iYYprTjZEETAb.jpg». Solche und ähnliche Namenschemata werden von sozialen Netzwerken und Content Delivery Networks (CDN) verwendet, was oft dazu führt, dass solche Dateinamen nicht hinterfragt werden.

Das geht natürlich nicht nur mit .bat, sondern auch mit einer Vielzahl anderer Dateiformate. Die wohl effektivsten sind:

  • .bat
  • .exe
  • .cmd
  • .com
  • .lnk
  • .pif
  • .scr
  • .vb
  • .vbe
  • .vbs
  • .wsh

Wie kannst du dich schützen?

Der Schutz vor dieser Attacke ist denkbar einfach. Anstatt einfach alles zu öffnen, was dir vorgesetzt wird: Sei misstrauisch. Zudem entdeckst du diese Art Angriff recht schnell, indem du in den Ansichtsoptionen deines Ordners die Ansicht auf «Grosse Symbole» umstellst. Denn da wo sonst ein kleines Preview erscheint, wird das Icon des wahren Dateitypen eingeblendet.

Oder noch besser, aber wesentlich weniger hübsch: Stell die Ansicht auf «Details», weil dein Computer erkennt die Datei als das, was sie ist. Diese Attacke betrügt wirklich nur den User, nicht die Maschine.

keine Informationen über dieses Bild verfügbar
Der Computer erkennt das bat problemlos

Ferner hast du Glück: Viele Anti-Malware-Programme filtern diese Dateien automatisch, warnen und das System weigert sich manchmal, den Code auszuführen. Im Falle unserer .bat aber bemerkst du, dass keinerlei Checks gemacht wurden. Darum dieser Artikel.

Trotzdem: Wenn du den umständlichsten Weg aller Zeiten suchst, dir eine Verknüpfung anzulegen, dann kannst du das jetzt mit einem als .jpg getarnten .bat tun.

Des Rätsels Lösung

Oben habe ich im Hauptbild dieser Seite gefragt, ob du die getarnte Schlange siehst. Hier ist sie:

keine Informationen über dieses Bild verfügbar

Das könnte dich auch interessieren

*Hacking für alle**: Wie du CMD mit einem Bild öffnest
placeholder

placeholder

38 Personen gefällt dieser Artikel


Dominik Bärlocher
Dominik Bärlocher
Senior Editor, Zürich
Journalist. Autor. Hacker. Ich bin Geschichtenerzähler und suche Grenzen, Geheimnisse und Tabus. Ich dokumentiere die Welt, schwarz auf weiss. Nicht, weil ich kann, sondern weil ich nicht anders kann.

Diese Beiträge könnten dich auch interessieren