Heim  >  Artikel  >  Themen  >  Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

coldplay.xixi
coldplay.xixinach vorne
2021-04-16 17:13:186837Durchsuche

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

1. Was ist IIS

Internet Information Services (IIS, früher bekannt als Internet Information Server) Internet Information Services ist ein erweiterbarer Webserver von Microsoft, der HTTP, HTTP/2, HTTPS, FTP unterstützt. FTPS, SMTP und NNTP usw. Ursprünglich in der Windows NT-Serie verwendet, wurde es später in Windows 2000, Windows XP Professional, Windows Server 2003 und nachfolgende Versionen integriert, in der Windows XP Home-Version gibt es jedoch kein IIS. IIS ist derzeit nur für Windows-Systeme verfügbar und nicht für andere Betriebssysteme.

Laut Daten von Netcraft im Februar 2017 hatte IIS einen Marktanteil von 10,19 % unter den „Millions of Busiest Websites“ und ist damit der „drittgrößte Webserver der Welt“ hinter Apache 41,41 % und Nginx 28,34 %. . Derzeit ist in den beliebten Windows-Versionen der IIS-Dienst standardmäßig installiert, aber gleichzeitig wird die Sicherheit von IIS von der Industrie kritisiert. Sobald eine Sicherheitslücke mit hohem Risiko in IIS auftritt, wird die Bedrohung sehr ernst sein.

Empfohlen (kostenlos):

iisBevor wir uns mit IIS-Schwachstellen befassen, wollen wir zunächst die standardmäßig integrierten IIS-Versionen unter verschiedenen Windows-Systemen verstehen, um den Umfang der Auswirkungen von IIS-Schwachstellen besser zu verstehen und zu unterscheiden:

Abbildung 1 Die Standard-IIS-Version jeder Windows-Version

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen
2.

IIS-Schwachstellen-Enzyklopädie

Qianlimu Lab hat in den letzten fünfzehn Jahren IIS-bezogene Schwachstellen gesammelt, und es gibt insgesamt 39 Schwachstellen mit mittlerem und hohem Risiko Besonders weit verbreitet sind die Sicherheitslücken, die innerhalb von 15 Jahren aufgetreten sind (die Sicherheitslücke MS15-034 HTTP.sys zur Remotecodeausführung und die Sicherheitslücke 2016 (MS16-016) bezüglich der Eskalation von WebDAV-Berechtigungen).

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-DateinamenAbbildung 2 Eine vollständige Liste der IIS-Schwachstellen der letzten 15 Jahre

Nachdem Sie die oben genannten IIS-Schwachstellen der letzten zehn Jahre gelesen haben, fragen Sie sich vielleicht, warum Sie den Protagonisten dieses Artikels, „IIS“, nicht gesehen haben kurze Datei-Schwachstelle“? ! Bevor wir die IIS-Schwachstellenfamilie verstehen, lernen wir zunächst einige Funktionen von IIS unter Windows anhand von IIS-Kurzdateien kennen.

3.

IIS-Kurzdatei

1. Der Ursprung der IIS-Kurzdatei-/Ordnernamen-Sicherheitslücke wurde erstmals 2010 von Soroush Dalili vom Vulnerability Research Team entdeckt 1, und der Anbieter (Microsoft Corporation) wurde am 3. August 2010 benachrichtigt. Microsoft antwortete am 1. Dezember 2010 und 4. Januar 2011, dass die nächste Version behoben werden würde. Am 29. Juni 2012 wurde diese Schwachstelle öffentlich bekannt gegeben (mittleres Risiko).

Diese Schwachstelle wird tatsächlich durch die alte DOS 8.3 Name Convention (SFN)-Tilde (~) in HTTP-Anfragen verursacht. Es ermöglicht Remote-Angreifern, Datei- und Ordnernamen im Web-Root (auf den nicht zugegriffen werden sollte) offenzulegen. Ein Angreifer kann wichtige Dateien finden, die normalerweise nicht direkt von außen zugänglich sind, und Informationen über die Anwendungsinfrastruktur erhalten.

Informationslecks durch Microsoft IIS Tilde sind die häufigste Schwachstelle mit mittlerem Risiko in den Netzwerken der Welt. Dieses Problem besteht seit mindestens 1990, hat sich jedoch als schwer zu erkennen, schwer zu lösen oder leicht ganz zu ignorieren erwiesen. S2.

IIS kurze Datei-Schwachstelle

2.1 Betroffene Version:

IIS 1.0, Windows NT 3.51

