Die Jungs von Sempervideo haben heute in ihrem YouTube Channel ein Video hochgeladen in dem man sehen kann wie der WMP(Windows Media Player) nach dem öffnen einer Videodatei einen Link aufruft. Die “Badguys”, wie Sempervideo gerne sagt, nutzen solche “Features” gerne mal für ihre Zwecke.
Diese Funktion des WMP ist nicht nur mir schon einmal über den Weg gelaufen, sondern auch vielen Anderen. Auf diesem Blog und diesem Blog, wurden solche Datei schon mit einem Hexeditor analysiert(obwohl man den Header auch einfach auslesen kann xD)
Ich habe mir sagen lassen das so manch ein Virenscanner sogar vor Videodateien mit Scripts im Header warnt. Der WMP schneidet in Sachen Sicherheit nicht wirklich gut ab, betrachtet man sich nur mal die bekanntesten Fälle(DRM Rootkits, BOFs , Scripting….) So ein Script auslesen bzw. in den Header schreiben geht mit Microsoft Mitteln – Windows Media File Editor. Zu finden gibt es das entweder in einem älterem Windows WMP SDK oder auch einzeln.
Dieses Tool erlaubt es bestimmte geskriptete Aktionen für die Laufzeit des Video festzulegen. Die Funktion die ich hier meinem Beispiel nutze nennt sich URLANDEXIT. Damit weist man den WMP an, eine Webseite zu öffnen und sich danach selbst zu schließen. Es gibt z.B. noch die Funktion URL. Diese versucht die Webseite im Inlinebrowser des Player zu öffnen. In der Standartkonfiguration lässt er das zum Glück nicht mehr zu. Ein weiteres Schrott-Feature welches vom WMP unterstützt wird, ist das Advanced Stream Redirecting. Damit ist es u.a. möglich JScript remote auf anderen Rechner ausführen. Vorraussetzung ist aber ein MMS-Server der den Code in einem Stream verpackt – nur von gehört, nie selber ausprobieren können.
Nach einem Klick auf File und Open kann man entweder WMV/WMF oder ASF Dateien in das Programm laden. Jetzt bietet uns das Programm neben ein paar mehr oder weniger interessanten Optionen, die Funktion Script Commands.
Hier trägt der Badguy die URL zu dem Webserver auf dem die Malware hinterlegt ist. Bei Type URLANDEXIT. Microsoft hat das alles in seinem Developer Network schön dokumentiert und kann hier nachgelesen werden.
Stellen wir uns mal folgendes Szenario vor:
Eine SuperPorn.wmv wird z.B. in einem P2P Netzwerk oder im Usenet bereitgestellt. P0rn – der Ursprung und die eigentliche Intention des Internets*g* – verteilt sich ja recht schnell. In diesem Super Porn Video liegt nun ein Script das bei Sekunde 00:00 ausgeführt wird. Dieses Script öffnet eine gefakte Windows Downloadcenter Webseite und beendet im selben Moment den MediaPlayer. Der unerfahrene User erfährt auf der Webseite, dass der Codec zum abspielen des Videos nicht installiert sei. Eine solche Seite könnte etwa so aussehen wie links auf dem Screenshot.
Sollte das Opfer, die als Codec getarnte, Malware nicht runterladen(warum auch immer), läuft im Hintergrund schon ein Java Applet mit Drive-by-Download, o.ä. Wenn das ganze Szenario gut gefaked wird, ist die Chance hoch das viele User darauf reinfallen – es geht schließlich um Porn
Wie schützt man sich vor Scripts im WMP?
Sollte man Update KB828026(XP) (für WMP 7.1<) noch nicht installiert haben, kann man das eben mal nachholen. Bei Windows Vista und Windows 7 ist das Update schon in der neuen WMP Version integriert. Vermutlich es ist auch schon in dem erstem WinXP SP zu finden – but not sure. Microsoft schreibt:
Mit dem Update 828026 wird die Art und Weise geändert, wie Windows Media Player in einen Stream eingebettete URL-Skriptbefehle verarbeitet. Das Update bewirkt insbesondere, dass Windows Media Player drei neue Registrierungswerte erkennt, die einem Benutzer oder Administrator die Steuerung der Szenarien ermöglichen, in denen der Player die in einen Stream eingebetteten URL-Skriptbefehle ausführt.
Diese 3 Werte findet man unter dem Registerschlüssel: HKEY_CURRENT_USER\SOFTWARE\Microsoft\MediaPlayer\Preferences
Hinweis: Wenn ein Wert nicht vorhanden ist, wird der Standarddatenwert verwendet.
-
PlayerScriptCommandsEnabled
: Aktiviert oder deaktiviert URL-Skriptbefehle im eigenständigen Player. Der Standardwert ist “0″ (aus).
-
WebScriptCommandsEnabled
: Aktiviert oder deaktiviert URL-Skriptbefehle im eingebetteten Player. Der Standardwert ist “1″ (ein).
-
URLAndExitCommandsEnabled
: Aktiviert oder deaktiviert URLAndExit-Skriptbefehle. Der Standardwert ist “1″ (ein).
Nun einfach den Regschlüssel(DWORD) URLAndExitCommandsEnabled erstellen und auf 0 setzen.
Außerdem sollte man sich von dieser Einstellung nicht täuschen lassen.
Selbst wenn der Harken bei Vorhandene Skriptbefehle ausführen gesetzt ist, werden trotzdem Scripte vom Typ URLANDEXIT ausgeführt. Echt blöd Microsoft…
Wenn man ganz sicher gehen will, sollte man einfach auf den WMP verzichen. Neben den ganzen Schrott-”Features” ist der Player nicht wirklich performat. Von der grotten schlechten Medianbibliothek mal ganz zu schweigen. Ich persönliche nutze für HD den Mirillis Splash-Player und für den Rest klassisch Winamp.