Sicherheit: Windows Format-Befehl ermöglicht DLL-Loading-Missbrauch

Sicherheit (Pexels, allgemeine Nutzung)[English]Es ist schier unglaublich, was sich so alles hinter Windows-Funktionen verbergen kann. Der seit ewigen Zeiten in der Eingabeaufforderung aufrufbare format-Befehl zum Formatieren von Datenträgern, hat einen Seiteneffekt. Mit einem Parameter lässt sich der Aufruf einer beliebigen DLL erzwingen, die dann aus dem Suchpfad heraus geladen wird. Ich konnte das kaum glauben, als ich auf diesen Sachverhalt aufmerksam gemacht wurde.


Anzeige

Der Sachverhalt ist mir von Grzegorz Tworek auf Twitter in einem kurzen Post unter die Augen gekommen. Die Aussage in nachfolgendem Tweet lautet: Gibt man in der Befehlszeile den Namen einer beliebigen DLLs mit einem vorangestellten Buchstaben U beim Parameter /FS an, wird die DLL aus dem Suchpfad heraus geladen.

Abusing Format for DLL load

Der DOS-Format-Befehl ermöglicht verschiedene Parameter, die in diesem Microsoft-Dokument beschrieben sind. Mit dem Schalter /FS:filesystem kann das gewünschte Dateisystem angegeben werden. Laut Microsoft lassen sich über den Schalter die folgenden Dateisysteme zur Formatierung vorgeben: FAT, FAT32, NTFS, exFAT, ReFS, or UDF.

Grzegorz Tworek ist nun aber aufgefallen, dass es eine undokumentierte Möglichkeit gibt, über die sich theoretisch beliebige Dateisysteme beim Formatieren anwenden lassen. Es muss lediglich eine entsprechende DLL vorhanden sein, die die Formatierung übernimmt. Als Parameter für /FS ist dann der Name dieser DLL mit einem vorangestellten U anzugeben. Eine Befehlszeile der Art:

format I: /fs:MyDll.dll


Anzeige

würde dann die Bibliotheksdatei UMyDll.dll laden und zur Ausführung bringen. Diese DLL wird dann im Suchpfad, also dem Programmordner und weiteren Ordnern ausgeführt. Grzegorz Tworek hat das an einer eigenen DLL mit dem Namen Pwning.dll demonstriert, die dann eine Message-Box mit dem Wort Pwned! anzeigt. Da gibt es sicherlich einige Möglichkeiten, wie das missbraucht werden kann.


Anzeige

Dieser Beitrag wurde unter Sicherheit, Windows abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

