{"id":230741,"date":"2020-04-14T12:54:52","date_gmt":"2020-04-14T10:54:52","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=230741"},"modified":"2021-11-21T01:21:13","modified_gmt":"2021-11-21T00:21:13","slug":"die-nirsoft-tools-und-die-dll-hijacking-schwachstellen","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2020\/04\/14\/die-nirsoft-tools-und-die-dll-hijacking-schwachstellen\/","title":{"rendered":"Die Nirsoft-Tools und die DLL-Hijacking-Schwachstellen"},"content":{"rendered":"<p><img decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2015\/01\/Stop.jpg\" align=\"left\" \/>[<a href=\"https:\/\/borncity.com\/win\/2020\/04\/16\/dll-hijacking-vulnerabilities-in-nirsoft-tools\/\" target=\"_blank\" rel=\"noopener noreferrer\">English<\/a>]Die Nirsoft-Tools sind wohl vielen Windows-Nutzern ein Begriff. Was weniger bekannt ist: Die Tools kommen mit b\u00f6sen DLL-Hijacking-Schwachstellen daher und sollten daher eher gemieden werden.<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/vg08.met.vgwort.de\/na\/15f1ae806f494b47a0e690f6ac8403ff\" alt=\"\" width=\"1\" height=\"1\" \/>Das Thema d\u00fcmpelt hier schon einige Zeit und ich habe es immer wieder aufgeschoben. Denn einerseits versprechen die Nirsoft-Tools Unterst\u00fctzung bei diversen Windows-Problemen. Und ich muss den Entwickler nicht ohne Not in die Pfanne hauen. Andererseits gibt es in den Tools gravierende DLL-Hijacking-Schwachstellen, und der Entwickler interessiert sich einen feuchten Dreck daf\u00fcr. Daher sollte jeder Nutzer wissen, auf was er sich einl\u00e4sst.<\/p>\n<h2>Was sind die Nirsoft-Tools?<\/h2>\n<p>Bei den Nirsoft-Tools handelt es sich um eine Sammlung von hilfreichen Windows-Programmen f\u00fcr verschiedene Aufgaben, die kostenlos zur Verf\u00fcgung stehen. Hinter den Tools steckt der Entwickler Nir Sofer, der sich als 'erfahrener Entwickler mit umfassenden Kenntnissen in C++, .NET Framework, Windows API und Reverse Engineering von undokumentierten Bin\u00e4rformaten und Verschl\u00fcsselungsalgorithmen' <a href=\"https:\/\/www.nirsoft.net\/about_nirsoft_freeware.html\" target=\"_blank\" rel=\"noopener noreferrer\">bezeichnet<\/a>. Die Tools lassen sich auf der Webseite nirsoft.net abrufen. Ich selbst habe gelegentlich das eine oder andere Programm aus der Tool-Sammlung genutzt. Alle Tools sind als portable Programme ausgef\u00fchrt und brauchen nicht installiert zu werden.<\/p>\n<h2>Die DLL-Hijacking-Schwachstellen<\/h2>\n<p>Es war Ende Januar 2020, als ich bei den Kollegen von deskmodder.de auf den Artikel <a href=\"https:\/\/www.deskmodder.de\/blog\/2020\/01\/30\/advancedrun-1-15-jetzt-auch-mit-kontextmenue-eintrag\/\" target=\"_blank\" rel=\"noopener noreferrer\">AdvancedRun 1.15 jetzt auch mit Kontextmen\u00fc-Eintrag<\/a> stie\u00df. Das ist ein <a href=\"http:\/\/www.nirsoft.net\/utils\/advanced_run.html\" target=\"_blank\" rel=\"noopener noreferrer\">Tool von Nirsoft<\/a>, mit dem man andere Programme mit erweiterten Rechten (Administrator, System etc.) starten kann. Eigentlich eine tolle Sache, und da die Tools kostenlos sind, war der Gedanke da, das Ganze im Blog vorzustellen.<\/p>\n<p><img decoding=\"async\" title=\"NirSoft AdvancedRun\" src=\"https:\/\/i.imgur.com\/k1YsWXQ.jpg\" alt=\"NirSoft AdvancedRun\" \/><\/p>\n<h3>Impuls zum Sicherheitstest f\u00fcr das Tool<\/h3>\n<p>Aus einem pl\u00f6tzlichen Impuls heraus entschloss ich mich aber, das heruntergeladene Tool \u00fcber mein Testbett zur Aufdeckung von Schwachstellen laufen zu lassen. Denn ein Tool, welches Administratorberechtigungen beim Aufruf weitergibt, sollte m\u00f6glichst keine DLL-Hijacking-Schwachstellen aufweisen.<\/p>\n<p><img decoding=\"async\" title=\"DLL-Hijacking vulnerabilities in Nirsoft Tools \" src=\"https:\/\/i.imgur.com\/ckINrn9.jpg\" alt=\"DLL-Hijacking vulnerabilities in Nirsoft Tools \" \/><\/p>\n<p>Das\u00a0 Ganze endete recht ern\u00fcchternd. Bei Advanced Run habe ich bereits beim Aufruf sofort zig Warnungen (siehe obige Abbildung) kassiert, weil das Tool versucht, Dlls wie <em>dwmapi.dll<\/em>, <em>uxtheme.dll<\/em>, <em>version.dll<\/em> etc. aus dem eigenen Verzeichnis nachzuladen. Aber auch beim Versuch, ein anderes Programm wie z.B. Regedit.exe \u00fcber die Schaltfl\u00e4che <em>Run <\/em>mit erh\u00f6hten Rechten auszuf\u00fchren, l\u00f6st die oben gezeigten Warndialoge aus (wobei ich nicht gepr\u00fcft habe, ob die aufgerufenen Module die Berechtigungen erben \u2013 die UAC-Abfrage kommt zu einem sp\u00e4teren Zeitpunkt).<\/p>\n<blockquote><p>Das Testbett wird von Stefan Kanthak bereitgestellt, der sich mit solchen Sicherheitsthemen auseinander setzt. Man kann sich die Datei <a href=\"https:\/\/skanthak.homepage.t-online.de\/download\/FORWARD.CAB\" target=\"_blank\" rel=\"noopener noreferrer\">Forward.cab<\/a> von seiner Webseite herunterladen und in einen Ordner entpacken. Zudem gibt es noch eine <a href=\"https:\/\/skanthak.homepage.t-online.de\/sentinel.html\" target=\"_blank\" rel=\"noopener noreferrer\">Sentinel.exe<\/a>, die auch in diesen Ordner wandert.<\/p>\n<p>Falls ein Virenscanner beim Besuch der Kanthak-Webseite anspringt: Er liefert auf seiner Webseite das Eicar-Testvirus in einem Data Block-Attribut aus, um zu testen, ob Browser diesen auswerten und in den Speicher zur Ausf\u00fchrung laden. Dann sollte ein Virenscanner anschlagen.<\/p>\n<p>Sp\u00e4ter kopiert man die zu testende Software in den Ordner des Testbetts und f\u00fchrt diese aus. Gibt es Alarme wie in obigem Screenshot gezeigt, liegt eine DLL-Hijacking-Schwachstelle vor.<\/p><\/blockquote>\n<p>Problem ist: Es gibt eine Schwachstelle, die bei 'guter Programmierpraxis' verp\u00f6nt ist. Die sollte fix behoben werden, das geht. Ich habe hier im Blog ja bereits vor mehreren Tools mit solchen Schwachstellen gewarnt, meist n\u00fctzt das nichts oder ich fange mir geharnischte Kommentare ein, wieso ich so etwas publiziere und ich k\u00f6nne es ja besser machen. Aber es gibt auch die Positiv-Beispiele f\u00fcr solche F\u00e4lle (siehe unten).<\/p>\n<h3>Warum DLL-Hijacking kritisch ist<\/h3>\n<p>Das beobachtete Verhalten bedeutet, dass alle von Advanced Run nachgeladenen DLL-Dateien ebenfalls als Prozess mit administrativen Berechtigungen ausgef\u00fchrt werden. Der Nutzer gew\u00e4hrt den aufgerufenen Prozessen ja explizit diese Berechtigungen.<\/p>\n<p>Normalerweise geht das gut, da Windows die erwarteten DLL-Dateien im Ordner des Programms nicht findet und dann in den Windows-Ordnern sucht und dort auch die ben\u00f6tigte DLL findet. Das Problem: Ist eine solche Schwachstelle bekannt, k\u00f6nnte eine Malware das ausnutzen.<\/p>\n<p>Es reicht, wenn die Malware im betreffenden Ordner DLLs mit den erwarteten Namen ablegt. Um nicht aufzufallen, k\u00f6nnte die Malware sich bei einem Zugriff auf den Ordner mit den Tools (meist wird das der Ordner <em>Downloads <\/em>sein) per Ereignis informieren lassen. Dann w\u00e4re noch Zeit, die DLLs in das Verzeichnis zu kopieren. Der Benutzer erteilt dem Programm nichtsahnend erh\u00f6hte Berechtigungen und im Huckepack werden die Malware-DLLs per DLL-Hijacking-Schwachstelle mit den erh\u00f6hten Rechten ausgef\u00fchrt. Advanced Run ist quasi eine ideale Tarnkappe f\u00fcr Malware, die dann erh\u00f6hte Berechtigungen erlangen k\u00f6nnte.<\/p>\n<p>Microsoft hat beispielsweise den Supportbeitrag <a href=\"https:\/\/support.microsoft.com\/en-us\/help\/2533623\/microsoft-security-advisory-insecure-library-loading-could-allow-remot\" target=\"_blank\" rel=\"noopener noreferrer\">KB2533623<\/a> in Form eines Security Advisory ver\u00f6ffentlicht (letztmalig im Januar 2020 aktualisiert), in dem auf diese Gefahr hingewiesen wird. F\u00fcr \u00e4ltere Windows-Versionen gab es sogar ein Update, damit Entwickler die Ausnutzung der DLL-Hijacking-Schwachstelle verhindern k\u00f6nnen. Ein weiteres Security Advisory <a href=\"https:\/\/docs.microsoft.com\/en-us\/security-updates\/securityadvisories\/2010\/2269637\" target=\"_blank\" rel=\"noopener noreferrer\">KB2269637<\/a> geht ebenfalls auf diese Schwachstelle ein.<\/p>\n<h3>Ern\u00fcchternde Erfahrungen mit dem Entwickler<\/h3>\n<p>Ich habe mir dann einige weitere Nirsoft-Tools von der Webseite des Entwicklers heruntergeladen und ebenfalls \u00fcber das Testbett laufen lassen. Es gab das gleiche Ergebnis, die haben alle eine DLL-Hijacking-Schwachstelle. Dabei haben Entwickler die M\u00f6glichkeit, vorzugeben, aus welchen Pfaden bzw. Ordnern die System-DLLs nachzuladen sind. Wenn Sofer Nir ein erfahrener Entwickler ist, sollte es ein leichtes sein, das zu korrigieren.<\/p>\n<p>Im Dezember 2019 hatte ich die Entwickler des AdwCleaner von Malwarebytes \u00fcber eine solche DLL-Hijacking-Schwachstelle informiert. Die haben sofort reagiert und einige Tage eine fehlerbereinigte Version freigegeben (siehe die Blog-Beitr\u00e4ge <a href=\"https:\/\/borncity.com\/blog\/2019\/12\/19\/adwcleaner-8-0-1-schliet-dll-hijacking-schwachstelle\/\">AdwCleaner 8.0.1 schlie\u00dft DLL-Hijacking-Schwachstelle<\/a>). Im April ist denen erneut ein Malheur passiert, was nach einem Hinweis von mir zeitnah behoben wurde (siehe\u00a0 <a href=\"https:\/\/borncity.com\/blog\/2020\/04\/04\/adwcleaner-8-0-4-schliet-neue-dll-hijacking-schwachstelle\/\">AdwCleaner 8.0.4 schlie\u00dft neue DLL-Hijacking-Schwachstelle<\/a>).<\/p>\n<p>Also habe ich Sofer Nir im Januar 2020 direkt \u00fcber <a href=\"https:\/\/www.nirsoft.net\/contact-new.html\" target=\"_blank\" rel=\"noopener noreferrer\">sein Kontaktformular<\/a> kontaktiert und auf das Problem angesprochen. Mit verbunden war die Bitte, da zu reagieren und ggf. R\u00fcckmeldung zu geben, weil ich einen Artikel ver\u00f6ffentlichen m\u00f6chte. Gleichzeitig habe ich die Ver\u00f6ffentlichung des Artikels zur\u00fcckgestellt. Die Hoffnung war, dass es \u00e4hnlich wie beim AdwCleaner l\u00e4uft.<\/p>\n<p>Alleine, es blieb bei der Hoffnung, denn Sofer Nir reagierte nicht auf meine Anfragen. Da ich mit Stefan Kanthak im regelm\u00e4\u00dfigen Austausch stehe, habe ich bei ihm diesbez\u00fcglich Ende M\u00e4rz 2020 explizit nachgefragt. Hier die Korrespondenz samt der R\u00fcckmeldung von Stefan Kanthak:<\/p>\n<blockquote><p>&gt; PS: Hattest Du in der Vergangenheit mit Sofer Nir von Nirsoft Kontakt?<br \/>\n&gt; Die Nirsoft-Tools leiden ja durch die Bank an DLL-Hijacking-<br \/>\n&gt; Schwachstellen. Ich hatte ihm eine Mail geschickt, aber nie eine<br \/>\n&gt; Antwort bekommen (obwohl er die Mail abgerufen hat). Bin nur<br \/>\n&gt; noch nicht dazu gekommen, da was dazu zu schreiben.<\/p>\n<p>Ich habe ihm MEHRFACH Mails zu seinen ANFAENGERFEHLERN geschickt, aber der Typ ist *** taub und stumm: KEINE Reaktion!<\/p><\/blockquote>\n<p>Best\u00e4tigt also mein Bild. Ich hatte den Artikel schon wieder aus dem Fokus verloren, bis ich wieder durch die Kommentare zum Artikel <a href=\"https:\/\/borncity.com\/blog\/2020\/04\/11\/defender-stufte-flschlich-winaero-tweaker-als-hacker-tool-ein\/\">Defender stufte f\u00e4lschlich Winaero Tweaker als Hacker-Tool ein<\/a> erinnert wurde. Auch wenn es in den Kommentaren darum ging, dass die Nirsoft-Tools vom Defender bem\u00e4ngelt werden, war das der Trigger, den Beitrag endlich zu ver\u00f6ffentlichen.<\/p>\n<p>Ich tue mich zwar schwer, kostenfreie Tools 'in die Pfanne zu hauen'. Wenn sich deren Sch\u00f6pfer aber der Thematik DLL-Hijacking verweigert, sollten zumindest Nutzer der Tools wissen, auf welch wackeliges Brett sie sich begeben. Die Information ist daher jetzt drau\u00dfen, also zieht eure Schl\u00fcsse draus.<\/p>\n<blockquote><p>PS: In der Antike war es zur g\u00e4ngig, den Boten der schlechten Nachrichten zu k\u00f6pfen. F\u00fchrte aber nicht dazu, dass die schlechten Nachrichten damit aus der Welt waren. Nur als Vorgriff auf Kommentare 'ist ja nicht so schlimm' oder wie auch immer. Hier werde ich aus den oben skizzierten Gr\u00fcnden weder NirSoft-Tools im Blog vorstellen noch weiter einsetzen.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>[English]Die Nirsoft-Tools sind wohl vielen Windows-Nutzern ein Begriff. Was weniger bekannt ist: Die Tools kommen mit b\u00f6sen DLL-Hijacking-Schwachstellen daher und sollten daher eher gemieden werden.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426,301],"tags":[657,4328,3659,1228,3288],"class_list":["post-230741","post","type-post","status-publish","format-standard","hentry","category-sicherheit","category-windows","tag-nirsoft","tag-sicherheit","tag-tool","tag-warnung","tag-windows-en"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/230741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=230741"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/230741\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=230741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=230741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=230741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}