IIS 3.0, Windows NT 4.0 Service Pack 2

IIS 4.0, Windows NT 4.0 Option Packs IIS 5.0 , Windows 2000 IIS 5.1, Windows XP Professional und Windows XP Media Center Edition

IIS 6.0, Windows Server 2003 und Windows XP Professional x64 Edition
IIS 7.0, Windows Server 2008 und Windows Vista

IIS 7.5, Windows 7 (Remoteaktivierung oder keine web.config)

IIS 7.5, Windows 2008 (klassischer Pipeline-Modus)

Hinweis: IIS ist bei Verwendung von .Net Framework 4


nicht betroffen (obige Datenquelle:

https: //www.securityfocus .com/archive/1/523424)

Es wurde bestätigt, dass der oben genannte betroffene Bereich hauptsächlich für die HTTP-GET-Methode gilt und gleichzeitig die Installation von ASP.NET-Anwendungen erfordert. Der Entdecker dieser Schwachstelle hat 2014 erneut offengelegt: Beim Testen von IIS 7.5 (Windows 2008 R2) und IIS 8.0 (Windows 2012), wenn OPTIONS anstelle der GET-Methode verwendet wird und der kurze Dateiname in der Anfrage vorhanden ist, IIS A Es wird eine andere Fehlermeldung zurückgegeben. Mithilfe dieser Funktion können Angreifer Datei- oder Verzeichnisscans basierend auf kurzen Dateinamen in der neuesten IIS-Version implementieren.

Derzeit unterstützt IIS sechs HTTP-Methoden zum Erraten kurzer Dateinamen: DEBUG, OPTIONS, GET, POST, HEAD und TRACE. Das Qianlimu Laboratory hat bestätigt, dass die kurzen Dateinamen von IIS 8.0, IIS 8.5 und IIS 10.0 können alle mit den Methoden OPTIONS und TRACE verwendet werden. Daher müssen die oben genannten betroffenen Versionen mit den folgenden Versionen hinzugefügt werden:

IIS 8.0, Windows 8, Windows Server 2012

IIS 8.5, Windows 8.1, Windows Server 2012 R2

IIS 10.0, Windows 10, Windows Server 2016

Es ist ersichtlich, dass alle IIS-Versionen das Problem des Verlusts kurzer Dateinamen haben, und Microsoft scheint dieses Problem ignoriert zu haben. Aus der Antwort von Microsoft an den Entdecker der Sicherheitslücke geht hervor, dass die Sicherheitslücke in IIS-Kurzdateien nicht den Sicherheitsupdatestandards entspricht und ermittelt werden muss, wann sie in der nächsten „logischen Version“ behoben wird.

2.2 Gefahren durch Sicherheitslücken:

2.2.1 Verwenden Sie das Zeichen „~“, um kurze Datei-/Ordnernamen zu erraten und anzuzeigen (Hauptgefahr)

Windows unterstützt die Generierung von (kurzen) Dateinamen, die mit MS-DOS in der Version 8.3 kompatibel sind formatieren, um MS-DOS oder 16-Bit-Windows-basierten Programmen den Zugriff auf diese Dateien zu ermöglichen. Geben Sie unter cmd das Stammverzeichnis der IIS-Website C:inetpubwwwroot ein und geben Sie „dir /x“ ein, um die Auswirkung des kurzen Dateinamens zu sehen:

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-DateinamenAbbildung 3 IIS-Kurzdateiname

Das Bild oben zeigt das standardmäßig erstellte IIS 10.0 In Windows 10 sind iisstart.htm und iisstart.png im Stammverzeichnis der Website die Standarddateien der Website. Die Länge der Dateinamen-Präfixzeichen beträgt nicht 9 Zeichen, daher gibt es keinen kurzen Dateinamen. IIS10test.html ist eine manuell hinzugefügte Website-Datei. Die Zeichenlänge des Dateinamens beträgt 9 Zeichen, und der entsprechende kurze Dateiname lautet IIS10T~1.HTM. Gemäß dieser Funktion können wir indirekt auf die entsprechende Datei zugreifen, indem wir auf den kurzen Dateinamen zugreifen.

Da die Länge kurzer Dateinamen festgelegt ist (

xxxxxx~xxxx

), können Angreifer die kurzen Dateinamen direkt brutal erzwingen, um auf die entsprechenden Dateien zuzugreifen. Zum Beispiel gibt es eine Datenbanksicherungsdatei „backup_20180101.sql“ und der entsprechende kurze Dateiname lautet „backup~1.sql“. Daher kann der Angreifer die Datei durch Brute-Force-Knacken von „backup~1.sql“ herunterladen, ohne den vollständigen Dateinamen zu knacken.

IIS-Kurzdateiname hat die folgenden Eigenschaften:

1 Nur die ersten sechs Zeichen werden direkt angezeigt, und auf nachfolgende Zeichen wird mit ~1 verwiesen. Die Nummer 1 kann auch erhöht werden, wenn mehrere Dateien mit ähnlichen Dateinamen vorhanden sind (die ersten 6 Ziffern des Namens müssen gleich sein und die ersten 3 Ziffern des Suffixnamens müssen gleich sein); Der Name hat eine maximale Länge von 3 Ziffern und der Überschuss wird abgeschnitten. Alle Kleinbuchstaben werden in Großbuchstaben umgewandelt mehrere „.“ und das letzte „.“ im Dateinamen wird als kurzes Dateinamensuffix verwendet

5. 9 und Aa-Zz und erfordert mehr als oder gleich 9 Zeichen, um einen kurzen Dateinamen zu generieren, unabhängig von der Länge.

Wir können GET verwenden Methode zur Brute-Force-Aufzählung kurzer Dateinamen unter IIS mit aktiviertem .net. Der Grund dafür ist, dass der Angreifer die Platzhalter „*“ und „?“ verwendet, um eine Anfrage an IIS zu senden , seine Antwort ist unterschiedlich, das heißt, der zurückgegebene HTTP-Statuscode und die Fehlermeldung sind unterschiedlich. Basierend auf dieser Funktion kann anhand der HTTP-Antwort eine verfügbare oder nicht verfügbare Datei unterschieden werden. Wie in der folgenden Abbildung dargestellt, ist der Unterschied in den von verschiedenen IIS-Versionen zurückgegebenen Informationen:

Abbildung 4 IIS 5.0 ~ IIS 7. Die Abbildung der legalen und illegalen IIS-Kurzdatei-Antwortinformationen wird dargestellt:

Zugriff auf a

Der Zugriff auf einen konstruierten kurzen Dateinamen, der nicht existiert, gibt 400 zurück;

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

Abbildung 5 Der Prozess zum Erraten des Statuscodes mithilfe von IIS

Die obige Methode ist zu verwenden die GET-Methode in einer niedrigeren Version von IIS + ASP.NET-Umgebung, um wiederholt in einer Schleife zu raten, bis der kurze Dateiname erraten ist.

Das Qianlimu-Labor hat jedoch in einer realen Umgebung überprüft, dass Sie in höheren Versionen von IIS (z. B. IIS 8.0/IIS 8.5/IIS 10.0), auch wenn asp.net nicht installiert ist,

Sie mithilfe der OPTIONEN und TRACE erfolgreich raten können Methoden

. Die von diesen beiden Methoden zurückgegebenen HTTP-Statuscodetypen unterscheiden sich geringfügig von den obigen Screenshots, bieten jedoch eine andere Möglichkeit, sie zu verwenden.

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen2.2.2 Denial-of-Service-Angriff auf das .Net Framework (Nebengefahr)

Laut einer Untersuchung von Soroush Dalili durchsucht .NeFramework rekursiv das gesamte Stammverzeichnis, wenn ein Angreifer eine illegale .Net-Dateianforderung im Ordnernamen sendet, was viel Zeit in Anspruch nimmt Website-Ressourcen und verursacht DOS-Probleme. Microsoft geht davon aus, dass diese Gefahr unter DOS behebbar ist und in nachfolgenden SP-Versionen geändert wird, sodass sie hier nicht besprochen wird.

3.

Wiedergabe und Ausnutzung von Sicherheitslücken in kurzen IIS-Dateien

                                   Installieren Sie den Standard-IIS ​​10.0 basierend auf Win 10 (APS ist nicht installiert. NET)

IIS kurzes Java-Programm zum Scannen von Dateischwachstellen (Java-Umgebungsvariablen müssen konfiguriert werden)

3.1.2 Vorbereitung für das Debuggen der Schwachstellenumgebung

Nach erfolgreicher Installation von IIS wird das Verzeichnis intpub standardmäßig im Verzeichnis des Laufwerks C generiert Stammverzeichnis der Website. Befindet sich in C:inetpubwwwroot. Überprüfen Sie, ob im Stammverzeichnis ein kurzer Dateiname vorhanden ist:

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

Wie aus dem obigen Bild ersichtlich ist, verfügt das Standard-Stammverzeichnis der IIS 10.0-Website nicht über kurze Dateinamen, sondern nur über Standard-HTM- und PNG-Dateien, und die Namenslänge entspricht nicht den Anforderungen zum Generieren kurzer Dateien. Im Folgenden wird der IIS-Kurzdateiscanner verwendet, um zu erkennen, ob eine Sicherheitsanfälligkeit bezüglich Informationslecks in kurzen Dateien vorliegt:

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

3.1.3 Reproduktion der Schwachstellenumgebung

Erstellen Sie manuell den langen Dateinamen der Website „IIS10test.html“. und generiert automatisch den entsprechenden kurzen Dateinamen „IIS10T~1.HTM“

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

Beim erneuten Scannen mit dem IIS-Kurzdateiscanner wurde festgestellt, dass eine Sicherheitslücke in einer kurzen Datei besteht, und der kurze Dateiname wurde erfolgreich erraten die HTTP OPTIONS-Methode: IIS10T.HTM​​​

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

Ändern Sie den Schwachstellenscanner, achten Sie auf die OPTIONS-Methode und versuchen Sie herauszufinden, ob es andere HTTP-Methoden gibt, die erfolgreich erraten werden können.

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

Die Überprüfung ergab, dass zusätzlich zur OPTIONS-Methode auch die HTTP-Methode TRACE kurze Dateinamen erfolgreich erraten kann.

3.1.4 Vermutungsanalyse der OPTIONS- und TRACE-Methode für IIS-Schwachstellen

Vermutungsanalyse der OPTIONS-Methode

Da die obige OPTIONS-Methode 196 Mal zum Erraten des kurzen Dateinamens angefordert hat, gibt der Ratenerfolg 404 und der Ratenfehler 200 zurück. Dort Da es viele fehlgeschlagene Kombinationen gibt, wird im Folgenden hauptsächlich analysiert, wie die 404-vermutete erfolgreiche Anfrage über die OPTIONS-Methode den kurzen Dateinamen IIS10T.HTM erhält. Wie unten gezeigt:

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

TRACE-Methoden-Schätzungsanalyse

Der Prozess des Erratens mithilfe der TRACE-Methode ist grundsätzlich derselbe wie oben, außer dass der zurückgegebene Statuscode nicht 200 ist, wenn die HTTP-Methode fehlschlägt 501 (nicht ausgeführt).

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen3.2 IIS-Kurzdatei-SicherheitslückeExploit

1. Ausführliche Suche, um den vollständigen Namen der Datei zu erraten

Der kurze Dateiname wurde durch die IIS-Kurzdatei-Sicherheitslücke erraten, Sie Sie müssen weiterhin den vollständigen Namen erraten. Der Zugriff kann über IIS erfolgen, d. h. IIS unterstützt aus Sicherheitsgründen keinen Zugriff auf kurze Dateinamen. Im Folgenden finden Sie mehrere Methoden zum Erraten des vollständigen Namens einer von Soroush Dalili angegebenen Datei:

1) Crawlen Sie die Zielwebsite oder Websites desselben Typs, kriechen Sie heraus und erstellen Sie eine Wörterbuchbibliothek, und verwenden Sie dann den erhaltenen kurzen Dateinamen um die restlichen Zeichen zu erraten;

