Behebung der Sicherheitsanfälligkeit in Bezug auf IIS-Tilde


9

Einer unserer IIS-Server (IIS 7.5, Server 2008 R2) ist anscheinend "anfällig" für das Problem der Offenlegung von Tilde-Kurzdateinamen .

Es fällt mir jedoch schwer, das Problem tatsächlich zu beheben. Bisher habe ich

  • Deaktivierte 8.3-Dateinamen, stoppte den Webserver, erstellte das Site-Verzeichnis neu und startete den Dienst erneut

  • Filterregel für eine Tilde in der URL hinzugefügt:

Geben Sie hier die Bildbeschreibung ein

  • Eine Filterregel für eine Tilde wurde ÜBERALL hinzugefügt:

Geben Sie hier die Bildbeschreibung ein

  • IISRESET ein paar Mal

  • Überprüft, ob web.configdie entsprechenden Filterregeln hinzugefügt wurden

.. aber trotzdem kann ich meine Seite nicht dazu bringen, den Test zu bestehen :

java -jar ~/temp/IIS-ShortName-Scanner-master/IIS_shortname_scanner.jar http://www.example.com

[...SNIP...]

Testing request method: "TRACE" with magic part: "/webresource.axd" ...
Testing request method: "DEBUG" with magic part: "" ...
Testing request method: "OPTIONS" with magic part: "" ...
Testing request method: "GET" with magic part: "" ...
Reliable request method was found = GET
Reliable magic part was found = 
144 requests have been sent to the server:

<<< The target website is vulnerable! >>>

Was muss ich noch tun, um das Problem zu beheben?

BEARBEITEN: Hier DIR /xscheinen keine 8.3-Dateinamen zu sein:

Geben Sie hier die Bildbeschreibung ein

und hier ist der App-Pool für die Site (alle anderen Sites auf dem Server sind gleich):

Geben Sie hier die Bildbeschreibung ein

EDIT2 : Überprüfung, dass keine 8.3-Dateinamen mehr vorhanden sind:

Geben Sie hier die Bildbeschreibung ein


Eine schnelle Möglichkeit, um zu überprüfen, ob ein Verzeichnis 8.3-Namen enthält, ist dir /x. Ihre Site verfügt möglicherweise über symbolische Links zu Verzeichnissen, die noch automatisch generierte 8.3-Namen enthalten.
Brian

Ich fürchte, es gibt keine Anzeichen von 8.3-Dateinamen :(
KenD

Die Installation von .NET 4.0 (das für diesen Exploit nicht anfällig ist) ist die andere häufig auftretende Lösung für dieses Problem. Hast du das schon versucht?
HopelessN00b

.Net 4 ist installiert und alle Anwendungspools auf dem Server sind auf Verwendung eingestellt .NET Framework v4.0.30319- siehe Screenshot in der obigen Bearbeitung.
KenD

4
Beeindruckend. Wahrscheinlich greifen Sie hier nach Strohhalmen, aber sind Sie sicher, dass der von Ihnen verwendete Schwachstellenscanner zuverlässig ist? Probieren Sie ein anderes Tool aus oder versuchen Sie, den Angriff manuell auszuführen und zu sehen, was Sie sehen.
HopelessN00b

Antworten:


6

Versuchen Sie, nach vorhandenen kurzen Dateinamen zu suchen mit fsutil:

  • fsutil 8dot3name scan /s /v E:\inetpub\wwwroot

Und zieh sie aus, wenn sie gefunden werden:

  • fsutil 8dot3name strip /s /v E:\inetpub\wwwroot

Wenn magic part: ""ich mir auch das Protokoll mit dem leeren magischen Teil ( ) ansehe, frage ich mich, ob das ein Fehler im POC sein könnte. Diese Zeile in config.xml sieht aus, als hätte sie ein zusätzliches Komma nach /webresource.axd:

<entry> key="magicFinalPartList">
 <![CDATA[\a.aspx,\a.asp,/a.aspx,/a.asp,/a.shtml,/a.asmx‌​,/a.ashx,/a.config,/a.php,/a.jpg,/webresource.axd,,/a.xxx]]>
</entry>

Ich habe dev gefragt. via Twitter darüber und er antwortete:

In seltenen Fällen, in denen keine Verlängerungen erforderlich waren. Aber in letzter Zeit hat das nur mehr Probleme verursacht! Ich werde es jetzt entfernen.

Ich habe es aus der Konfigurationsdatei entfernt. Dies war die 2. Beschwerde, daher war es der richtige Zeitpunkt für diese Änderung.

Es scheint also, dass du jetzt in Sicherheit bist :)


