IIS - Internet Information Services
Testez les extensions de fichiers exécutables :
asp
aspx
config
php
Divulgation de l'adresse IP interne
Sur n'importe quel serveur IIS où vous obtenez un 302, vous pouvez essayer de supprimer l'en-tête Host et d'utiliser HTTP/1.0 et à l'intérieur de la réponse, l'en-tête Location pourrait vous pointer vers l'adresse IP interne :
Réponse divulguant l'IP interne :
Exécuter des fichiers .config
Vous pouvez télécharger des fichiers .config et les utiliser pour exécuter du code. Une façon de le faire est d'ajouter le code à la fin du fichier à l'intérieur d'un commentaire HTML : Téléchargez l'exemple ici
Plus d'informations et de techniques pour exploiter cette vulnérabilité ici
Bruteforce de découverte IIS
Téléchargez la liste que j'ai créée :
Elle a été créée en fusionnant le contenu des listes suivantes :
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
Utilisez-le sans ajouter d'extension, les fichiers qui en ont besoin l'ont déjà.
Traversée de chemin
Fuite de code source
Consultez l'analyse complète sur : https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
En résumé, il y a plusieurs fichiers web.config à l'intérieur des dossiers de l'application avec des références aux fichiers "assemblyIdentity" et aux "namespaces". Avec ces informations, il est possible de savoir où se trouvent les exécutables et de les télécharger. À partir des Dlls téléchargés, il est également possible de trouver de nouveaux namespaces auxquels vous devriez essayer d'accéder et obtenir le fichier web.config afin de trouver de nouveaux namespaces et assemblyIdentity. De plus, les fichiers connectionstrings.config et global.asax peuvent contenir des informations intéressantes.\
Dans les applications .Net MVC, le fichier web.config joue un rôle crucial en spécifiant chaque fichier binaire sur lequel l'application repose à travers les balises XML "assemblyIdentity".
Exploration des fichiers binaires
Un exemple d'accès au fichier web.config est présenté ci-dessous :
Ce demande révèle divers paramètres et dépendances, tels que:
Version d'EntityFramework
AppSettings pour les pages web, la validation client et JavaScript
Configurations de System.web pour l'authentification et l'exécution
Paramètres des modules de System.webServer
Liaisons d'assembly de Runtime pour de nombreuses bibliothèques comme Microsoft.Owin, Newtonsoft.Json, et System.Web.Mvc
Ces paramètres indiquent que certains fichiers, tels que /bin/WebGrease.dll, sont situés dans le dossier /bin de l'application.
Fichiers du Répertoire Racine
Les fichiers trouvés dans le répertoire racine, comme /global.asax et /connectionstrings.config (qui contient des mots de passe sensibles), sont essentiels pour la configuration et le fonctionnement de l'application.
Espaces de Noms et Web.Config
Les applications MVC définissent également des fichiers web.config supplémentaires pour des espaces de noms spécifiques afin d'éviter des déclarations répétitives dans chaque fichier, comme le montre une demande de téléchargement d'un autre web.config:
Téléchargement de DLLs
La mention d'un espace de noms personnalisé suggère l'existence d'une DLL nommée "WebApplication1" présente dans le répertoire /bin. Ensuite, une requête pour télécharger le WebApplication1.dll est affichée:
Cela suggère la présence d'autres DLL essentielles, comme System.Web.Mvc.dll et System.Web.Optimization.dll, dans le répertoire /bin.
Dans un scénario où une DLL importe un espace de noms appelé WebApplication1.Areas.Minded, un attaquant pourrait déduire l'existence d'autres fichiers web.config dans des chemins prévisibles, tels que /nom-de-la-zone/Views/, contenant des configurations spécifiques et des références à d'autres DLL dans le dossier /bin. Par exemple, une requête vers /Minded/Views/web.config peut révéler des configurations et des espaces de noms indiquant la présence d'une autre DLL, WebApplication1.AdditionalFeatures.dll.
Fichiers courants
Depuis ici
Erreur 404 HTTPAPI 2.0
Si vous voyez une erreur comme celle-ci :
Cela signifie que le serveur n'a pas reçu le nom de domaine correct dans l'en-tête Host. Pour accéder à la page web, vous pouvez consulter le certificat SSL fourni et peut-être trouver le nom de domaine/sous-domaine à l'intérieur. S'il n'est pas là, vous devrez peut-être forcer VHosts jusqu'à ce que vous trouviez le bon.
Anciennes vulnérabilités IIS à rechercher
Vulnérabilité/Fonctionnalité du caractère tilde “~” de Microsoft IIS - Divulgation de noms de fichiers/dossiers courts
Vous pouvez essayer d'énumérer les dossiers et fichiers à l'intérieur de chaque dossier découvert (même s'il nécessite une authentification de base) en utilisant cette technique. La principale limitation de cette technique si le serveur est vulnérable est qu'elle ne peut trouver que les 6 premières lettres du nom de chaque fichier/dossier et les 3 premières lettres de l'extension des fichiers.
Vous pouvez utiliser https://github.com/irsdl/IIS-ShortName-Scanner pour tester cette vulnérabilité : java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
Recherche originale : https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
Vous pouvez également utiliser metasploit : use scanner/http/iis_shortname_scanner
Contournement de l'authentification de base
Contournez une authentification de base (IIS 7.5) en essayant d'accéder à : /admin:$i30:$INDEX_ALLOCATION/admin.php
ou /admin::$INDEX_ALLOCATION/admin.php
Vous pouvez essayer de combiner cette vulnérabilité avec la précédente pour trouver de nouveaux dossiers et contourner l'authentification.
Débogage activé Trace.AXD ASP.NET
ASP.NET inclut un mode de débogage et son fichier s'appelle trace.axd
.
Il conserve un journal très détaillé de toutes les requêtes effectuées à une application sur une période donnée.
Ces informations incluent les adresses IP distantes des clients, les ID de session, tous les cookies de requête et de réponse, les chemins physiques, les informations de code source, et potentiellement même les noms d'utilisateur et les mots de passe.
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
Cookie ASPXAUTH
ASPXAUTH utilise les informations suivantes :
validationKey
(chaîne) : clé encodée en hexadécimal à utiliser pour la validation de la signature.decryptionMethod
(chaîne) : (par défaut "AES").decryptionIV
(chaîne) : vecteur d'initialisation encodé en hexadécimal (par défaut un vecteur de zéros).decryptionKey
(chaîne) : clé encodée en hexadécimal à utiliser pour le déchiffrement.
Cependant, certaines personnes utiliseront les valeurs par défaut de ces paramètres et utiliseront comme cookie l'e-mail de l'utilisateur. Par conséquent, si vous trouvez un site web utilisant la même plateforme qui utilise le cookie ASPXAUTH et que vous créez un utilisateur avec l'e-mail de l'utilisateur que vous souhaitez usurper sur le serveur attaqué, vous pourrez peut-être utiliser le cookie du deuxième serveur dans le premier et usurper l'utilisateur. Cette attaque a fonctionné dans ce writeup.
Contournement de l'authentification IIS avec des mots de passe mis en cache (CVE-2022-30209)
Rapport complet ici : Un bogue dans le code ne vérifiait pas correctement le mot de passe fourni par l'utilisateur, donc un attaquant dont le hachage de mot de passe correspond à une clé déjà dans le cache pourra se connecter en tant qu'utilisateur.
Last updated