2) Verwenden Sie fuzzdb (eine Anwendungs-Fuzzing-Datenbank), um zu erraten;

3) Kombiniert mit OWASPs Dirbuster (einem Pfad- und Webseiten-Brute-Force-Cracking-Tool).

Ein Forscher auf Github hat die obige Methode mit Python implementiert und den Benutzernamen und das Passwort des Website-Backends erhalten, wobei er die IIS-Sicherheitslücke in kurzen Dateien gut ausgenutzt hat.

Hinweis: Adresse des Forschungsberichts: https://webbreacher.com/2014/10/23/tilde-enumeration/ (empfohlen)

Python-Programm-Download: https://github.com/WebBreacher/tilde_enum (empfohlen)

2. In Kombination mit Software, die Funktionen für kurze Dateien unterstützt (Apache, WordPress)

Acunetix-Untersuchungen zeigen, dass bei der Ausführung von Apache unter Windows keine Notwendigkeit besteht, die lange Datei zu erraten, sondern die kurze Die Datei kann direkt heruntergeladen werden. Beispielsweise enthält eine lange Datei „backup_20180101.sql“ eine kurze Datei „BACKUP~1.SQL“. Ein Angreifer muss nur „BACKUP~1.SQL“ übermitteln, um direkt auf die Datei zuzugreifen und sie herunterzuladen.