Angst, es gibt keine Änderung - siehe "EDIT2" in meinem ursprünglichen Beitrag :(
KenD

1
Wenn magic part: ""ich mir das Protokoll mit dem leeren magischen Teil ( ) ansehe, frage ich mich, ob das ein Fehler im POC sein könnte. Diese Zeile in config.xml sieht aus, als hätte sie ein zusätzliches Komma nach /webresource.axd:<entry key="magicFinalPartList"><![CDATA[\a.aspx,\a.asp,/a.aspx,/a.asp,/a.shtml,/a.asmx,/a.ashx,/a.config,/a.php,/a.jpg,/webresource.axd,,/a.xxx]]></entry>
Beatcracker

Das ist sehr interessant - obwohl im Rückblick auf die Revisionen dieses "Doppelkomma" schon eine Weile im Code enthalten ist. Das Entfernen bedeutet, dass der Test jetzt ohne offensichtlichen Fehler ausgeführt wird ...
KenD

Ha, du bist in Sicherheit, siehe Update!
Beatcracker

All diese Arbeit und wir waren die ganze Zeit in Sicherheit :) Vielen Dank für Ihre Hilfe und die Kontaktaufnahme mit dem Entwickler!
KenD

1

auch "HINWEIS: Die Änderung des Registrierungseintrags NtfsDisable8dot3NameCreation betrifft nur Dateien, Ordner und Profile, die nach der Änderung erstellt wurden. Bereits vorhandene Dateien sind nicht betroffen."

Hinweis: Obwohl das Deaktivieren der Erstellung von 8.3-Dateinamen die Dateileistung unter Windows erhöht, können einige Anwendungen (16-Bit, 32-Bit oder 64-Bit) möglicherweise keine Dateien und Verzeichnisse mit langen Dateinamen finden.


0

Leider ist die einzige Möglichkeit, wirklich damit umzugehen, eine nervige Reihe von Schwankungen, die je nach Windows-Version die Möglichkeit deaktivieren, 8.3-Namen zu generieren.

Für Ihre Windows-Version:

Um die Erstellung von 8.3-Namen auf allen NTFS-Partitionen zu deaktivieren, geben Sie an einer Eingabeaufforderung mit erhöhten Rechten fsutil.exe behaviour set disable8dot3 1 ein und drücken Sie die Eingabetaste.

Quelle: http://support.microsoft.com/kb/121007


Der Artikel, den Sie verlinkt haben, beschreibt, wie Sie die Erstellung von 8.3-Dateinamen deaktivieren und nicht, warum das Problem dadurch gelöst wird.
Michael Hampton

Ich habe bereits 8.3 Dateinamen deaktiviert und dir /xzeigt keine kurzen Dateinamen im Verzeichnis der Site
KenD

Ken, war das die Methode, mit der du das gemacht hast?
Dave Holland

Ja; Ich habe auch einen Verweis auf eine Registrierungseinstellung gesehen, aber der fsutilBefehl scheint nur diesen Schlüssel für mich festzulegen.
KenD

0

Ich bin mir nicht ganz sicher, wie sicher das Skript funktioniert und wie Ihr Netzwerk eingerichtet ist, aber wie wäre es, wenn Sie über etwas vor dem IIS-Server filtern (selbst wenn es sich nur um ein virtuelles Gerät in einer virtuellen Maschine handelt)? Sie richten nämlich ein IPS mit einer Regel ein, die speziell den Datenverkehr zu diesem bestimmten Problem senkt?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.