22 Antworten zu Sicherheit: Windows Format-Befehl ermöglicht DLL-Loading-Missbrauch

  1. Norbert sagt:

    Wenn man sich den Screenshot ansieht, dann wird der gezeigte Format-Befehl offenbar von einer administrativen Konsole aufgerufen. Wenn man eh Zugriff auf eine administrative Konsole hat, dann kann man genausogut direkt mit RUNDLL.EXE arbeiten…

    Ein Problem wäre das gezeigte Verhalten des Format-Befehls nur dann, wenn die DLL auf einer Konsole ohne Adminrechte mehr Rechte bekommt, als sie eigentlich sollte. Ansonsten ist das in der Tat nur eine abgefahrene Variante, eine DLL zu starten, aber sicher nichts, was einem ernsthaft Sorgen machen müsste. Ich meine, wenn ein Angreifer ohnehin den Format-Befehl ausführen kann, dann kann er damit eh genug Schaden anrichten (= die Platte formatieren), ohne dass er dazu abgefahrene DLLs bräuchte…

    Das Missbrauchspotential dürfte also sehr überschaubar bleiben, solange das nicht auch ohne Adminrechte funktioniert…

    • Stephan sagt:

      Wie so oft eine Sicherheitslücke, die keine ist.

      Und wenn man sowieso Admin rechte hat, braucht man nichtmal die Rundll sondern schrubbt einfach so unter windows rum.

      Aber, wieder ein hätte wäre wenn problem was super gefährlich ist….nicht!
      Böses Windows, erlaubt einem Admin über Format eine DLL zu starten.

  2. Stephan sagt:

    Das ist nicht ganz korrekt. Die böse DDL muß dann mit U anfangen.

    Eine weitere Frage wäre noch, ob das ganze mit erhöhten Berechtigungen läuft als der normale Benutzer.

    • Patrick Rommen sagt:

      Im Screenshot ist zumindest eine Administrator cmd geöffnet, von daher wäre das naheliegend.

      • Aaron Viehl sagt:

        Das sollte aber daran liegen, dass format sowieso als Admin ausgeführt werden muss.

        • MOM20xx sagt:

          probier es aus

          standard user kann format ausführen zumindest auf windows 10 21H2

        • Stephan sagt:

          Ist das so? Ich kann ja als normaler Benutzer ohne Adminrechte ein UBS-Laufwerk formatieren. Daher meine Frage.

          • MOM20xx sagt:

            ok das problem ist kein problem weil als non admin kommt

            format /fs:UMyDll.dll d:
            Zugriff verweigert, da Sie nicht über ausreichende Berechtigungen verfügen oder
            die Festplatte möglicherweise von einem anderen Prozess gesperrt ist.
            Sie müssen dieses Dienstprogramm im erweiterten Modus ausführen
            und sicherstellen, dass die Festplatte entsperrt ist.
            Volume kann für direkten Zugriff nicht geöffnet werden.

            da werden wohl vorher die berechtigungen auf dem laufwerk geprüft.

            ein normaler aufruf ohne parameter lässt sich durchführen

          • Aaron Viehl sagt:

            Also so weit ich das ausprobieren konnte, kann ich so nichts formatieren.

            "C:\Users\Benutzer>format D:
            Zugriff verweigert, da Sie nicht über ausreichende Berechtigungen verfügen oder
            die Festplatte möglicherweise von einem anderen Prozess gesperrt ist.
            Sie müssen dieses Dienstprogramm im erweiterten Modus ausführen
            und sicherstellen, dass die Festplatte entsperrt ist.
            Volume kann für direkten Zugriff nicht geöffnet werden.

          • 1ST1 sagt:

            Wechsellaufwerke, idealerweise mit FAT Dateisystem, kann jeder auch unter Windows 10 formatieren. Also USB-Stick anstöpseln und mit DLL den Format-Befehl ausführen. Die DLL läuft dann aber immer noch im User-Kontext. Da hilft dann wahrscheinlich nur noch, den Format-Befehl zu sperren.

    • Paul sagt:

      Das erhöhen der Rechte geht unter Windows nicht so einfach.
      Man kann Nur höchstens die gleichen Rechte wie der Aufrufer haben, sofern man keine Lücke ausnutzt.

  3. Romboman sagt:

    Das diese Möglichkeit das Format Tool hergibt, finde ich jetzt nicht besonderes tragisch. Wirklich dumm ist nur, dass es von MS nicht dokumentiert wurde.

  4. 1ST1 sagt:

    Interessant finde ich auch einen eigentlich Uralt-Trick. Man schreibt Text in Hintergrundfarbe und in ganz kleiner Schrift, in HTML geht sogar Schriftgröße 0, und baut dann schädliche Befehlszeichen in Anleitungen für Admins ein, oder in Script/Programmcode und stellt sowas dann als Hilfe/Problemlösung zu irgendeinem Computerproblem zur Verfügung, als HTML-Anleitung, als PDF oder ODT/DOCX-Dokument, oder sonstwas…

    https://www.bleepingcomputer.com/news/security/dont-copy-paste-commands-from-webpages-you-can-get-hacked/

    • mvo sagt:

      Wer ist denn so blöd das direkt in die Shell zu copy&pasten und dann direkt mit administrativen Rechten auszuführen, ohne vorher einen Blick drauf zu werfen?

      • 1ST1 sagt:

        Copy&Paste-Admin ist doch Alltag, auch z.B. das Ubuntu-Wiki oder Micrsoft KB-Artikel sind voll davon. Natürlich sind Anleitungen von dort (im Prinzip) vertauensvoll, aber der faule Admin überträgt dieses Verhalten nach positiver Erfahrung dann auf beliebige andere Anleitungen…

        • MOM20xx sagt:

          gerade der microsoft admin sollte gelernt haben, dass Copy&Paste bei den vielen KB Artikeln oder Anleitungen nicht funktioniert oder teils gefährlich ist.

          Bestes Beispiel die erste Revision vom Exchange 2k22 Bug fix.

          da wollte microsoft dem user eintrichtern in einer exchange management shell nur mal

          get-engineupdateinformation

          aufzurufen.

          das funktioniert aber nur, wenn davor ein

          Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell

          Aufruf erfolgte.

        • Gerd F. sagt:

          > Copy&Paste-Admin ist doch Alltag,…

          Für Admins, die sagen wir mal nett eher begrenzte Ahnung von ihrem Job und den täglichen Risiken dort haben, ja, für die mag das Alltag sein. Haarsträubende Erklärungsversuche…

        • Olli sagt:

          Und ich dachte schon ich bin total Paranoid, weil ich solche Befehle vorher in einen Editor kopiere und mir ansehe und erst dann ausführe wenn ich verstanden habe was es tut…?

          Manchmal tippe ich Befehle sogar lieber ab als zu Copy&Pasten…

  5. MOM20xx sagt:

    der missbrauch ist aber sehr eingeschränkt, denn das kann nur ein administrator ausführen.

    • Stephan sagt:

      Nun kommt von irgendwem sicher wieder als Antwort, das in Kombination mit anderen Sicherheitslücken welche Erweiterte Rechte vergeben diese hier super Gefährlich ist.

      Aber wenn man sowieso schon Erweiterte Rechte hat, braucht man das hier nicht.
      Hier wird wieder über ein Problem geredet, was eigentlich kein Problem ist.
      Wenn ich sowieso schon Admin bin, brauch ich keine lücken mehr um irgendetwas zu machen.

  6. Stefan Kanthak sagt:

    NULLTENS: das FORMAT.com (s)eine U‹name›.dll nicht aussschliesslich aus dem "System"-Verzeichnis %SystemRoot%System32 lädt zeigt DEUTLICHST, dass die unsäglich schlampigen und dämlichen Frickler Microsofts die Vorgaben und Sicherheitshinweise (u.a. https://msdn.microsoft.com/en-us/library/ff919712.aspx, https://msdn.microsoft.com/en-us/library/ms682586.aspx, https://technet.microsoft.com/en-us/library/2269637.aspx, https://support.microsoft.com/en-us/kb/2389418, https://web.archive.org/web/20190508180320/https://blogs.technet.microsoft.com/srd/2014/05/13/load-library-safely/ ihrer eigenen Klitsche KOMPLETT ignorieren, d.h. das von Bill Gates 2002/2002 apostolierte "trustworthy computing" noch immer NICHT umsetzen!
    ERSTENS: SAFER alias Softwarebeschränkungsrichtlinien (https://skanthak.homepage.t-online.de/SAFER.html) können (in unprivilegierten Benutzerkonten) die Ausführung beliebiger, vom (unprivilegierten) Benutzer im PATH platzierten DLLs zuverlässig verhindern, egal ob diese von FORMAT.com, RUNDLL.exe, REGSVR32.exe, CONTROL.exe oder irgendeinem anderen Prozess geladen werden.

    • Hubert sagt:

      > zeigt DEUTLICHST, dass die unsäglich schlampigen und dämlichen Frickler Microsofts die Vorgaben..

      Kommt darauf an, welche Vorgaben von wem, _NSAKEY lässt grüssen.

      Backdoors, backdoors everywhere…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros). Kommentare abseits des Themas bitte unter Diskussion.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.