Darüber hinaus haben einige Wissenschaftler gezeigt, dass sie nach der Installation des WordPress-Backup-Plug-Ins über den kurzen Dateinamen erfolgreich auf die Backup-Datei des WordPress-Blogs zugegriffen haben.

3. Basis- und Windows-Authentifizierung umgehen

Soroush Dalilide hat in seiner Untersuchung auch erwähnt, dass unter bestimmten IIS-Serverkonfigurationen die Basis- und Windows-Authentifizierung umgangen werden kann und die Dateien im Authentifizierungsverzeichnis erraten werden können. Wenn Sie beispielsweise auf eine Datei in einem Verzeichnis mit aktivierter Authentifizierung zugreifen müssen, beispielsweise dieses Verzeichnis „AuthNeeded“ ist, können Sie auf folgende Weise darauf zugreifen:

/AuthNeeded::$Index_Allocation/*~1*/ .aspx oder

/AuthNeeded :$I30:$Index_Allocation/*~1*/.aspx

4. IIS-Sicherheitslücken für kurze Dateien

Diese Sicherheitslücke weist die folgenden Einschränkungen auf:

1) Diese Sicherheitslücke kann nur ermittelt werden die ersten 6 Zeichen, wenn die folgenden Zeichen zu lang sind oder Sonderzeichen enthalten, ist es schwierig zu erraten

