IIS - Internet Information Services
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Testen Sie ausführbare Dateierweiterungen:
asp
aspx
config
php
Auf jedem IIS-Server, auf dem Sie einen 302 erhalten, können Sie versuchen, den Host-Header zu entfernen und HTTP/1.0 zu verwenden. Im Antwortheader könnte der Location-Header auf die interne IP-Adresse verweisen:
Antwort, die die interne IP offenbart:
Sie können .config-Dateien hochladen und sie verwenden, um Code auszuführen. Eine Möglichkeit, dies zu tun, besteht darin, den Code am Ende der Datei innerhalb eines HTML-Kommentars anzuhängen: Beispiel hier herunterladen
Weitere Informationen und Techniken zur Ausnutzung dieser Schwachstelle hier
Laden Sie die Liste herunter, die ich erstellt habe:
Sie wurde erstellt, indem die Inhalte der folgenden Listen zusammengeführt wurden:
https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html https://github.com/digination/dirbuster-ng/blob/master/wordlists/vulns/iis.txt https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/aspx.txt https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt
Verwenden Sie es, ohne eine Erweiterung hinzuzufügen, die Dateien, die sie benötigen, haben sie bereits.
Überprüfen Sie den vollständigen Bericht unter: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
Zusammenfassend gibt es mehrere web.config-Dateien in den Ordnern der Anwendung mit Verweisen auf "assemblyIdentity"-Dateien und "namespaces". Mit diesen Informationen ist es möglich zu wissen, wo sich ausführbare Dateien befinden und sie herunterzuladen. Von den heruntergeladenen Dlls ist es auch möglich, neue Namespaces zu finden, auf die Sie zugreifen sollten, um die web.config-Datei zu erhalten, um neue Namespaces und assemblyIdentity zu finden. Außerdem können die Dateien connectionstrings.config und global.asax interessante Informationen enthalten.\
In .Net MVC-Anwendungen spielt die web.config-Datei eine entscheidende Rolle, indem sie jede Binärdatei angibt, auf die die Anwendung über "assemblyIdentity" XML-Tags angewiesen ist.
Ein Beispiel für den Zugriff auf die web.config-Datei ist unten dargestellt:
Diese Anfrage zeigt verschiedene Einstellungen und Abhängigkeiten, wie zum Beispiel:
EntityFramework-Version
AppSettings für Webseiten, Client-Validierung und JavaScript
System.web-Konfigurationen für Authentifizierung und Laufzeit
System.webServer-Modul-Einstellungen
Runtime-Assembly-Bindungen für zahlreiche Bibliotheken wie Microsoft.Owin, Newtonsoft.Json und System.Web.Mvc
Diese Einstellungen deuten darauf hin, dass bestimmte Dateien, wie /bin/WebGrease.dll, im /bin-Ordner der Anwendung gespeichert sind.
Dateien, die im Root-Verzeichnis gefunden werden, wie /global.asax und /connectionstrings.config (die sensible Passwörter enthält), sind entscheidend für die Konfiguration und den Betrieb der Anwendung.
MVC-Anwendungen definieren auch zusätzliche web.config-Dateien für spezifische Namespaces, um wiederholte Deklarationen in jeder Datei zu vermeiden, wie mit einer Anfrage zum Herunterladen einer anderen web.config demonstriert:
Die Erwähnung eines benutzerdefinierten Namensraums deutet auf eine DLL mit dem Namen "WebApplication1" hin, die im /bin-Verzeichnis vorhanden ist. Daraufhin wird eine Anfrage zum Herunterladen der WebApplication1.dll angezeigt:
Dies deutet auf das Vorhandensein anderer wesentlicher DLLs hin, wie System.Web.Mvc.dll und System.Web.Optimization.dll, im /bin-Verzeichnis.
In einem Szenario, in dem eine DLL einen Namespace namens WebApplication1.Areas.Minded importiert, könnte ein Angreifer auf die Existenz anderer web.config-Dateien in vorhersehbaren Pfaden schließen, wie z.B. /area-name/Views/, die spezifische Konfigurationen und Verweise auf andere DLLs im /bin-Ordner enthalten. Zum Beispiel kann eine Anfrage an /Minded/Views/web.config Konfigurationen und Namespaces offenbaren, die auf das Vorhandensein einer anderen DLL, WebApplication1.AdditionalFeatures.dll, hinweisen.
Von hier
Wenn Sie einen Fehler wie den folgenden sehen:
bedeutet das, dass der Server den korrekten Domainnamen im Host-Header nicht erhalten hat. Um auf die Webseite zuzugreifen, könnten Sie das SSL-Zertifikat überprüfen und vielleicht finden Sie dort den Domain-/Subdomainnamen. Wenn er dort nicht vorhanden ist, müssen Sie möglicherweise VHosts brute forcen, bis Sie den richtigen finden.
Sie können versuchen, Ordner und Dateien in jedem entdeckten Ordner aufzulisten (auch wenn dies eine Basisauthentifizierung erfordert) mit dieser Technik. Die Hauptbeschränkung dieser Technik, wenn der Server anfällig ist, besteht darin, dass sie nur die ersten 6 Buchstaben des Namens jeder Datei/jedes Ordners und die ersten 3 Buchstaben der Erweiterung der Dateien finden kann.
Sie können https://github.com/irsdl/IIS-ShortName-Scanner verwenden, um diese Sicherheitsanfälligkeit zu testen: java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
Ursprüngliche Forschung: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
Sie können auch metasploit verwenden: use scanner/http/iis_shortname_scanner
Eine gute Idee, um den endgültigen Namen der entdeckten Dateien zu finden, ist, LLMs nach Optionen zu fragen, wie es im Skript https://github.com/Invicti-Security/brainstorm/blob/main/fuzzer_shortname.py gemacht wird.
Umgehen Sie eine Basisauthentifizierung (IIS 7.5) und versuchen Sie, auf Folgendes zuzugreifen: /admin:$i30:$INDEX_ALLOCATION/admin.php
oder /admin::$INDEX_ALLOCATION/admin.php
Sie können versuchen, diese Sicherheitsanfälligkeit mit der letzten zu kombinieren, um neue Ordner zu finden und die Authentifizierung zu umgehen.
ASP.NET enthält einen Debugging-Modus, und die Datei heißt trace.axd
.
Es führt ein sehr detailliertes Protokoll aller Anfragen, die über einen bestimmten Zeitraum an eine Anwendung gestellt wurden.
Diese Informationen umfassen die IPs der Remote-Clients, Sitzungs-IDs, alle Anforderungs- und Antwort-Cookies, physische Pfade, Quellcodeinformationen und möglicherweise sogar Benutzernamen und Passwörter.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
ASPXAUTH verwendet die folgenden Informationen:
validationKey
(string): hex-kodierter Schlüssel zur Verwendung für die Signaturvalidierung.
decryptionMethod
(string): (Standard “AES”).
decryptionIV
(string): hex-kodierter Initialisierungsvektor (Standard ist ein Vektor aus Nullen).
decryptionKey
(string): hex-kodierter Schlüssel zur Verwendung für die Entschlüsselung.
Einige Personen verwenden jedoch die Standardwerte dieser Parameter und verwenden als Cookie die E-Mail des Benutzers. Daher, wenn Sie eine Webseite finden, die die gleiche Plattform verwendet und das ASPXAUTH-Cookie verwendet, und Sie einen Benutzer mit der E-Mail des Benutzers erstellen, den Sie auf dem angegriffenen Server nachahmen möchten, könnten Sie in der Lage sein, das Cookie vom zweiten Server im ersten zu verwenden und den Benutzer nachzuahmen. Dieser Angriff funktionierte in diesem Bericht.
Hier der vollständige Bericht: Ein Fehler im Code überprüfte das vom Benutzer angegebene Passwort nicht ordnungsgemäß, sodass ein Angreifer, dessen Passworthash einen Schlüssel trifft, der bereits im Cache vorhanden ist, sich als dieser Benutzer anmelden kann.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)