{"id":1403,"date":"2010-12-27T23:53:21","date_gmt":"2010-12-27T22:53:21","guid":{"rendered":"http:\/\/www.mitternachtshacking.de\/blog\/1403-27c3-adventures-in-analyzing-stuxnet"},"modified":"2018-06-10T19:20:53","modified_gmt":"2018-06-10T18:20:53","slug":"27c3-adventures-in-analyzing-stuxnet","status":"publish","type":"post","link":"https:\/\/www.mitternachtshacking.de\/blog\/1403-27c3-adventures-in-analyzing-stuxnet","title":{"rendered":"27C3: Adventures in analyzing Stuxnet"},"content":{"rendered":"<p><a href=\"https:\/\/events.ccc.de\/congress\/2010\/Fahrplan\/events\/4245.en.html\">Bruce arbeitet f\u00fcr Microsoft<\/a> und die bisherigen Vortr\u00e4ge von Microsoft-Mitarbeitern (insbesondere auch der von Bruce Dang auf dem 25C3) waren immer sehr durchwachsen. Man konnte gut erkennen, dass die zwar viel wissen aber nichts davon sagen d\u00fcrfen. Insofern ging ich mit niedrigen Erwartungen in diesen Vortrag.<\/p>\n<p>Microsoft hat das erste Sample eines Programms das die LNK-L\u00fccke ausnutzt von AV-TEST bekommen. Von dort wurde angefangen zu analysieren. Microsoft wusste damals nicht, dass mehrere L\u00fccken ausgenutzt werden. Sie haben deshalb nur mit einer gerechnet und mussten in kurzer Zeit ~1MB Bin\u00e4rcode dekodieren und analysieren.<\/p>\n<p>Bug 1: LNK-Files<\/p>\n<ul>\n<li>LNK Files contain a link to its target<\/li>\n<li>The shell needs to know what icon represents the target<\/li>\n<li>Control panel links can have dynamic icons<\/li>\n<li>Shell gets the icon by LoadLibrary() the target<\/li>\n<li>LoadLibrary() automatically executes DllMain() so attacker gets code execution in the context of explorer.exe<\/li>\n<\/ul>\n<p>Fix is to check if the applet is registered before loading dynamic icons.<\/p>\n<p>Und ganz toll, das haben die Microsoft-Entwickler innerhalb von einer Stunde herausgefunden, nachdem die L\u00fccke jahrelang \u00fcbersehen wurde. Mein Gott sind die alle toll und werden die von Bruce gelobt. Man k\u00f6nnte fast meinen, Microsoft hat die besten Entwickler die alles sofort wissen und nie Fehler machen. Schon seltsam.<\/p>\n<p>Bug 2: Task Scheduling (nur Vista\/Win7)<\/p>\n<ul>\n<li>Scheduled Tasks werden in einem User-schreibbaren XML-File gespeichert<\/li>\n<li>Eine Pr\u00fcfsumme des XML-Files wird (sicher) in der Registry gespeichert<\/li>\n<li>Der Hash-Alogrithmus zur Verifizierung der Integrit\u00e4t ist CRC32<\/li>\n<li>Kollisionen leicht zu erzeugen, User-Wechsel auf LocalSystem m\u00f6glich<\/li>\n<\/ul>\n<p>Fix: Algorithm was changed to SHA256<\/p>\n<p>Bug 3: Keyboard Layout (nur WinXP)<\/p>\n<ul>\n<li>in win32k.sys<\/li>\n<li>ein Integer aus dem Layout-File wird f\u00fcr einen globalen Array im Kernel verwendet<\/li>\n<li>keine Pr\u00fcfung des Integer-Werts, daher kann irgendwohin gesprungen werden<\/li>\n<\/ul>\n<p>Fix: Pr\u00fcfung des Integers<\/p>\n<p>Bug 4: Spooler Subsystem<\/p>\n<ul>\n<li>entdeckt von Dan Kaminsky, der das Schadprogramm im Netzwerk laufen lies.<\/li>\n<li>es gibt zwei Spezialf\u00e4lle in denen der Spooler nicht auf Gast-Rechte zur\u00fcckf\u00e4llt<\/li>\n<li>bekannte Problematik von Windows XP, absichtlich so programmiert<\/li>\n<li>der Print-Spooler erzeugt zwei Dateien mit LocalSystem-Rechten<\/li>\n<li>ein EXE-File, das ausgef\u00fchrt werden soll<\/li>\n<li>ein MOF-File, das automatisch ausgef\u00fchrt wird, wenn es in einem bestimmten Verzeichnis liegt<\/li>\n<\/ul>\n<p>Fix: Rechtezuweisung \u00fcberarbeiten<\/p>\n<p>Und das Summary, die Leute die bei Microsoft arbeiten sind alle gaaaanz tolle Helden und arbeiten alle super zusammen und finden in Minuten alle L\u00fccken die sie auch sofort fixen k\u00f6nnen. Naja, wenigstens war dieses mal nur der halbe Vortrag eine Marketingshow.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bruce arbeitet f\u00fcr Microsoft und die bisherigen Vortr\u00e4ge von Microsoft-Mitarbeitern (insbesondere auch der von Bruce Dang auf dem 25C3) waren immer sehr durchwachsen. Man konnte gut erkennen, dass die zwar viel wissen aber nichts davon sagen d\u00fcrfen. Insofern ging ich mit niedrigen Erwartungen in diesen Vortrag. Microsoft hat das erste Sample eines Programms das die [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,8],"tags":[],"_links":{"self":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/1403"}],"collection":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/comments?post=1403"}],"version-history":[{"count":0,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/1403\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/media?parent=1403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/categories?post=1403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/tags?post=1403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}