IIS - Internet Information Services
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Test executable file extensions:
asp
aspx
config
php
Na bilo kojem IIS serveru gde dobijete 302, možete pokušati da uklonite Host header i koristite HTTP/1.0, a unutar odgovora Location header može ukazivati na internu IP adresu:
Odgovor koji otkriva unutrašnju IP adresu:
Možete učitati .config datoteke i koristiti ih za izvršavanje koda. Jedan od načina da to uradite je dodavanje koda na kraj datoteke unutar HTML komentara: Preuzmite primer ovde
Više informacija i tehnika za iskorišćavanje ove ranjivosti ovde
Preuzmite listu koju sam kreirao:
Kreirana je spajanjem sadržaja sledećih lista:
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
Koristite je bez dodavanja ekstenzije, datoteke koje je zahtevaju već je imaju.
Proverite potpuni izveštaj na: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
Kao sažetak, postoji nekoliko web.config datoteka unutar foldera aplikacije sa referencama na "assemblyIdentity" datoteke i "namespaces". Sa ovom informacijom moguće je znati gde se nalaze izvršne datoteke i preuzeti ih. Iz preuzetih Dll-ova takođe je moguće pronaći nove namespaces gde treba pokušati da se pristupi i dobije web.config datoteka kako bi se pronašli novi namespaces i assemblyIdentity. Takođe, datoteke connectionstrings.config i global.asax mogu sadržati zanimljive informacije.\
U .Net MVC aplikacijama, web.config datoteka igra ključnu ulogu tako što specificira svaku binarnu datoteku na kojoj aplikacija zavisi putem "assemblyIdentity" XML oznaka.
Primer pristupa web.config datoteci prikazan je u nastavku:
Ovaj zahtev otkriva razne postavke i zavisnosti, kao što su:
EntityFramework verzija
AppSettings za veb stranice, validaciju klijenata i JavaScript
System.web konfiguracije za autentifikaciju i vreme izvršavanja
System.webServer podešavanja modula
Runtime vezivanja skupova za brojne biblioteke kao što su Microsoft.Owin, Newtonsoft.Json i System.Web.Mvc
Ove postavke ukazuju na to da se određene datoteke, kao što je /bin/WebGrease.dll, nalaze unutar /bin fascikle aplikacije.
Datoteke pronađene u korenskom direktorijumu, kao što su /global.asax i /connectionstrings.config (koja sadrži osetljive lozinke), su ključne za konfiguraciju i rad aplikacije.
MVC aplikacije takođe definišu dodatne web.config datoteke za specifične namespaces kako bi se izbegle ponavljajuće deklaracije u svakoj datoteci, kao što je prikazano zahtevom za preuzimanje druge web.config:
Pominjanje prilagođenog imenskog prostora ukazuje na DLL pod nazivom "WebApplication1" prisutan u /bin direktorijumu. Nakon toga, prikazan je zahtev za preuzimanje WebApplication1.dll:
Ovo sugeriše prisustvo drugih bitnih DLL-ova, kao što su System.Web.Mvc.dll i System.Web.Optimization.dll, u /bin direktorijumu.
U scenariju gde DLL uvozi prostor imena pod nazivom WebApplication1.Areas.Minded, napadač može da zaključi o postojanju drugih web.config fajlova na predvidivim putanjama, kao što su /area-name/Views/, koji sadrže specifične konfiguracije i reference na druge DLL-ove u /bin folderu. Na primer, zahtev za /Minded/Views/web.config može otkriti konfiguracije i prostore imena koji ukazuju na prisustvo drugog DLL-a, WebApplication1.AdditionalFeatures.dll.
Sa ovde
Ako vidite grešku poput sledeće:
To znači da server nije primio ispravno ime domena unutar Host zaglavlja. Da biste pristupili web stranici, možete pogledati SSL sertifikat i možda ćete tamo pronaći ime domena/subdomena. Ako ga nema, možda ćete morati da brute force VHosts dok ne pronađete ispravno.
Možete pokušati da enumerišete foldere i datoteke unutar svakog otkrivenog foldera (čak i ako zahteva osnovnu autentifikaciju) koristeći ovu tehniku. Glavno ograničenje ove tehnike, ako je server ranjiv, je to da može pronaći samo prvih 6 slova imena svake datoteke/foldera i prva 3 slova ekstenzije datoteka.
Možete koristiti https://github.com/irsdl/IIS-ShortName-Scanner da testirate ovu ranjivost:java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
Originalno istraživanje: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
Takođe možete koristiti metasploit: use scanner/http/iis_shortname_scanner
Lepa ideja da pronađete konačno ime otkrivenih datoteka je da pitate LLM-ove za opcije kao što je to učinjeno u skripti https://github.com/Invicti-Security/brainstorm/blob/main/fuzzer_shortname.py
Zaobiđite osnovnu autentifikaciju (IIS 7.5) pokušavajući da pristupite: /admin:$i30:$INDEX_ALLOCATION/admin.php
ili /admin::$INDEX_ALLOCATION/admin.php
Možete pokušati da pomešate ovu ranjivost i prethodnu da pronađete nove foldere i zaobiđete autentifikaciju.
ASP.NET uključuje režim debagovanja i njegova datoteka se zove trace.axd
.
Održava veoma detaljan zapis svih zahteva upućenih aplikaciji tokom određenog vremenskog perioda.
Ove informacije uključuju IP adrese udaljenih klijenata, ID sesija, sve kolačiće zahteva i odgovora, fizičke putanje, informacije o izvoru koda, i potencijalno čak i korisnička imena i lozinke.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
ASPXAUTH koristi sledeće informacije:
validationKey
(string): heksadecimalno kodirani ključ koji se koristi za validaciju potpisa.
decryptionMethod
(string): (podrazumevano “AES”).
decryptionIV
(string): heksadecimalno kodirani inicijalizacijski vektor (podrazumevano vektor nula).
decryptionKey
(string): heksadecimalno kodirani ključ koji se koristi za dekripciju.
Međutim, neki ljudi će koristiti podrazumevane vrednosti ovih parametara i koristiće kao kolačić email korisnika. Stoga, ako možete pronaći web koristeći istu platformu koja koristi ASPXAUTH kolačić i napravite korisnika sa emailom korisnika kojeg želite da imitirate na serveru pod napadom, možda ćete moći da koristite kolačić sa drugog servera na prvom i imitirate korisnika. Ovaj napad je uspeo u ovom izveštaju.
Potpuni izveštaj ovde: Greška u kodu nije pravilno proverila lozinku koju je dao korisnik, tako da će napadač čija hash lozinka odgovara ključu koji je već u kešu moći da se prijavi kao taj korisnik.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)