2) Wenn der Dateiname selbst zu kurz ist (kein kurzer Dateiname), ist es auch unmöglich, ihn zu erraten;

3) Wenn die ersten 6 Ziffern des Dateinamens Leerzeichen enthalten, wird der kurze Dateiname im 8.3-Format ergänzt und stimmt nicht mit dem tatsächlichen Dateinamen überein

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

4) Wenn die ersten 6 Zeichen des Ordnernamens mit „.“ versehen sind, geht der Scanner davon aus, dass es sich um eine Datei und nicht um einen Ordner handelt, und es wird möglicherweise ein Fehlalarm angezeigt 5) Chinesische Dateinamen werden nicht unterstützt. Chinesische Dateien und chinesische Ordner werden nicht unterstützt. Ein chinesisches Zeichen entspricht zwei englischen Zeichen, sodass bei mehr als vier chinesischen Zeichen ein kurzer Dateiname generiert wird. IIS unterstützt das Erraten von Chinesisch jedoch nicht.

5.

IIS Short File Vulnerability SolutionEinführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen

Einführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen5.1 Universal Vulnerability Fix Solution

1) CMD deaktiviert die Unterstützung für das NTFS 8.3-Dateiformat

Beispiel: (1 bedeutet aus, 0 bedeutet ein)

Windows Server 2008 R2:

Abfrage, ob die Funktion für kurze Dateinamen aktiviert ist:

fsutil

8

dot3name queryDiese Funktion ausschalten: fsutil 8dot3name set. 1 Windows Server 2003:

Diese Funktion ausschalten: fsutil behaviour set unlock8dot3 1

Der Befehl zum Herunterfahren unterscheidet sich geringfügig in verschiedenen Systemen. Diese Funktion ist standardmäßig aktiviert und muss für die meisten Benutzer nicht aktiviert werden .

2) Ändern Sie die Registrierung, um die Funktion für kurze Dateinamen zu deaktivieren. Tastenkombination Win+R, um das Befehlsfenster zu öffnen. Geben Sie regedit ein, um das Registrierungsfenster zu öffnen. Suchen Sie den Pfad:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem. Setzen Sie den Wert von NtfsDisable8dot3NameCreation auf 1 , 1 bedeutet, dass kein kurzes Dateinamenformat erstellt wird

Nachdem die Änderung abgeschlossen ist, müssen Sie das System neu starten, damit sie wirksam wird

Hinweis: Diese Methode kann nur die Erstellung von Dateinamen im NTFS8.3-Format verhindern der vorhandenen Dateien können nicht entfernt werden und müssen neu gestartet werden. Die Kopie verschwindet.

Die folgenden beiden Methoden eignen sich nur zur Abschwächung der GET-Methode, andere Methoden können noch erraten werden.

3) Deaktivieren Sie die Webdiensterweiterung – ASP.NET

4) Aktualisieren Sie netFramework auf Version 4.0 oder höher

Das obige ist der detaillierte Inhalt vonEinführung des Fixes für die Sicherheitslücke bezüglich des Durchsickerns kurzer IIS-Dateinamen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen