IIS - Internet Information Services
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Toets uitvoerbare lêer uitbreidings:
asp
aspx
config
php
Op enige IIS-bediener waar jy 'n 302 kry, kan jy probeer om die Host-header te verwyder en HTTP/1.0 te gebruik, en binne die antwoord kan die Location-header jou na die interne IP-adres lei:
Antwoord wat die interne IP openbaar:
Jy kan .config lêers oplaai en dit gebruik om kode uit te voer. Een manier om dit te doen is om die kode aan die einde van die lêer binne 'n HTML-kommentaar te voeg: Laai voorbeeld hier af
Meer inligting en tegnieke om hierdie kwesbaarheid te benut hier
Laai die lys af wat ek geskep het:
Dit is geskep deur die inhoud van die volgende lyste te kombineer:
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 benodig het dit reeds.
Kyk na die volledige skrywe 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 vouers van die toepassing met verwysings na "assemblyIdentity" lêers en "namespaces". Met hierdie inligting is dit moontlik om te weet waar uitvoerbare lêers geleë is en dit 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, die lêers connectionstrings.config en global.asax mag interessante inligting bevat.\
In .Net MVC toepassings, speel die web.config lêer 'n belangrike rol deur elke binêre lêer wat die toepassing afhanklik is van te spesifiseer deur middel van "assemblyIdentity" XML etikette.
'n Voorbeeld van toegang tot die web.config lêer word hieronder getoon:
Hierdie versoek onthul verskeie instellings en afhanklikhede, soos:
EntityFramework weergawe
AppSettings vir webblaaie, kliëntvalidasie, en JavaScript
System.web konfigurasies vir outentisering en tydsverloop
System.webServer module instellings
Runtime assembly bindings vir verskeie biblioteke soos Microsoft.Owin, Newtonsoft.Json, en System.Web.Mvc
Hierdie instellings dui aan dat sekere lêers, soos /bin/WebGrease.dll, binne die aansoek se /bin gids geleë is.
Lêers wat in die worteldirektorie gevind word, soos /global.asax en /connectionstrings.config (wat sensitiewe wagwoorde bevat), is noodsaaklik vir die aansoek se konfigurasie en werking.
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:
Die vermelding van 'n pasgemaakte naamruimte dui op 'n DLL genaamd "WebApplication1" wat in die /bin-gids teenwoordig is. Na hierdie, word 'n versoek om die WebApplication1.dll af te laai, gewys:
Dit dui op die teenwoordigheid van ander essensiële DLL's, soos System.Web.Mvc.dll en System.Web.Optimization.dll, in die /bin-gids.
In 'n scenario waar 'n DLL 'n naamruimte genaamd WebApplication1.Areas.Minded invoer, kan 'n aanvaller die bestaan van ander web.config-lêers in voorspelbare paaie aflei, 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 naamruimtes onthul wat die teenwoordigheid van 'n ander DLL, WebApplication1.AdditionalFeatures.dll, aandui.
Van hier
As jy 'n fout soos die volgende sien:
Dit beteken dat die bediener nie die korrekte domeinnaam binne die Host-header ontvang het. Om toegang tot die webblad te verkry, kan jy kyk na die bediende SSL Sertifikaat en dalk kan jy die domein/subdomeinnaam daar vind. As dit nie daar is nie, mag jy brute force VHosts moet gebruik totdat jy die korrekte een vind.
Jy kan probeer om gidsen en lêers binne elke ontdekte gids te enumerate (selfs as dit Basiese Verifikasie vereis) deur hierdie tegniek te gebruik. 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/gids 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
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
Jy kan probeer om hierdie kwesbaarheid en die laaste een te meng om nuwe gidsen te vind en die verifikasie te omseil.
ASP.NET sluit 'n foutopsporingsmodus in en sy lêer word trace.axd
genoem.
Dit hou 'n baie gedetailleerde log van alle versoeke wat oor 'n tydperk aan 'n toepassing gemaak is.
Hierdie inligting sluit afgeleë kliënt IP's, sessie-ID's, alle versoek- en antwoordkoekies, fisiese paaie, bronkode-inligting, en moontlik selfs gebruikersname en wagwoorde in.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
ASPXAUTH gebruik die volgende inligting:
validationKey
(string): hex-gecodeerde sleutel om te gebruik vir handtekeningvalidasie.
decryptionMethod
(string): (standaard “AES”).
decryptionIV
(string): hex-gecodeerde inisialiseringvektor (standaard na 'n vektor van nulles).
decryptionKey
(string): hex-gecodeerde sleutel om te gebruik vir ontsleuteling.
Ehowever, sommige mense sal die standaardwaardes van hierdie parameters gebruik en sal as koekie die e-pos van die gebruiker gebruik. Daarom, as jy 'n web kan vind wat die dieselfde platform gebruik wat die ASPXAUTH koekie gebruik en jy 'n gebruiker met die e-pos van die gebruiker wat jy wil naboots op die bediener onder aanval skep, mag jy in staat wees om die koekie van die tweede bediener in die eerste een te gebruik en die gebruiker na te boots. Hierdie aanval het gewerk in hierdie skrywe.
Volledige verslag hier: 'n fout in die kode het nie behoorlik vir die wagwoord wat deur die gebruiker gegee is, nagegaan nie, so 'n aanvaller wie se wagwoordhash 'n sleutel tref wat reeds in die cache is, sal in staat wees om as daardie gebruiker aan te meld.
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)